HTTP2 优点
参考:
- https://github.com/qappleh/Interview/issues/208
- https://www.zhihu.com/question/34074946/answer/75364178
1 多路复用
- 多路复用允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息
- 在 HTTP/1.1 协议中 「浏览器客户端在同一时间,针对同一域名下的请求有一定数量限制(不同浏览器这个限制的数目不一样)。超过限制数目的请求会被阻塞」
- 因此 HTTP/2 可以很容易的去实现多流并行而不用依赖建立多个 TCP 连接
- HTTP/2 把 HTTP 协议通信的基本单位缩小为一个一个的帧,并行地在同一个 TCP 连接上双向交换消息
2 优先排序
3 服务器推送
4 二进制数据传输
应用层(HTTP/2)和传输层(TCP or UDP)之间增加一个二进制分帧层
5 首部压缩
HTTP/1.1并不支持 HTTP 首部压缩,HTTP2 使用了 HPACK 算法
6 HTTP1.0 与 HTTP1.1 的区别
参考:
https://www.cnblogs.com/heluan/p/8620312.html
HTTP 1.0 | HTTP 1.1 | |
---|---|---|
缓存处理 | 使用header里的If-Modified-Since,Expires来做为缓存判断的标准 | 引入Entity tag,If-Unmodified-Since, If-Match, If-None-Match等 |
带宽优化及网络连接的使用 | 服务器将整个对象送过来了,并且不支持断点续传功能 | 在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206 |
错误通知的管理 | - | 新增了24个错误状态响应码,如409、410 |
Host头处理 | 请求消息中的URL并没有传递主机名(hostname) | 请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request) |
长连接 | 每次请求都要创建连接的缺点 | 支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理。默认开启Connection: keep-alive |
7 HTTPS与HTTP的一些区别
HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费。
HTTP协议运行在TCP之上,所有传输的内容都是明文,HTTPS运行在SSL/TLS之上,SSL/TLS运行在TCP之上,所有传输的内容都经过加密的。
HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
HTTPS可以有效的防止运营商劫持,解决了防劫持的一个大问题。