计算机网络-HTTP协议详解
http协议特性:
无连接:
无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间
无状态:
HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
http1.0版本:
规定浏览器与服务器保持较短时间的链接,浏览器每次请求都和服务器经过三次握手和慢启动(基本思想是当TCP开始传输数据或发现数据丢失并开始重发时,首先慢慢的对网路实际容量进行试探,避免由于发送了过量的数据而导致阻塞)建立一个TCP链接,服务器完成请求处理后立即断开TCP链接,而且不跟踪每个浏览器的历史请求。
请求方法:GET,POST,HEAD方法
遗留问题:请求队列的第一个请求因为服务器正忙(或请求格式问题等其他原因),导致后面的请求被阻塞。
http1.1版本:
连接默认成为长连接,是通过http请求头中connection的Keep-Alive来保证。
引入管道机制,通过管道可以让我们把 FIFO 队列从客户端(请求队列)迁移到服务器(响应队列),即客户端可以并行,服务端串行。客户端可以不用等待前一个请求返回,发送请求,但服务器端必须顺序的返回客户端的请求响应结果。
请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
支持断点续传,身份认证,状态管理,缓存处理。
http2.0版本:
支持多路复用
首部压缩,支持DEFLATE和HPACK 算法的压缩。
添加请求优先级,HTTP 2.0 使用一个31比特的优先值,0表示最高优先级, 2(31)-1表示最低优先级,服务器端就可以根据优先级,控制资源分配,优先处理和返回最高优先级的请求帧给客户端。
HTTP请求头包含内容:还有Cache-Control
HTTP响应头包含内容:
HTTP响应状态字:
常见: