理解http1.0、http1.1、http2.0和https
2020-03-18 本文已影响0人
古月丶
http
http是超文本传输协议的缩写,它是一个无状态协议,即客户端与服务器之间不需要建立持久的连接,客户端向服务器发送请求,服务器响应请求,连接就被关闭了,服务器不会保留连接信息,
- 简单快速:客户端向服务器发起请求时,只需要传送请求方法和路径,由于http协议比较简单,因而通信速度很快;
- 数据格式灵活:http允许可以传输任意类型的数据;
- 无连接:每次连接只处理一个请求,客户端发起请求,服务器响应请求,连接结束,节省了传输时间;
- 无状态:每次连接在服务器都不会有记录;
http1.1
- 持久连接:默认开启Connection:keep-active,TCP连接不关闭,可以被多个请求复用;
- Host头:http1.0中认为服务器的IP都是唯一的,而虚拟主机技术的发展使得一台服务器上可以有多个虚拟主机,它们可以共享同一个IP;
- 错误状态:新增了24个错误状态码;
- 缓存处理:引入Cache-Control、Etag/If-None-Match等;
- 请求范围:新增了PUT、DELETE、OPTIONS等请求方法;
http2.0
- 二进制传输;
- 多路复用:可以同时处理多个请求;
- 头部压缩:请求头很多字段都是重复的,http2只需要根据索引id就可以进行传输,缩小了请求头的容量;
- 服务器推送:服务器可以主动向客户端推送资源;
https
- https协议需要ca证书,而ca证书一般都需要一定的费用;
- https是通过stl/ssl加密过的传输协议;
- https端口是443,http是80;
- https协议是加密传输、身份认证的协议,比较安全;
https原理
- 客户端将自身支持的加密算法列表和一个随机数发送给服务器;
- 服务器从列表中选择一种加密算法;将身份信息和加密的公钥以证书的形式发送给客户端;
- 客户端对证书进行验证,验证通过后生成一个随机数(秘钥)并用证书中的公钥进行加密然后发送给服务器;
- 服务器用自己的私钥进行解密获取秘钥,将要发送的数据用秘钥进行加密然后发送给客户端;
- 客户端通过之前生成的秘钥进行解密获取数据;