Q1主动回忆难度 1
1/12
浏览器与网络 · HTTP 与 HTTPS
记忆强度
GET/POST 的真实差别、HTTPS 握手、HTTP/1.1 到 HTTP/2 的演进、TCP 三次握手。
浏览器与网络 · HTTP 与 HTTPS
GET 和 POST 分别有什么区别?GET 用于获取资源,可主动缓存,参数一般在 URL;POST 用于提交资源,参数在请求体且支持更多编码。
GET 幂等且一次发送请求报文;POST 不幂等,通常先发 header,收到 100(continue) 后再发 body。
HTTP/2 以流承载双向数据,接收方按 Stream ID 归类帧并依序组装为请求或响应报文。
HTTP/2 丢包会使整个 TCP 连接等待重传并阻塞所有请求,TCP 与 TLS 建连还需约 3—4 个 RTT。
HTTP/1.1 增加持久连接与管道机制,并完善缓存、断点续传和虚拟主机支持。
HTTP/2.0 用二进制帧承载报文,以多路复用并发传输,并用 HPACK 压缩头部。
HTTPS 是 HTTP + SSL/TLS,由 SSL/TLS 负责数据加密、安全通道和服务器身份认证。
HTTP 默认使用 80 端口且明文传输;HTTPS 默认使用 443 端口并需要 SSL 证书。
双方交换协商信息并验证证书,再安全传递 Premaster secret,最终用三个随机数生成 session key。
客户端用证书公钥加密随机数,服务端用私钥解密,后续数据通过对称加密交互。
第三次握手用于确认客户端具备接收能力,并防止失效请求导致服务端误建连接。
收到 FIN 仅表示对方不再发送数据,本方处理完剩余事务后才能另发 FIN,因此通常需要四次挥手。