Ale*_*lan 54 http http-status-codes
我有几个设计用AJAX调用的页面 - 如果它们无法显示,我会让它们返回异常状态代码,我的javascript会相应地显示错误框.
例如,如果用户未经过身份验证或其会话超时并且他们尝试调用其中一个AJAX页面,则会返回401 Unathorized.
500 Internal Server Error如果服务器端发生了奇怪的事情,我也有一些回报.
如果在没有必要参数的情况下调用其中一个页面,我应该返回什么状态代码?(因此不能返回任何内容).
我查看了有关HTTP状态代码的维基百科文章,但我能找到的最接近的代码是我正在寻找的代码:
422
不可处理的实体请求格式正确,但由于语义错误而无法遵循.
编辑:上面的代码是特定于WebDAV的,因此在这种情况下不太合适
谁能想到适当的代码才能返回?
hak*_*kre 41
如果在没有必要参数的情况下调用其中一个页面,我应该返回什么状态代码?(因此不能返回任何内容).
你可以选择404 Not Found:
服务器没有找到与Request-URI匹配的任何内容[假设您的所需参数是URI的一部分,即
$_GET].没有说明该病症是暂时的还是永久性的.如果服务器通过一些内部可配置的机制知道旧资源永久不可用且没有转发地址,则应该使用410(Gone)状态代码.当服务器不希望确切地说明请求被拒绝的原因,或者没有其他响应适用时,通常会使用此状态代码.
(由我突出)
404 Not Found是一个400 Bad Request可以采取的子集,因为它是非常清楚这是什么:
由于语法格式错误,服务器无法理解请求.客户端不应该在没有修改的情况下重复请求.
我实际上不建议您选择使用超文本的HTTP客户端不存在的WEBDAV响应代码,但您可以,它是完全有效的,您是服务器编码器,您实际上可以采用您认为合适的任何HTTP共振状态代码对于您也是设计师的HTTP客户端:
11.2.422不可处理的实体
422(不可处理实体)状态代码表示服务器理解请求实体的内容类型(因此415(不支持的媒体类型)状态代码是不合适的),并且请求实体的语法是正确的(因此400(错误请求) )状态代码不合适)但无法处理包含的指令.例如,如果XML请求主体包含格式正确(即语法正确)但语义错误的XML指令,则可能发生此错误情况.
IIRC请求实体是请求主体.因此,如果您正在使用请求主体,那么Julian写道可能是合适的.
你评论说:
恕我直言,400的文字说话格式不正确.我假设这里的语法与客户端发送到服务器的HTTP字符串的语法有关.
这可能是,但它可以是语法表达的任何东西,整个请求,只有一些请求标头,或特定的请求标头,请求URI等.400不是特别关于"HTTP字符串语法",它实际上是一般答案客户端错误:
4xx类状态代码适用于客户端似乎有错误的情况.除了在响应HEAD请求时,服务器应该包括一个实体,其中包含错误情况的解释,以及它是临时或永久条件.这些状态代码适用于任何请求方法.用户代理应该向用户显示任何包含的实体.
重要的是你必须告诉客户出了什么问题.状态代码只是告诉某些内容出错(在4xx类中),但HTTP并未专门设计为使缺少的query-info部分参数可作为错误条件记录.事实上,URI只知道有一个查询信息部分,而不是它的含义.
如果您认为400太宽泛,我建议您选择404,如果问题与URI相关,例如$_GET变量.
422是常规HTTP状态码; 并且它被用于外面的WebDAV.与其他人所说的相反,这没有问题; HTTP有一个状态代码注册表.
请参阅http://www.iana.org/assignments/http-status-codes
| 归档时间: |
|
| 查看次数: |
49070 次 |
| 最近记录: |