图解HTTP-第2章-简单的HTTP协议

请求报文的构成

图解HTTP-第2章-简单的HTTP协议_第1张图片
请求报文的构成.png

响应报文的构成

图解HTTP-第2章-简单的HTTP协议_第2张图片
响应报文的构成.png

HTTP协议是不保存状态的协议,但为了实现期望的保持状态功能,引入了Cookie技术.

持久连接节省通信量
HTTP协议的初始版本中,每进行一次HTTP通信就要断开一次TCP连接.

图解HTTP-第2章-简单的HTTP协议_第3张图片
TCP连接.png

但随着HTTP的普及,文档中包含大量图片的情况越来越多,每次的请求都会造成无谓的TCP连接建立和断开,增加通信量的开销.

图解HTTP-第2章-简单的HTTP协议_第4张图片
复杂的网页请求.png

为解决上述TCP连接的问题,HTTP/1.1和一部分的HTTP/1.0想出了持久连接(HTTP Persistent Connections,也称为HTTP keep-alive或HTTP connection reuse)的方法.特点是,只要一端没有明确提出断开连接,则保持TCP连接状态.

图解HTTP-第2章-简单的HTTP协议_第5张图片
持久连接旨在建立1次TCP连接后进行多次请求和响应的交互.png

持久连接的好处在于减少了TCP连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载.另外,减少开销的那部分时间,使HTTP请求和响应能够更早的结束,这样Web页面的显示速度也就相应提高了.

HTTP/1.1中所有的连接默认都是持久连接,但在HTTP/1.0内并未标准化.毫无疑问,除了服务器端,客户端也需要支持持久连接.

持久连接使得多数请求以管线化(pipelining)方式发送成为可能.管线化技术出现后,不用等待响应亦可发送下一个请求.

图解HTTP-第2章-简单的HTTP协议_第6张图片
不等待响应,直接发送下一个请求.png

使用Cookie的状态管理

图解HTTP-第2章-简单的HTTP协议_第7张图片
没有Cookie信息状态下的请求.png
图解HTTP-第2章-简单的HTTP协议_第8张图片
第2次以后(存有Cookie信息状态)的请求.png
图解HTTP-第2章-简单的HTTP协议_第9张图片
请求报文(没有Cookie信息的状态).png
图解HTTP-第2章-简单的HTTP协议_第10张图片
响应报文(服务器端生成Cookie信息).png
图解HTTP-第2章-简单的HTTP协议_第11张图片
请求报文(自动发送保存着的Cookie信息).png

你可能感兴趣的:(图解HTTP-第2章-简单的HTTP协议)