http发展历程:从http0.9 到 http3.0


HTTP0.9:
  最简单的只有请求行 GET index.html

HTTP1.0:

  1. 增加请求头、响应头,让请求和相应都更清晰
  2. 增加状态码,让响应更清晰
  3. 增加缓存功能,已请求过的内容再次请求时就可直接使用缓存
GET index.html HTTP/1.0
accept: application/html
accept-charset: utf-8
accept-encoding: gzip
accept-language: zh-CN
HTTP/1.0 200 OK

<!DOCTYPE html>
<html>
<head></head>
<body>hello world!</body>
</html>
  • accept 解决文件格式问题,是json还是html,浏览器根据不同文件格式来解析文件
  • accept-charset 解决文件编码问题,告知浏览器如何将字符流解析成字节流
  • accept-encoding 解决大文件压缩问题,浏览器采用指定的解压方式来解压
  • accept-language 解决国际化问题,不同国家请求不同语言的文件

HTTP1.1

  1. 持久连接,多个http请求使用同一个tcp连接,减少了tcp建立连接时的开销
  2. 客户端和服务器之间可以建立多个tcp连接以解决队头阻塞的问题
  3. 响应体可以分块传输,无需一次传输全部内容
  4. 响应头增加content-length字段满足动态内容无法一次计算出长度和无法一次传输完成的问题
  5. 增加了安全机制和cookie机制

HTTP2.0
  多路复用,客户端和服务器之间只建立一条tcp,每个http请求被切分成多帧,多个http的帧混合在一起在一个tcp连接上传送

HTTP3.0
  干掉tcp,因为tcp依然是顺序发送,顺序接收的,依然有队头堵塞问题,干掉tcp才能解决队头堵塞问题,但这只是个梦

posted @ 2020-04-10 14:49  cbhe  阅读(693)  评论(0)    收藏  举报