# 5.HTTP

HTTP是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范(双向)

# 特性

# 优点

# 1.简单易懂

HTTP基本的报文格式就是header+body,头部信息也是key-value(键值对)的简单文本,易于理解。

# 2.灵活和易于扩展

HTTP协议里各类全球方法、URI/URL、状态码、头字段等都允许开发人员自定义和扩充。

# 3.应用范围广

# 缺点

# 1.无状态(双刃剑)

  • 好处:服务器不回去记忆HTTP的状态、不需要额外的资源来记录状态信息,能减轻服务器的负担。
  • 坏处:在完成有关联性的操作时,会非常麻烦。

# 2.明文传输(双刃剑)

  • 好处:调试方便
  • 坏处:有安全隐患

# 3.不安全

  • 明文不加密
  • 不验证通信方的身份
  • 无法验证报文的完整性,报文有可能已被篡改

# HTTP1.1的特性

HTTP协议是基于TCP/IP,并且使用了请求——应答的通信模式,特性的关键就在这两点里。

# 1.长连接

只要任意一方没有明确提出断开连接,则保持TCP连接状态。(减少握手和挥手的次数)

# 2.管道网络传输

请求A发送出去,不必等服务器回应,可以再向服务器发送请求B。(但服务器还是要先恢复请求A再回复请求B)

# 3.队头阻塞

如果前面的请求被卡住,后面的请求则无法进行。

因为有了长连接,才使得管道网络传输成为了可能。而管道网络传输里采用的应答机制,导致了队头阻塞的发生。

# HTTPS

# HTTPS如何解决HTTP的安全性问题:

# 1. 混合加密
  • 对称加密
  • 非堆成加密
    • 在通信建立前采用非对称加密的方式交换“会话密匙”,后续就不再使用非对称加密;
    • 在通信过程中全部使用对称加密的“会话密匙”的方式加密明文数据。

采用混合加密的原因:

  • 对称加密只使用了一个密匙,运算速度快,密匙必须保密,无法做到安全的密匙交换;
  • 非对称加密使用的两个密匙:公匙和私匙,公匙可以任意分发而私匙保密,解决了密匙交换问题但速度慢。
    • 公钥加密的数据只有对应的私钥才可以解密(公钥加密后公钥也不能解密)Ï
    • 私钥加密的数据也只有对应的公钥才可以解密。
# 2. 摘要算法
# 3. 数字证书