为什么HTTP请求的方法接受任何单词?

时间:2016-06-03 12:25:28

标签: http http-post httprequest

我一直在玩AJAX将数据发送到使用PHP完成的API REST。在任何时候,我都决定将ASD指定为请求方法。然后我允许链接到API路由的函数接受ASD作为方法,在PHP中我已经完成了这个:

$incomingData = file_get_contents("php://input");

令我惊讶的是,$incomingData并非空,服务器没有抛出任何异常或错误,但$incomingData具有指定值。

我感到很惊讶,因为我有几天在阅读每种请求方法的使用情况(POSTPUTGETPATCH等等)在这种情况下,使用其中一种或另一种更合适。我发现了很多好的做法和建议,所以我认为这个方法的类型与上面提到的值有很好的区别。

那为什么呢?为什么接受任何一个字?然后,对于特定情况,使用它们中的每一个是什么意思?

1 个答案:

答案 0 :(得分:0)

最好的来源是RFC 7231 - http metod overview,它已废弃RFC 2616 on HTTP Method

HTTP methods can be expanded。还有Method Registry

many already registered个方法并不常用。通用服务器只能支持GET和HEAD。

服务器可能会限制某个URI支持的方法,但通常您需要为此目的编写代码或配置。当方法受限时,如果方法已知但不受支持,服务器应该使用405回答,包括在响应中Allow响应头中支持的方法列表,如果方法未知,则应包含501