# 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. 混合加密
- 对称加密
- 非堆成加密
- 在通信建立前采用非对称加密的方式交换“会话密匙”,后续就不再使用非对称加密;
- 在通信过程中全部使用对称加密的“会话密匙”的方式加密明文数据。
采用混合加密的原因:
- 对称加密只使用了一个密匙,运算速度快,密匙必须保密,无法做到安全的密匙交换;
- 非对称加密使用的两个密匙:公匙和私匙,公匙可以任意分发而私匙保密,解决了密匙交换问题但速度慢。
- 公钥加密的数据只有对应的私钥才可以解密(公钥加密后公钥也不能解密)Ï
- 私钥加密的数据也只有对应的公钥才可以解密。