怎么健手机网站,站长工具视频,聊城网站建设制作开发公司,电商网站策划书介绍 HTTP#xff0c;即超文本传输协议#xff08;HyperText Transfer Protocol#xff09;#xff0c;是应用层的一个简单的请求-响应协议#xff0c;它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。本文将介绍 HTTP 协议各个版本。
HTTP/1.0 HTTP/1…介绍 HTTP即超文本传输协议HyperText Transfer Protocol是应用层的一个简单的请求-响应协议它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。本文将介绍 HTTP 协议各个版本。
HTTP/1.0 HTTP/1.0 在客户端与服务器之间建立的是非持久连接特点是一次 TCP 连接中服务器只能发送一次相应报文。 举个例子假设用户键入了一个 URL 为 www.hust.edu.cn/cs/home.index该网页包含文本并引用了10 jpeg 图片。那么 HTTP/1.0 的传输模式如下所示。 在这种情况下客户端要获取 n n n 个 URL 对象就必须先后建立 n n n 次 TCP 连接效率十分低下。于是许多浏览器同时打开多个并行的连接来改善性能比如上面已经知道这 10 10 10 个 jpeg 对象的 URL 了客户机很可能创建 10 10 10 个不同的套接字分别去请求这些图片。这样对对服务器端连接数的要求很高降低了服务器的负载能力。
HTTP/1.1 相比于 HTTP/1.0HTTP/1.1 建立的是持久连接即服务器在发送完响应报文后保持该连接一段时间这段时间如果没有收到 HTTP 请求报文那就断开连接。 持久连接分为流水线方式和非流水线方式 流水线方式一个对象传输完成方能传输下一个。保证了响应报文的顺序到达但是效率可能低一些。非流水线方式可以一次性发送所有请求然后慢慢接收响应报文。响应报文可能乱序到达。 还是上面那个例子正常情况下客户端只需要建立一次 TCP 连接即可收到该网页的的内容及其中的 10 10 10 个图像。
HTTP/2 HTTP/1.1 存在的问题是服务器接收到多个对象请求时小对象会被排在前面的大对象阻塞——队首HOL阻塞导致用户体验极差。采用多TCP连接并发可以规避这个问题但是这样又回到了 HTTP/1.0。 对此HTTP/2 给出的解决方案是报文分帧目的是努力减少多对象访问时的感知时延。
HTTP/3 相比于 HTTP/2HTTP/3 使用的运输层协议改为 UDP并且在 HTTP 与 QUIC 协议谷歌发明的新的应用层协议具体可以参见这篇博客。