http的发展

http

http的发展

  • http/0.9时代 纯文本格式、‘get’、响应之后连接就断了
  • http 1.0时代 增加head、post等新方法,增加响应状态码,引入头部,申请http版本号,引入content-Type
  • http 1.1时代 新增连接管理,允许持久连接、新增缓存控制和管理,允许响应数据分块,有利传输大文件
  • http 2时代 二进制协议,支持一个TCP连接发起多请求,利用hpack压缩头部,减少数据传输量,允许服务端主动推送数据
  • http 3时代 quic协议实现自己的丢包重传和拥塞控制

    http2.0的多路复用和http1.x中的长连接复用有啥区别?


为什么要头部压缩

  • 减少多次请求,从而加快资源加载速度。http2.0可以维护一个字典,差量更新http头部,大大降低因头部传输产生的流量

http多路复用有多好

  • http的性能优化的关键并不在于高宽带,而是低延迟。

  • TCP连接会随时间进行自我调节,如果数据成功传输,会随着时间的推移提高传输的速度。这种被称为TCP慢启动

  • http/2通过让所有的数据流共用同一个连接,可以更加有效地使用TCP连接,让高宽带也能真正地服务于http的性能提升

    http和https的区别

    http协议的缺点

  • 通信使用明文,内容可能被窃听

  • 不验证通信方身份,有可能遭遇伪装

  • 无法证明报文的完整性,有可能已遭篡改

    https的好处

  • https时在http协议基础上加入加密处理和认证机制以及完整性保护,即http+加密+认证+完整性保护

  • https是具有安全性的ssl加密传输协议

  • http协议是运行在TCP之上,https运行在ssl/tls之上。

  • http网络端口80、https是443

  • https协议是由ssl+http协议构建的可进行加密传输、身份认证的网络协议。

    https的缺点

  • https是协议握手阶段比较费时,会使得页面加载时间延长近50%

  • https连接缓存不如http高效,会增加数据开销和功效

  • ssl证书需要钱,功能越强大的证书费用越高。

  • ssl证书通常需要绑定IP,不能在同一个IP上绑定多个域名。

  • https协议加密范围比较有限。

    SSL与TLS的区别

  • SSL:(secure socket layer,安全套接字)位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。互相认证、使用数字签名确保完整性。

  • TLS:(transport layer security,传输层安全协议)用于两个应用程序之间提供保密性和数据完整性

  • TLS的主要目的是使得SSL更安全,并使协议的规范更精准和完善。

如何去优化https的速度

  • hsts重定向技术:自动将http转化为https进行访问,省去301跳转的出现,缩短访问时间,阻止基于ssl strip的中间人攻击
  • TLS握手优化:采用False Start技术,在TLS握手前,就开始发送请求数据。缩短数据传输时间
  • Session Identifier(会话标识符)复用:利用会话的ID,减少握手的时间,减少交互时间
  • 开启OSCP stapling,提升TLS握手效率:服务器模拟浏览器向CA发起请求,然后将带有CA机构签名的OCSP响应保存到本地,在发给客户端
  • 完全向前加密PFS,保护用户数据,预防私钥泄露:长期使用的主密钥泄露不会导致过去的会话密钥泄露


参考文献

参考文献

参考文献