协议- http协议
1.HTTP 协议
1.1基础定义
HTTP协议 (Hyper Text Transfer Protocol 超文本传输协议)是浏览器与应用程序间进行数据交换的格式约定。应用层协议HTTP协议是基于传输层协议TCP通信协议来传递数据。http协议是一种请求-响应协议 ,支持客户端-服务端模式。指定了客户端可能发送给服务器什么样的消息和得到怎样的响应。
HTTP协议 灵活可扩展(报文头内容可自定义,允许传输任意类型的数据对象) ;无状态(对事物处理没有记忆能力,不记录,cookie和session弥补)
1.2 http版本
🍤 HTTP 0.9 / 1.0
传统的Request-Response模型,每请求一个资源都要建立TCP连接,并且串行请求,速度很慢。基本已淘汰。
🍤 HTTP / 1.1 明文,文本传输
主要解决网络速度慢的问题。请求仍然是串行发出。
传输数据是以文本的方式,借助消耗CPU的zip压缩的方式减少网络带宽。
默认Connection: keep-alive
建立长链接,一次TCP链接可以多次http请求响应。
- 增加持久连接(默认开启Connection: keep-alive节省了每次请求需在广域网上进行TCP三次握手的开销)
- 增加管道机制,pipeline网络传输(不必等待回应可发出新的请求,减少整体响应时间,管道化传输将多余的请求放入队列中)
- 增加PUT/PATCH/OPTION/DELETE等请求方式
- 增加Host字段(指定服务器域名)-> eg:request headers 中
Host: www.baidu.com
- 增加100状态码(Continue),支持只发送头信息
- 增加身份认证机制
- 支持传送内容的一部分和文件断点续传
- 新增了24个错误状态码
🍤 HTTP/2 二进制传输 压缩报文头 消除重复部分 服务端push
- 二进制协议(头信息与数据体使用二进制进行传输,增加数据传输效率)
- 增加双工模式(客户端同时发送多个请求,服务端同时处理多个请求;可以在一个TCP链接中并发多个请求)
- 服务器推送(服务端在客户端放cache,又叫服务端push.服务器会把客户端需要