背景介绍
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