【发布时间】:2020-06-23 12:14:02
【问题描述】:
如果端点/请求 URL 应该不接收任何查询但请求者仍然提供查询,那么 HTTP 中是否有关于如何处理请求的标准?
如果存在,标准说明了什么?如果没有,是否有任何其他相关标准/声明与此相关,例如在 HTTP 标准中一般应该如何处理请求查询或类似的处理?
谢谢
【问题讨论】:
-
通常不期望的部分参数会被忽略。
如果端点/请求 URL 应该不接收任何查询但请求者仍然提供查询,那么 HTTP 中是否有关于如何处理请求的标准?
如果存在,标准说明了什么?如果没有,是否有任何其他相关标准/声明与此相关,例如在 HTTP 标准中一般应该如何处理请求查询或类似的处理?
谢谢
【问题讨论】:
默认情况下,当你收到比预期更多的参数时,如果你不需要它,你不在乎
【讨论】:
如果端点/请求 URL 应该不接收任何查询但请求者仍然提供查询,那么 HTTP 中是否有关于如何处理请求的标准?
从HTTP的角度来看,请求行中的整个target-uri就是资源的标识符:
POST /123?456
在本例中,目标 uri 为 /123?456。
RFC 7231 定义 404 Not Found
404(未找到)状态码表示源服务器没有找到目标资源的当前表示或不愿意透露存在的表示。
也就是说,如果你想引起客户注意目标uri的拼写,404 Not Found就是这样做的方法。
也就是说,没有关于服务器如何解释目标 uri 的“规则”。如果您想忽略查询部分,并提供与/123 相同的表示形式,那么这很好。
当你收到比预期更多的参数时,如果你不需要它,你不在乎
在消息传递中,在尝试确保您的架构向前/向后兼容时,忽略消息中无法识别的部分可能很有用;使用旧规范的旧客户端可以使用新规范与新服务器通信,反之亦然。
header specification for HTTP中描述了相同的原理
其他收件人应该忽略无法识别的标头字段。这些要求允许增强 HTTP 的功能,而无需事先更新已部署的中介。
【讨论】: