HTTP 方法是否区分大小写?

wsa*_*ers 8 http http-method

问一个与HTTP 标头是否区分大小写相关的问题,如果 HTTP 方法区分大小写,大多数服务器如何处理“get”或“post”与“GET”或“POST”?

例如,看起来 Apache httpd 返回“501 Method Not Implemented”以响应小写方法,这正是我所期望的。

小智 4

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

https://www.rfc-editor.org/rfc/rfc7230#section-3.1.1

方法令牌区分大小写,因为它可以用作具有区分大小写方法名称的基于对象的系统的网关。

https://www.rfc-editor.org/rfc/rfc7231#section-4.1

有趣的是,虽然两个参考文献都说这个案例很重要,但没有一个人说应该使用什么案例。继续第二个参考:

按照惯例,标准化方法是用全大写的US-ASCII 字母定义的。

所以现在这里确实说大写,但按照惯例也说。因此,在纸面上,您似乎也可以使用所有较低的值。实际上,似乎只接受 upper:

PS C:\> curl.exe -X POST https://www.ietf.org
<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="robots" content="NONE,NOARCHIVE">
  <title>403 Forbidden</title>
Run Code Online (Sandbox Code Playgroud)
PS C:\> curl.exe -X post https://www.ietf.org
<html>
<head><title>400 Bad Request</title></head>
Run Code Online (Sandbox Code Playgroud)

  • *区分大小写*只是意味着您必须使用指定的名称,而不更改大小写。方法名称指定为“POST”、“GET”等,因此这里没有歧义。 (7认同)