从地址到响应

访问一个 HTTPS 地址,通常需要解析主机名、建立传输连接、协商安全通道,再交换 HTTP 消息。连接与解析结果可能被复用,代理和缓存也可能参与,因此不能把每次请求都画成完全相同的固定时序。

IP 负责跨网络寻址,传输协议提供端到端通信能力。HTTP/1.1 与 HTTP/2 常运行在 TCP 上,HTTP/3 使用 QUIC。TLS 的身份验证和加密不能替代应用中的用户权限检查。

请求表达什么

请求包含方法、目标、头字段和可选正文,响应包含状态码、头字段和可选正文。GET 用于读取表示,POST 常用于提交操作,PUT 表达替换目标状态,部分更新通常使用 PATCH 或明确约定的接口。

GET /items/42 HTTP/1.1
Host: example.com
Accept: application/json
If-None-Match: "item-v3"

服务器判断表示未变化时可以返回 304,客户端复用已有正文。Cache-Control: no-cache 允许保存但要求复用前验证;no-store 用于禁止保存,两者含义不同。缓存键、用户身份与响应变化条件都需要考虑。

失败不总能从状态码猜出结果

客户端超时可能发生在服务器已经提交之后。重试写操作前,需要用幂等设计或查询确认结果。401 表达认证要求,403 表达已知请求被拒绝;界面不能把权限错误当成网络离线并继续使用其他账号的缓存。

练习与面试自查

用浏览器网络面板观察一次请求:记录请求方法、状态、响应头、连接复用和耗时构成。用受控本地服务分别测试缓存命中与重新验证。

解释 HTTPS 能保护哪些传输环节,不能自动解决哪些业务权限问题;再说明同一请求发出两次与同一业务操作生效两次有什么区别。

参考资料