你敢信一个HTTP能打趴80%面试者?
2020-06-02 04:31
148 查看
面试一年多,每当我问起面试者对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%面试者
- 一个HTTP打趴80%面试者
- (转)一个HTTP打趴80%面试者
- 一次完整的HTTP事务是怎样一个过程?(转)
- 面试开始的时候,我会让面试者选择一个
- 使用 acl_cpp 库中的 http_request 类实现一个 HTTP 客户端请求的例子
- 架一个HTTP服务——Node.js摸石头系列之二
- 在 IIS 7.0 上访问承载一个 Web 站点时出现错误消息:"HTTP 错误 502.2--网关无效"
- apache httpclient CacheStorage的一个自定义实现
- 后台编写HttpWebRequest的POST请求,必须注意的一个小细节
- 使用nodejs、Python写的一个简易HTTP静态文件服务器
- 建一个XMLHttpRequest对象池
- flex 整合 struts 的一个简单示例(使用Httpservice)
- 一个简单的Http客户端Demo
- HTTP协议与cookie技术:——一个周日下午
- 一个简单的零配置命令行HTTP服务器 - http-server (nodeJs)
- 编写了一个HTTP高匿代理
- 工作流实验室正式开通,提供一个有关k2.net和wf等工作流方面交流的平台,地址http://www.flowlab.cn
- 主题:免费的论文查重网站 正文:给大家推荐一个免费的论文查重网站PaperPP:http://www.paperpp.com
- 推荐一个免费体验Linux/Solaris系统的网站:Unxi体验中心 http://www.unix-center.net/