HTTP HTTPS的区别
| HTTP | HTTPS | |
| 标准端口 | 80 | 443 |
| 数据传输 | 明文 | SSL加密传输协议/TLS |
| 证书 | 无需证书 | 需要CA证书 |
| OSI模型 | 工作在应用层 | 安全传输机制工作在传输层 |
| 加密 | 无法加密 | 证书非对称加密,数据传输对称加密 |
| http1无状态 http2有许多有状态的组件,但应用程序层仍是无状态的 |
http的版本
http0.9 没有请求头,只有get方法
http1.0 不仅支持get,还有post head等方法 除了文字 还可以传输图像,音频,视频等二进制文件
支持cache
新增了状态码,多字符集支持,多部分发送,权限,内容编码
每一次的请求都要建立一次tcp链接,开销较大 后期加入了Connection 但不是标准字段
http1.1 默认采用持续连接 Connection: keep-alive 客户端在最后一个请求时,发送 Connection: close,明确要求服务器关闭 TCP 连接
加入了管道机制,可以同时发出多个请求,但返回还是按顺序的 Content-length区分先回应谁
分块传输编码
新增了put,patch,options,delete
请求头加入了host,指定服务器的域名
支持断点续传
http2.0 二进制协议
多工:客户端和浏览器都可以同时发送多个请求或回应
头信息压缩,客户端和服务器同时维护一张头信息表,生产索引号,传输只携带索引号而不每次都携带cookie
服务器推送
http3 基于UDP协议的QUIC协议
chrome在一个host下最多同时支持6个tcp连接