参考链接(写的很详细):https://blog.csdn.net/xiaoming100001/article/details/81109617
HTTP
- 无状态:协议对客户端没有状态存储,对事物处理没有“记忆”能力,比如访问一个网站需要反复进行登录操作
- 无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户机在短时间多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要耗费不必要的时间和流量。
- 基于请求和响应:基本的特性,由客户端发起请求,服务端响应
- 简单快速、灵活
- 通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
HTTPS
HTTPS是身披SSL外壳的HTTP,由HTTP进行通信,利用SSL建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。
- 内容加密:采用混合加密技术,中间者无法直接查看明文内容
- 验证身份:通过证书认证客户端访问的是自己的服务器
- 保护数据完整性:防止传输的内容被中间人冒充或者篡改
HTTP2
- 多路复用
单连接多资源的方式,减少服务端的链接压力,内存占用更少,连接吞吐量更大;多个请求stream共享一个TCP连接,实现多留并行而不是依赖建立多个TCP连接。由于减少TCP 慢启动时间,提高传输的速度。
- 首部压缩
大大减少传输的数据量
- 支持服务器推送