HTTP0.9/1.0/1.1/2

1》HTTP/0.9

只有一个GET命令,服务器只能回应HTML格式的字符串,不能回应别的格式。服务器发送完毕,就关闭TCP连接。

2》HTTP/1.0

1)任何格式的内容都可以发送

Content-Type服务器回应的时候告诉客户端数据类型是什么

Accept请求用于指定客户端接受哪些类型的信息

Content-Encoding字段说明数据的压缩方法

Accept-Encoding:客户端在请求的时候说明自己可以接受那些压缩方法

2)引入了POST命令和HEAD命令

3)请求和回应格式发生变化

4)HTTP/1.0 版的主要缺点是

每个TCP连接只能发送一个请求。发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建一个连接。解决这个问题:有些浏览器在请求时,用了一个非标准的Connection字段。Connection: keep-alive(服务器同样回应这个字段)

3》HTTP/1.1(目前用的最多的)

1)引入了持久连接TCP连接默认不关闭,可以被多个请求复用,不用声明connection: keep-alive客户端和服务器发现对方一段时间没有活动,就可以主动关闭连接。不过,规范的做法是,客户端在最后一个请求时,发送Connection: close,明确要求服务器关闭TCP连接。

对于同一个域名,大多数浏览器允许同时建立6个持久连接。

2)管道机制在同一个TCP连接里面,客户端可以同时发送多个请求

比如:客户端需要请求两个资源。以前的做法是,在同一个TCP连接里面,先发送A请求,然后等待服务器做出回应,收到后再发出B请求。

管道机制则是允许浏览器同时发出A请求和B请求,但是服务器还是按照顺序,先回应A请求,完成后再回应B请求。

3)新增动词方法:PUT,OPTIONS,DELETE..

4)http/1.1缺点:

虽然1.1版允许复用TCP连接,但是同一个TCP连接里面,所有的数据通信是按次序进行的。服务器只有处理完一个回应,才会进行下一个回应。要是前面的回应特别慢,后面就会有许多请求排队等着。这称为"队头堵塞"

避免这个问题:一是减少请求数,二是同时多开持久连接。

4》HTTP/2

1)复用TCP连接:在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应,这样就避免了"队头堵塞"。

双向的、实时的通信,就叫做多工

2)头信息压缩机制因为HTTP协议不带状态,所以请求的很多字段都是重复的,比如cookie,User Agent,每次请求都必须附带,会很浪费宽带也影响速度,对此作出了优化。

一方面头信息使用gzipcompress压缩后再发送;

另一方面客户端和服务器同时维护一张头信息表,所有字段都会存入这个表,生成一个索引号,以后就不发送同样字段了,只发送索引号,这样就提高速度了。

3)服务器推送:允许服务器未经请求,主动向客户端发送资源

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值