-
“400 Bad Request ”是一个通用的错误码,表示请求报文有错误,但具体是数据格式错误、缺少请求头还 是URI超长它没有明确说,只是一个笼统的错误,客户端看到400只会是“一头雾水”“不知所措”。所 以,在开发Web应用时应当尽量避免给客户端返回400,而是要用其他更有明确含义的状态码。
-
“403 Forbidden ”实际上不是客户端的请求出错,而是表示服务器禁止访问资源。原因可能多种多样,例 如信息敏感、法律禁止等,如果服务器友好一点,可以在body里详细说明拒绝请求的原因,不过现实中通 常都是直接给一个“闭门羹”。
-
“404 Not Found ”可能是我们最常看见也是最不愿意看到的一个状态码,它的原意是资源在本服务器上未 找到,所以无法提供给客户端。但现在已经被“用滥了”,只要服务器“不高兴”就可以给出个404,而我 们也无从得知后面到底是真的未找到,还是有什么别的原因,某种程度上它比403还要令人讨厌。
-
405 Method Not Allowed:不允许使用某些方法操作资源,例如不允许POST只能GET;
-
406 Not Acceptable:资源无法满足客户端请求的条件,例如请求中文但只有英文;
-
408 Request Timeout:请求超时,服务器等待了过长的时间;
-
409 Conflict:多个请求发生了冲突,可以理解为多线程并发时的竞态;
-
413 Request Entity Too Large:请求报文里的body太大;
-
414 Request-URI Too Long:请求行里的URI太大;
-
429 Too Many Requests:客户端发送了太多的请求,通常是由于服务器的限连策略;
-
431 Request Header Fields Too Large:请求头某个字段或总体太大;