HTTP1.x、HTTP2、HTTPS
HTTP1.x、HTTP2、HTTPS
HTTP1.0
-
短暂的连接:浏览器和服务端只保留短暂的连接,浏览器的每次请求都需要与服务器建立一个
TCPL连接,三次握手成本高,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求
-
-
解决方案:
-
添加头信息----非标准的
Connection字段Connection:keep-alive
-
-
-
缓存处理方法单一:对于缓存处理只能使用请求头中的If-Modified-Since,Expires等字段。
- 浪费带宽:当客户端只是需要某个对象的一部分,服务端却会把整个对象响应,会浪费带宽。
- 没有HOST头信息:默认一个主机只有一个IP地址,没有HOST头,无法处理虚拟主机
HTTP1.1
-
改进:
-
持久连接
-
TCP连接默认不关闭,可以被多个请求复用,不用声明Connection:keep-alive
-
-
管道机制
-
同一个
TCP连接中,客户端可以同时发送多个请求
-
-
新增请求方式
-
PUT:请求服务器存储一个资源 -
DELETE:请求服务器删除表示的资源 -
OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求 -
TRACE:请求服务器回送收到的请求信息,主要用于测试或者诊断 -
CONNECT:保留将来使用 - 新增多个状态码
- 在请求头中引入了range头域,允许请求某一部分的资源
- 新增多个缓存处理方式,如ETags等
- 新增了HOST头信息
-
-
缺点:
TCP连接中,所有的数据通信是按顺序进行的,服务器只有处理完一个请求,才会接着处理下一个。如果前面的处理的特别慢,后面就会有许多请求排队等着-
避免方式:减少请求数,躲开持久连接
-
HTTP2.0
-
特点:
-
采用二进制而非文本格式
-
完全多路复用,请求是并发的,并且可以为请求设置优先级
-
报头压缩:
-
HTTP协议是没有状态的,导致每次请求都必须附上所有的信息,所以很多请求字段都是重复的 -
对于相同的头部,不需要通过请求发送,只需要发送一次
-
-
服务器推送:
-
允许服务器未经请求,主动向客户端发送请求
-
将客户端需要的内容推送到客户端内存中,避免往返的延迟
-
-
HTTPS
-
HTTP协议通常承载在TCP协议之上,在HTTP和TCP之间添加一个安全协议层(SSL或TSL)
主要作用:
-
对数据进行加密,并建立一个信息安全通道,来保证传输过程的数据安全
-
对网站服务器进行真实身份认证
HTTPS和HTTP的区别
-
HTTPS是加密传输协议,HTTP是明文传输协议 -
HTTPS需要用到SSL证书,而HTTP不要 -
HTTPS比HTTP更加安全,对搜索引擎友好,利于SEO -
HTTPS标准端口443,HTTP标准端口80 -
HTTPS基于传输层,HTTP基于应用层
HTTPS和HTTP的工作过程区别
-
HTTP包含动作:-
浏览器打开一个
TCP请求 -
浏览器发送一个
HTTP请求到服务器端 -
服务器发送一个
HTTP回应信息到客户端 -
TCP连接关闭
-
-
HTTPS-
验证服务端
-
客户端和服务器端选择加密算法和密码,确保双方都支持
-
验证客户端
-
使用公钥加密技术来生成共享加密数据
-
创建一个加密的
SSL连接 -
基于该
SSL连接传递HTTP请求
-
HTTPS加密方式
-
对称加密:加密和解密使用的是同一个密钥
-
非对称加密:
-
加密使用的密钥和解密使用的密钥不相同,分别为公钥和私钥
-
公钥和算法都是公开的,私钥是保密的
-
过程:
-
服务端生成配对的公钥和私钥
-
私钥保存在服务端,公钥保存在客户端
-
客户端使用公钥加密明文传输给服务端
-
服务端使用私钥解密密文得到明文
-
-

浙公网安备 33010602011771号