关于 URL 的大小写问题

1.
W3C 写道: "一般来说, URL 是区分大小写的(机器名除外). 有些 URL 或 URL 的某些部分可能不区分大小写, 但要识别这些 URL 或 URL 的大小写可能并不容易. 用户应始终注意 URL 是区分大小写的." [1]
2. Google 对于搜索引擎索引: 即使不同大小写的 URL 指向完全相同的资源, 它们也始终被搜索引擎认为是完全不同 URL. 即使索引会尝试抓取所有的链接, 但对于指向相同资源的 URL 最终也要需要网站管理员选择保留其中一个, 这个过程被称为 "标准化". 而在 robots.txt 中对路径大小写也是敏感的. [2]
3. RFC 1738 "统一资源定位器(URL)" 写道: "URL 包含正在使用的协议名(scheme), 后跟冒号, 然后是一个字符串(协议具体实现), 其解释取决于协议. 协议名由字符: 小写字母 "a" ~ "z", 数字和字符加号("+"), 句号(".")和连字符("-"). 为提高弹性, 程序解释 URL 时应将协议名中的大写字母等同于使用小写字母(例如: 允许使用 "HTTP" 和 "http")." [3]
4. RFC 4343 "域名系统(DNS)域名系统不区分大小写的说明". [4]
5. RFC 2616 "超文本传输协议(HTTP)" 写道: (URI 比较) 在比较两个 URI 以确定是否匹配时, 客户端应使用区分大小写的 8 比特组逐个比较整个 URI, 但以下情况例外: [5]
空端口或未给出的端口等同于该 URI 引用的默认端口;
主机名的比较必须区分大小写;
协议名称的比较必须区分大小写;
空的 abs_path 相当于 "/" 的 abs_path.

———

ref: Should URL be case sensitive? - Stack Overflow
Windows 和 macOS 使用不区分大小写的文件系统, Unix/类Unix使用的文件系统区分大小写. (Git is case-sensitive and your filesystem may not be - Weird folder merging on Windows - Scott Hanselman's Blog)
Netlify 部署站点路径不区分大小写. (My URL paths are forced into lowercase - Support - Netlify Support Forums)
Cloudflare Page 部署站点路径区分大小写.
Vercel 部署站点路径区分大小写.
Amazon S3 进行静态托管时, 引用储存桶名称定位时区分大小写. (Access Denied error when using an S3 static website endpoint | AWS re:Post)

#note

via CXPLAY's Memos
 
 
Back to Top