Skip to content

浏览器请求 ​

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。网络错误和跨源检查失败可导致拒绝。

基于 MIT 许可发布