HTTP协议深入浅出
- 什么是HTTP?
- 为什么要有HTTP,它解决了什么问题?
HTTP 全称(Hyper Text Transfer Protocol)超文本传输协议,顾名思义,HTTP定义了服务器向客户端浏览器传输HTML的规则标准
HTTP源于 Tim Berners-Lee 在1989年,为了方便公司内部信息交换,提交的一个提案 - HTTP属于应用层协议,它基于TCP与UDP协议,它规范了应用程序向用户提供的应用服务与数据格式等
- HTTP1.1与HTTP2.0是基于TCP协议,TCP协议在发送请求之前首先要建立链接所以传输效率不高,后发布的HTTP QUIC协议基于UDP协议,其是无连接的增加了数据交互的效率但同样数据安全问题受到了质疑
HTTP数据传输过程
HTTP数据传输过程,在发送端时数据会从上层传输到下层,每向下一层都会被打上该层的头部信息,反而言之在接收端时,数据会从下层传输到上层,向上前会把下层的头部信息删除
在应用层定义了应用程序向用户提供的应用服务,在传输层定义了处于网络连接中两台计算机的数据传输功能,网络层用来处理网络上流动的数据包以及数据传输路线,链路层则是处理链接硬件
TCP建立链接的过程就是三次握手的过程。
- 首先由客户端发送带有SYN标识的链接请求报文段,服务端接收到报文段后会发送ACK信息对这个SYN报文段进行确认同时也会发送自己的SYN请求信息
- 服务端SYN与ACK信息放到一个报文段中一次性发送给客户端
- 客户端接收到SYN+ACK报文段后,会向服务端发送ACK信息确认报文段,这个报文段发送完成后客户端和服务端就同时已进入了established状态,
- 完成TCP三次握手