HTTP 协议是互联网的基础协议,也是网页开发的必备知识,为了在前端性能优化方面有所深入,对 HTTP 协议有一定的概念和了解势在必行。本文通过对参考原文的仔细阅读之后,总结如下,如需进一步理解,请跳转至参考原文。
什么是HTTP协议?
HTTP 协议是基于 TCP/IP 协议的应用层协议,它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。
HTTP 1.1版本的特性
- 持久连接:即TCP连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive,目前,对于同一个域名,大多数浏览器允许同时建立6个持久连接。
- 管道机制:即在同一个TCP连接里面,客户端可以同时发送多个请求。
- Content-Length 字段:声明本次回应的数据长度,区分数据包是属于哪一个回应的。
- 分块传输编码:产生一块数据,就发送一块,采用"流模式"(stream)取代"缓存模式"(buffer)。
- 缺点:队头堵塞(Head-of-line blocking)
HTTP 2版本的特性
- 二进制协议
- 多工:双向的、实时的通信,避免了"队头堵塞"
- 数据流:HTTP/2 将每个请求或回应的所有数据包,称为一个数据流(stream)。每个数据流都有一个独一无二的编号。
- 头信息压缩
- 服务器推送
参考原文作者:阮一峰 日期:2016年8月19日
参考原文链接:http://www.ruanyifeng.com/blog/2016/08/http.html