文章目录
前言
仅做个人学习笔记记录,如有错误,请多多包涵。
学习链接:
HTTP 1.0与1.1、2.0之间的区别
面试官:说说 HTTP1.0/1.1/2.0 的区别?
http 1.1与http 1.0
http协议1.1相对于http协议1.0
1、增加持久化链接(长连接),多个http请求可以共用同一连接。http 1.0 打开一个 tcp/ip 连接后只用来发送一个 http 请求,发完后 tcp/ip 连接关闭。
但在http 1.1中,发完后如果上一个 http 请求报文中有 connection: keep-alive
,服务端在返回应答报文以后保持tcp/ip连接开启
,如果是 connection: close
,那么 tcp/ip 连接关闭
。
2、虚拟主机,多域名之间可以共享同一ip地址
(虚拟主机和NAT协议建立的IP:端口号之间的关联,公网和私网)
3、流水线处理,下一请求不必等上一请求的响应到达后发送,可以一次发送多条响应。
4、增加了更多的状态码,完善了状态码系统。
5、增加了断点续传,使用range字段来让文件下载断开后,不用重新下载,可以接着上次的下载进度。
http 2.0 与http 1.x
1、相对于1.x新增了多路复用,一条tcp链接中可以发送多条请求和响应。
可以理解为将同时传输的文件拆分成多个frame,在可用现成间轮转请求这些frame,避免一个文件请求阻塞另一个文件的情况,但是这种做法会有frame级别的阻塞,原因和TCP协议有关,也正是因为如此,才有了h3和QUIC协议
2、换成了二进制编码,相较于之前http 1.x协议的文本形式,明文传输,更加安全可靠。
3、压缩消息头,节省开销,降低延迟。
4、服务器推送,服务器可以自己推送资源到浏览器处,不用等待浏览器发送请求占用资源。
5、增加安全协议TLS
(其和https的s之间的区别)
https中的s代表的是ssl协议
tls协议和ssl协议的差别:
参考链接:
SSL与TLS到底有何区别,一见分晓
传输层安全协议TLS------密码学概述
第一篇文章指出,tsl协议基于ssl协议3.0,可以简单理解为ssl协议的升级版
根据第二篇参考文章说,ssl协议不推荐使用
注意点
http 2.0 完全没有新增请求状态码, http 1.1中状态码系统就已经完善了
二进制格式是实现多路复用的前提条件,多路复用更像是流水线处理的升级版,服务器也无需指定顺序发送响应,避免堵塞。
至此,借宿后