-
Http1.0:tcp是短链接,连接成功使用后,就断开连接(每次建立连接需要花费时间,造成延迟)
-
HTTP1.1:长连接:一个TCP连接上可以传送多个HTTP请求和响应
-
HTTP2.0:长连接+多路复用
- 多路复用:在一个TCP连接上,多个HTTP请求可以并行发送(在HTTP1.1中http请求必须等上一个请求完成后,才能发送)
- header压缩:HTTP1.x中的头部带有大量的信息,每次都要重复发送。HTTP2.0使用encoder减少需要传输的header的大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。 (HTTP2.0可以维护一个字典,差量更新HTTP头部)
- 服务端推送: 服务端推送能把客户端所需要的资源伴随着index.html一起发送到客户端,省去了客户端重复请求的步骤。服务端可以主动发起一些数据推送。比如,服务端在接收到浏览器发来的
HTML
请求的同时,可以主动推送相关的资源文件(js/css)给客户端,并行发送,提高网页的传输和渲染效率。 HTTP1.x
的解析是基于文本,存在解析上的缺陷;而HTTP2.0
直接使用二进制的解析方式来替代HTTP 1.X
的字符串解析,更为高效和健壮。
-
HTTP性能优化:
- 合理使用
HTTP
的缓存策略,避免同一资源多次请求服务端而导致的额外性能开销 - 尽量使用
HTTP
长连接,避免每次重建TCP
连接带来的时间损耗 - 尽量使用
HTTPS
来保证网络传输的安全性。 - 可以使用
HTTP2
来大幅提高数据传输的效率,使用server push
开启HTTP2
的服务端推送功能 - 客户端开启
Accept-Encoding
压缩方式的支持,服务端传输压缩后的文件,减少传输数据的大小
- 合理使用
-
HTTP和HTTPS
- 加密:Https相比于http,增加了SSL加密解密数据的过程。http明文传输
- 端口:http端口是80,https端口是443
- 防劫持