HTTP 2.0 协议草案面世 基本协议单位为帧

neou
 neou
发布于 2014年09月26日
收藏 53

http2协议的草案已经出来了,阅读了一下网上的中文版,http2尽可能的兼容http1.1。改进了http1.1协议的不足。

HTTP2.0

http1.0和http1.1的缺点:

1.http1.0只允许在一个连接上建立当前未完成的请求

2.http1.1管道只部分处理了请求并发和包头堵塞问题,客户端多建立TCP连接,减少延迟

3.报头字段经常重复和冗长,数据包变大,容易造成初始TCP端口的堵塞,多建立几个TCP连接

http2x协议解决之道:

1.优化基础连接的语义映射,例如同一个连接上建立交错的请求和响应,使用高效率编码的报头字段

2.允许请求的优先级,让更多重要的请求先完成

http2协议的特点:

1.http2中最基本的协议单位是帧。每个帧都有不同的类型和用途。例如,报头(HEADERS)和数据(DATA)帧组成了基本的http请求和响应。帧包含的HTTP报头字段是压缩的。HTTP请求有可能是高度冗余的,因此压缩能显著减少请求和响应的大小。

2.请求多路复用:一个流上分配多个HTTP请求响应交换,流在很大程度上是相互独立的,因为一个请求上的阻塞和终止不会影响其他请求的处理。

3.流量控制和优先级确保正确使用复用流,流量控制有助于确保只传播接受需要的数据,优先级确保有限的资源能被重要的请求使用

4.添加了一种新的交互模式,即服务器能推送消息给客户端。服务器推送允许服务端预测客户端需要来发送

数据给客户端,交换网络使用以阻塞潜在的延迟增长。服务器通过复用一个以PUSH_PROMISE帧发送的请求来实现推送,然后服务端可以在一个单独的流里面发送响应给这个合成的请求。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:HTTP 2.0 协议草案面世 基本协议单位为帧
加载中

最新评论(33

虎爷
虎爷
服务器能推送消息的话,不是TCP得长连接?
代码之美
代码之美

引用来自“Solidsnake”的评论

完全不懂这个帧和目前的行有什么区别.
HTTP协议本身就是以人可以看懂为前提的, 这样做会不会有点像TCP这种底层协议靠拢了?
如果真的是这样, 那为什么不直接用TCP
主要还是为了建立会话吧,传统http一问一答就完了,谁也不认识谁,基于cookies会话也是后来才加入的,有了这个基于cookies的会话就可以歇了,cookie会话也只是单向的,帧应该是指会话中的数据传输单位
代码之美
代码之美

引用来自“Solidsnake”的评论

完全不懂这个帧和目前的行有什么区别.
HTTP协议本身就是以人可以看懂为前提的, 这样做会不会有点像TCP这种底层协议靠拢了?
如果真的是这样, 那为什么不直接用TCP
因为TCP不是应用层协议
S
Solidsnake
完全不懂这个帧和目前的行有什么区别.
HTTP协议本身就是以人可以看懂为前提的, 这样做会不会有点像TCP这种底层协议靠拢了?
如果真的是这样, 那为什么不直接用TCP
鱼北子
鱼北子

引用来自“iman123”的评论

这个google还是baidu翻译的啊,还是看英文版原文吧
或者看看这个(https://github.com/fex-team/http2-spec/blob/master/HTTP2%E4%B8%AD%E8%8B%B1%E5%AF%B9%E7%85%A7%E7%89%88%2806-29%29.md)吧
妈她亲我
妈她亲我

引用来自“雨翔河”的评论

4是啥意思

引用来自“蟋蟀哥哥”的评论

现在的消息推送都是利用心跳连接保持,用2.0的话,可以不保持心跳连接,服务端主动给浏览器推送消息

引用来自“Micooz”的评论

高大上

引用来自“ihuotui”的评论

它到底要怎么实现?主动发消息,那么终端也是服务器了,大家都是服务器,互相请求,哈哈。

引用来自“代码之美”的评论

如果重新拨号了咋发
既然服务器能在收到HTTP请后给客户端回应,那么在2.0中应该可以直接通过这样给客户端发送消息。
谢寅
谢寅
不明+1
jwyoung
jwyoung

引用来自“jingweiyoung”的评论

这标题怎么感觉怪怪的,
"http2中最基本的协议单位是帧。每个帧都有不同的类型和用途。"
以前不是吗??

引用来自“keengo”的评论

以前不是
能不能解释一下?
代码之美
代码之美

引用来自“雨翔河”的评论

4是啥意思

引用来自“蟋蟀哥哥”的评论

现在的消息推送都是利用心跳连接保持,用2.0的话,可以不保持心跳连接,服务端主动给浏览器推送消息

引用来自“Micooz”的评论

高大上

引用来自“ihuotui”的评论

它到底要怎么实现?主动发消息,那么终端也是服务器了,大家都是服务器,互相请求,哈哈。
如果重新拨号了咋发
返回顶部
顶部