说到 404 Not Found 估计大家都很熟悉,资源没有被找到,这是一个很常见的错误状态码。今天就聊一聊 HTTP 的一些常见状态码。
HTTP 状态码分五类:
1xx 信息性状态类,接收的请求正在处理
2xx 成功状态类,请求正常处理完毕
3xx 重定向状态类,需要进行附加操作以完成请求
4xx 客户端错误状态类,服务器无法处理请求
5xx 服务器错误状态类,服务器处理请求出错
200 OK
这个状态码是最常见的状态码没有之一,表示请求成功并且请求正常返回。
204 No Content
请求被处理了,但响应请求里面没有实体内容。这个状态使用非常少,建议使用 200 代替。
301 Moved Permanently
永久性重定向,该状态码表示请求的资源已被分配了新的 URI,以后访问新的 URI 就可以了,一般用于游览器书签的更新。
302 Found
临时性重定向,表示请求的资源已被分配了新的 URI。一般用于 URI 参数不完整的时候临时跳转首页一类的地方(更大的可能是 400 或者 500)。
400 Bad Request
请求报文中存在语法错误。一般发送 GET 请求的时候,参数没有写对或者没有写全,都会返回这个错误状态。
403 Forbidden
请求访问被服务器拒绝,一般是用户认证没有通过,或者用户权限不够造成。
404 Not Found
请求的资源不存在,一般是 URI 拼写错误造成,或者拒绝处理而又不想给出原因,比如:爬虫。
500 Internal Server Error
请求在服务器端执行的时候发生了错误,一般参数处理出现异常又没有捕捉就会给出这个错误。
一个常见的疑惑是,明明返回的是 200 却提示错误信息。这里要明确一点,HTTP 协议是应用层,状态码在报文头部里,而错误信息在报文主体里。比如:A 发送一个数据给 B ,B 说你这个数据有问题,请重新发送。从某种角度来说,A 和 B 完成了一次交流(200),但是 B 说 A 错了。就像你网页提示你帐号密码输入错误一样(PS:举例帐号只是方便理解,具体情况具体分析)。
上面我是总结的一些常见的状态码,并且简单的举例了一些可能出现的场景。但是随着程序的健壮性越来越好,在游览器一般都只能看见 200 和 404,其余状态码都很少见了。
PS:觉得文章不错,动动你的小手点个赞吧。
领取专属 10元无门槛券
私享最新 技术干货