第 1 课

URL 组成部分

把 URL 拆成协议、主机、端口、路径、查询与片段。

URL 是结构化地址,不只是普通字符串。调试前先拆分组成部分,问题会清楚很多。

https://api.example.com:8443/v1/items?q=blue&page=2#results

这个 URL 包含:

  • 协议:https
  • 主机:api.example.com
  • 端口:8443
  • 路径:/v1/items
  • 查询:q=blue&page=2
  • 片段:results

协议

协议告诉客户端如何解释 URL 的其余部分。httpshttpmailtofile 都有不同规则。

主机与端口

主机标识服务器,端口标识网络端口。HTTPS 的默认端口 443 通常不会显示,但显式端口在本地开发和服务调试中很重要。

路径

路径标识主机中的资源。它是层级结构,所以 /users/42/users/42/ 是否相同取决于服务器。

查询

查询从 ? 后开始,常用于过滤、分页、排序、追踪字段和 OAuth state。查询解析并不总是统一规则,因为重复键和空值在不同框架中可能含义不同。

片段

片段从 # 后开始。浏览器通常在客户端使用它,不会在 HTTP 请求中发送给服务器。调试“服务器为什么看不到这段链接”时,这一点非常关键。

把每个组成部分都视为边界。大多数 URL bug 都来自在错误边界上编码或重建。

想动手练习时,可使用 DevCove 相关工具——可选,不属于本课正文。

打开相关工具

返回课程概览