为什么HTTP操作通常全部大写?

为什么HTTP操作通常全部大写?

我正在寻找这件事的历史。为什么我们通常将 HTTPPOSTOPTIONS操作全部大写?

答案1

RFC 1945(1996)说

5.1.1 方法

方法令牌指示要对请求 URI 标识的资源执行的方法。该方法区分大小写。

   Method         = "GET"                    ; Section 8.1
                  | "HEAD"                   ; Section 8.2
                  | "POST"                   ; Section 8.3
                  | extension-method

至于为什么,可能是早期协议(例如 telnet)的影响(RFC 854,1983)已经足够老了,大写被认为比忽略大小写更便携(并且可靠)。

RFC 1945 的一些内容不区分大小写,例如:

  1. 接入认证

HTTP 提供了简单的质询-响应认证机制,服务器可以使用该机制来质询客户端请求,客户端可以使用该机制来提供认证信息。它使用可扩展、不区分大小写的令牌来标识身份验证方案,后跟逗号分隔的属性值对列表,其中包含通过该方案实现身份验证所需的参数。

还有 http URL 本身:

“http” URL 的规范形式是通过将主机中的任何 UPALPHA 字符转换为其 LOALPHA 等效字符(主机名不区分大小写)获得的,如果端口为 80,则省略 [“:” port ],并将空的 abs_path 替换为“ /”。

答案2

这可能只是 RFC 中使用全部大写的操作定义的结果。对于其他(较旧的)协议,即使实际实现可能不区分大小写,RFC 中的操作描述也全部大写。

这可能是因为这使得它们在纯文本文档中脱颖而出,在这些文档中没有其他方式来强调特定术语(例如使用大胆的或者斜体)。

相关内容