案件保全
URL 在客户端和服务器之间是区分大小写的。但是,由于服务器的不同,URL的某些部分可能区分大小写,也可能不区分大小写,这有两个原因。
区分大小写
URL 的以下粗体部分可能区分大小写,具体取决于站点和/或服务器的配置。
http:// www。example.com /abc/def.ghi?jkl=mno#pqr
用户 @ example.com
基本原理
URL中的区分大小写可以有多种用途。主要是:
- 与区分大小写的文件系统的本机兼容性。
- URL中更紧凑的数据编码,例如用于序列化,哈希,ID,永久链接和URL缩短器。
作为开发人员,我相信上述方法通常可以更好地解决,但我也理解在某些情况下可能不允许这样做。
例如,假设现有产品需要在“ GET” URL中放置大量数据,但必须与所有主要服务器,浏览器和缓存/代理机制的最大URL长度兼容。为了适合中等长度的命令字符串(对于某些较旧的浏览器,该字符必须少于1,024个字符),您需要使用所有可能的唯一URL安全字符(基本上就是base64url编码)。
在理想世界中
URL 是否区分大小写尚待商.。我个人认为,不应该这样,为简单起见(尽管它可能会创建更长的URL,但我们有百分号转义符可以轻松处理必须确保保留准确字符的情况,并且有一些方法可以传输URL以外的数据) 。
许多人似乎都基于这样的事实,即为许多流行的站点和服务显式启用了不区分大小写的URL,以提高可用性。最突出的例子是电子邮件地址的用户名部分。大多数电子邮件提供商会忽略大小写,有时甚至会忽略点和其他符号(例如“ j.smith@example.com”与“ JSMITH@example.com”相同)。根据规范,即使电子邮件用户名默认情况下也区分大小写。
但是,事实是,尽管我或其他人可能想要什么,但这是当前工作方式的状态。尽管最终有可能在全球范围内过渡到不区分大小写的URL标准,但由于当前区分大小写在网络上广泛用于各种目的,因此可能会花费很长时间。
最佳实践
就最佳实践而言,作为用户,您可以在大多数情况下合理地坚持使用小写字母,并期望一切正常。主要的例外是使用基于案例的编码或具有直接文件系统等效项的文档路径的URL。但是,此类复杂的URL通常是复制粘贴(或简单单击)的,而不是手动键入的。
作为Web开发人员,您应该考虑使URL尽可能不区分大小写。如上所述,尽管视情况而定,但显然存在一些难以避免的情况。