背景介绍

HTTP2.0跟SPDY在不少理念上是相似的,目的都是为了提升HTTP1.1的性能。

HTTP2.0将会是业界的标准,比SPDY要完善,今后可能会都转向http2.0而放弃SPDY。

SPDY流程

SPDY需要TLS1.1以上版本的支持,需要TLS的NPN扩展(Next Protocol Negotiation:13172),也就是加了一个域Query Supported Protocol List。

严重依赖SSL,不管收到的是HTTP请求,还是HTTPS请求,SPDY都会走一趟SSL握手的流程,以确定服务器是否支持SPDY。

On HTTP Request:

TCP连接on Port 443,再SSL握手确认服务器是否支持SPDY

不支持: 没有规定要如何处理,Drop或者走http1.1都可以

支持: 发一些Setting Frame,做些配置,根据需要创建stream

On HTTPS Request:

TCP连接on Port 443,再SSL握手确认服务器是否支持SPDY

不支持: 没有规定要如何处理,Drop或者走普通https都可以

支持: 发一些Setting Frame,做些配置,根据需要创建stream

HTTP2.0流程

需要TLS1.2以上版本,因为需要一个ALPN扩展(application Layer Protocol Negotiation)。

对HTTP1.1有很好兼容,HTTP请求就不用走SSL握手了。

On HTTP Request:

TCP连接on Port 80

根据是否有proir knowledge,相应配置HTTP Headers

On HTTPS Request:

ALPN协商具体用哪个协议,HTTP2.0, SPDY or HTTP1.1

05-11 18:18