HTTP/1.1 存在的问题:
- TCP 连接数限制
对于同一个域名,浏览器最多只能同时创建 6~8 个 TCP 连接 (不同浏览器不一样)
- 线头阻塞 (Head Of Line Blocking) 问题
每个 TCP 连接同时只能处理一个请求 - 响应,浏览器按 FIFO 原则处理请求,如果上一个响应没返回,后续请求 - 响应都会受阻。
HTTP 2.0
即超文本传输协议 2.0,是下一代HTTP协议。在开放互联网上HTTP 2.0将只用于https://网址
特点:改进传输性能,实现低延迟和高吞吐量
特性
-
二进制分帧
-
多路复用
-
头部压缩
-
请求优先级
在每个 HTTP 2.0 的 流 里面有个 优先值 ,这个 优先值 确定着客户端跟服务器处理不同的 流 采取不同的 优先级策略 ,高优先级的应该优先发送,但这不会绝对的
- 服务器提示
特性:一般情况下,客户端需要请求啥东西告诉服务器,然后服务器返回对应资源回到客户端,这也是请求很慢的原因之一。HTTP 2.0 新增加 服务器提示 ,可以先于客户端检测到将要请求的资源,提前通知客户端,服务器不发送所有资源的实体,只发送资源的 URL。客户端接到提示后会进行验证缓存,如果发现需要这些资源,则正式发起请求。
HTTPS部署
- Nginx启用HTTP/2.0
- NGINX 版本必须在1.9.5以上,配置启用 " listen 443 ssl http2; "
- OpenSSL 版本必须在1.0.2e及以上
- 混合云海豚平台发布项目支持HTTPS(HTTP/2.0)
![](https://i-blog.csdnimg.cn/blog_migrate/f78762c7e787a146832d314f0bdefb54.png)
-
HTTPS服务
-
HTTP/2.0
![](https://i-blog.csdnimg.cn/blog_migrate/0d0987749e354a084a23c13948fe6271.png)
HTTP vs HTTPS
HTTP 2.66s HTTPS 3.09s