Shi*_*z.M 6 rest w3c api-design amazon-web-services web
我正在阅读W3C URL 规范,发现没有明确提及这一点。
实验
所以我尝试的curl是
www.google.com
进而
www.GOOGLE.com
这些返回了相同的文档。所以我想也许谷歌拥有其域名的所有变体,所以我尝试了其他网站,但得到了不同的结果。
所以我在 URL 规范上混合了大小写,它似乎允许混合大小写。
将其应用于 REST API 设计
因此,当将此应用于 REST API 设计时,有时我们会使用标识符的概念从服务器返回特定资源。例如
在 中https://localhost:8080/contacts/MYSELF,MYSELF将是典型的标识符
根据以前的经验,情况MYSELF应该不重要。但是如果我想对标识符进行严格验证怎么办?
当然,您可以违反规范并在应用程序中执行此操作;但在这种情况下,正确的做法是什么?
那么回到主题。URL 是否不区分大小写?
在通用 URI 语法中(由RFC 3986定义,目前是URI 的互联网标准),仅两个组件不区分大小写:
\n\n百分比编码三元组中的字母(即a- f、A- F)也不区分大小写。
其他一切都区分大小写。
\n但是,URI 方案可以为其 URI 覆盖此设置(请参阅大小写标准化)。
\n对于 HTTP(S) URI,规范不会\xe2\x80\x99 使任何其他组件不区分大小写(它重申方案和主机不区分大小写)。
\n这意味着以下 HTTP URI 是等效的:
\nhttp://example.com/foo\nHTTP://example.com/foo\nhttp://EXAMPLE.com/foo\nhttp://example.COM/foo\nHTTP://EXAMPLE.COM/foo\nhtTp://exAMPlE.cOm/foo\nRun Code Online (Sandbox Code Playgroud)\n(最佳实践是将方案和主机标准化为小写。)
\n而这些并不等同:
\nhttp://example.com/foo?bar#baz\nhttp://example.com/fOo?bar#baz\nhttp://example.com/foo?bAr#baz\nhttp://example.com/foo?bar#bAz\nhttp://example.com/FOO?BAR#BAZ\nRun Code Online (Sandbox Code Playgroud)\n