来自微信公众号:码上实战

面试一年多,每当我问起面试者对HTTP的了解时,个个回答令我瞠目结舌,这些开发者都有3-5年的经验。请不要让我叫你野生程序员,是时候了解HTTP了,让我们当个正规军。

起因

面试官:请问你了解HTTP协议吗?

前端开发:这不是应该后端清楚的吗?

后端开发:这不是前端知道的吗?

面试官:……

我们先一本正经的来了解下HTTP(不包含传输层TCP),然后总结其中的精华回复面试官。

HTTP协议简介

HTTP(超文本传输协议)是应用层上的一种客户端/服务端模型的通信协议,它由请求和响应构成,且是无状态的。(暂不介绍HTTP2)

  • 协议

协议规定了通信双方必须遵循的数据传输格式,这样通信双方按照约定的格式才能准确的通信。

  • 无状态
    无状态是指两次连接通信之间是没有任何关系的,每次都是一个新的连接,服务端不会记录前后的请求信息。

  • 客户端/服务端模型

    五层网络模型

URL构成

用了这么久,你注意过吗?

协议内容

请求(Request)

客户端发送一个HTTP请求到服务端的格式:

  • 请求行

  • 请求头

  • 请求体

    响应(Response)

服务端响应客户端格式:

  • 状态行

  • 响应头

  • 响应体

    状态码

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:

更详细的状态码可查看 HTTP状态码

但一般我们只需要知道几个常见的就行,比如 200,400,401,403,404,500,502.

请求方法

截止到HTTP1.1共有下面几种方法:

请求和响应常见通用头

注意

Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。

常见的媒体格式类型如下:

以application开头的媒体格式类型:

常见请求头


常见响应头


总结

清楚的知道这些内容,不仅仅是为了应对面试官,而是能实实在在的提高自己的效率,这一点在前后端联调接口最明显,当你在应用中去请求其他接口或转发请求时这些也是要知道的。不然出现问题的概率会大大提高。

一个HTTP打趴80%面试者相关推荐

  1. 一个HTTP打趴80%面试者,你是否也被面试官”虐“?

    前言 HTTP 可以说是互联网的基石,我们浏览的网页.刷的视频.玩的游戏,都离不开 HTTP 协议,而且热门的 Nginx.Apache.gRPC 等服务背后的技术也是由 HTTP 协议支撑的,可以说 ...

  2. 一个 HTTP 打趴80%面试者

    假期过去了,金三银四招聘季也就要来了,春节期间和一位面试官交流面试心得.他说面试一年多,每当问起面试者对 HTTP 的了解时,经常出现这样的情形: 面试官:请问你了解 HTTP 协议吗? 前端开发:这 ...

  3. 一个 HTTP 打趴 80% 面试者

    假期过去了,金三银四招聘季也就要来了,春节期间和一位面试官交流面试心得.他说面试一年多,每当问起面试者对 HTTP 的了解时,经常出现这样的情形: 面试官:请问你了解 HTTP 协议吗? 前端开发:这 ...

  4. 主题:一个中专生:我在华为面试的真实经历,转http://www.javaeye.com/topic

    华为是个创造神话的企业,从注册资金2万元的飞速膨胀.3G.高科技.高速成长.全民持股和民营企业--目前华为在国内不但是电信第一大供商货商,而且海外市场也越来越火红,目前正在蚕食网络商老大CISCO的本 ...

  5. 转:一个硕士应届生的面试总结.(很精彩,特别是具体的各公司面试信息)

    一.        求职历程总结 2007年1月10日,随着在三方协议上郑重签下自己的名字,我 的求职历程终于划上了一个圆满的句号.在这三个月漫长而艰辛的过程中,我付出了很多,经历了很多,也收获了很多 ...

  6. 一个优秀妹子的后台面试经验,含泪总结...

    来源:网络 今天给大家带来一个优秀妹子的后台面试经验总结,希望对正在面试或者以后需要面试的人提供一些参考和帮助.具体如下: 本人妹子,985硕士,211本科,专业都是软件工程,一直投的是java后台开 ...

  7. 一个漂亮妹子的美团面试经历,4轮2小时,成功拿到Offer

    点击上方 "编程技术圈"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 每日英文 Friends are like stars. They alwa ...

  8. 提取一个字符串(少于80个字符)中的所有数字字符(‘0’...‘9’)并输出。

    [题目描述] 提取一个字符串(少于80个字符)中的所有数字字符('0'...'9')并输出. [输入] 一个字符串(少于80个字符). [输出] 将字符串中的所有数字字符('0'...'9')提取并输 ...

  9. 输入一个字符串(少于80个字符),统计字符个数。

    [题目描述] 输入一个字符串(少于80个字符),统计字符个数. [输入] 一个字符串(少于80个字符). [输出] 输出该字符串中字符的个数. [样例输入] UPC 1953↙ [样例输出] 8 #i ...

  10. 一个妹子的大厂后台面试经验总结

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 倾听潮汐 来源 | nowcoder.com/ ...

最新文章

  1. 第四天 用户管理和服务管理
  2. 终于!北京无人车,今起也能免费坐
  3. vue 数据劫持详解
  4. Salesforce 用机器学习来自动总结文本,AI+SaaS 是未来吗?
  5. tableau可视化函数使用案例(六十七)-如何用Tableau获取数据并对数据进行操作?
  6. python文件输入和输出程序_python -o 和-i 输入和输出文件如何理解
  7. 谈论Java原子变量和同步的效率 -- 颠覆你的生活
  8. tiny4412初期环境搭建
  9. springcache使用笔记002_注释驱动的 Spring cache 按条件查询
  10. 一个肥皂泡的破灭(组图)
  11. Java后端学习路线图,你真的只需要这一张
  12. 关于mac m1 安装安卓模拟器
  13. 《21天学通HTML+CSS+JavaScript Web开发(第7版)》——2.4 您要在Web上做什么
  14. 【成长修炼】关于海贼王海军世界观
  15. 简单有一定效果的条纹噪声消除算法
  16. 【财务】FMS财务管理系统---应收管理
  17. Mysql统计分组后每组数据与每组数量区别
  18. Kinova 之 mico刷机教程
  19. Jenkins --- 三种安装方式
  20. lg显示器工厂模式怎么进入_LG液晶显示器进入工厂模式方法.概要

热门文章

  1. Idea的全局搜索快捷键
  2. JVM 垃圾收集器Serial、Parallel Scavenge、ParNew、CMS、G1
  3. Oracle 实现 right 函数
  4. c语言中矩形法求定积分
  5. surface安装ubuntu终极拯救指南
  6. 如何设置分享到微信朋友圈时链接的图片及标题
  7. hdu6638 Snowy Smile (最大权值和矩阵、线段树)
  8. 阿里云短视频SDK for iOS —— (一)集成与基础拍摄
  9. C++中自带的二分查找函数
  10. 8188gu驱动和su realtek_Realtek瑞昱RTL8192SU/RTL8188SU/RTL8192GU无线网卡驱动怎么样