如果服务器检测到客户端已经篡改了URI的查询字符串,那么使用的最佳HTTP状态代码是什么?
答案 0 :(得分:0)
了解篡改的本质是很重要的。如果您只是想禁止人们访问某些网址,403
通常是最合适的。
但可能会有更具体的内容。
假设我们有一些类型的集合,可以通过一些标识符(... / collection / 1)访问这些项目。现在让我们假设用户可以使用具有按钮的GUI来访问标识符在1和100之间的项目,例如设置其余呼叫的按钮,而不是标识符> 100.现在,如果用户在浏览器中操作HTML和请求并尝试访问id = 200的项目,那么哪种状态代码最适合返回?
让我们说/collection/101
。如果该项目存在,但不允许用户访问该项目,则403
是合适的。
如果101
永远不会可供任何人访问,因为例如101
实际上是通过/collection2/101
访问的,404
状态代码是最合适的。
如果/collection/101
无法访问,则因为服务器具有需要更改或首先解决的“状态”。此状态可以由用户解决,并且不是访问控制问题,409
可能是合适的。但我会说,这通常不适合GET
等请求。
您描述它的方式,听起来更像是一个权限问题。那么403
就是一个简单的选择。