主题
浏览器请求
URL 的组成与解析
以 https://example.com:8443/docs?q=net#intro 为例,依次包含协议、主机、端口、路径、查询和片段。相对 URL 使用基准 URL 解析。
片段由客户端处理,通常不随 HTTP 请求发送。URL 解析与对路径、查询参数进行编码是不同操作。
从输入 URL 到页面显示
缓存命中或连接复用可跳过部分联网步骤。解析、下载和渲染可以交错进行。
浏览器请求生命周期、重定向与取消
请求可能经历排队、缓存检查、解析、建连、发送、等待首字节和读取内容。重定向可能触发新请求并重新检查安全策略。
AbortController 可取消 Fetch 及读取响应体。取消不保证服务端尚未收到请求或撤销已完成的操作。
Fetch 与 XMLHttpRequest
Fetch 使用 Promise 和流式响应,获取响应头后即可返回 Response。XHR 以事件和 readyState 表示状态,并支持上传进度事件。
Fetch 收到 404 或 500 通常仍兑现 Promise,需检查 status 或 ok。网络错误和跨源检查失败可导致拒绝。
