一. HTTP HTTP(HyperText Transfer Protocol)是用于在客户端和服务器之间传输超文本数据(如HTML)的应用层协议 。它是万维网的基础协议,定义了浏览器和服务器之间如何请求和传输文档。HTTP有多个版本,每个版本都引入了新的特性和改进。(在此只讨论两个版本,http1.1与http2)
http1.1 :
特点 :当前最广泛使用的HTTP版本,对HTTP/1.0进行了许多改进。持久连接 :默认使用持久连接(Connection: keep-alive),允许在同一个TCP连接上传输多个请求/响应对,减少了连接建立和关闭的开销。管道化 :支持请求管道化,客户端可以在收到响应之前发送多个请求,但由于队头阻塞问题,实际应用较少。缓存 :改进的缓存机制,如Cache-Control头。分块传输编码 :允许服务器分块传输响应数据,使得数据可以逐步发送到客户端,而不需要知道内容的总长度。其他改进 :引入了更多的HTTP方法(如PUT、DELETE)、虚拟主机支持(通过Host头部)等。http2 :
特点 :对HTTP/1.1进行了显著的性能改进,主要解决了HTTP/1.1的效率问题。二进制分帧层 :引入了二进制分帧层,所有数据都以二进制帧传输,减少了解析开销。多路复用 :在单个TCP连接上并发处理多个请求和响应,解决了HTTP/1.1的队头阻塞问题。头部压缩 :使用HPACK算法对HTTP头部进行压缩,减少了传输的数据量。服务器推送 :服务器可以主动向客户端推送资源,不需要客户端显式请求,减少了延迟。优先级和流量控制 :支持请求的优先级和流量控制,优化了资源分配。在了解了以上知识点后,