完全凭记忆书写,还有很多错误不足,望大神批评指正。
众所周知 http 是超文本传输协议,客户端与服务器能够进行通信
http是明文传输数据,https是以二进制的方式进行传输数据,https端口为443,http端口为80
http1.0是区别于1.1:
1.0是短连接,一次tcp连接只能发起一次响应请求,结束后就会进行中断,下次再次请求就会再次建立tcp连接
1.1是长连接,一次tcp连接会进行多次请求和响应,单个 TCP 连接在同一时刻只能处理一个请求
在 HTTP/1.1 时代,浏览器是如何提高页面加载效率的呢?主要有下面两点:
- 维持和服务器已经建立的 TCP 连接,在同一连接上顺序处理多个请求。
- 和服务器建立多个 TCP 连接。
http1.1区别于http2.0:
1、多个 HTTP 请求可以在同一个 TCP 连接中并行进行。
2、2.0是将 header 和数据进行分离,形成头帧和数据帧,而且 header 进行压缩,减少数据传输而产生不必要的开销。并且2.0还会将数据进行存储键值对,已达到发送有差异的数据,复用性强,从而再次减少不必要的开销
https区别于http:
https其实就是 http + SSL/TLS协议,让数据传输更加安全。
https流程:
在tcp连接后,客户端会发送请求并携带“client hello”、要访问的域名、自己所支持的加密算法、随机的阿拉伯数字。服务器收到请求后会先响应“server hello”给客户端, 然后再把域名的证书和随机选择一个客服端的加密算法响应给客户端,客户端接收到证书后会在安全证书认证中心进行验证,验证成功后用后端选择的算法进行加解密传输数据