在面试的时候经常会被提问到一些关于状态码的意义问题,今天就写一篇博客,来总结一些常见的状态码:
关于状态码,在《图解HTTP》这本书里给出了这样的总结
-
1xx
该类状态码表示接收的请求正在被处理 -
2xx
请求正常处理完毕 -
3xx
需要进行附加操作以完成请求 -
4xx
服务器无法处理请求 -
5xx
服务器处理请求出错
2xx 成功
200 ok
表示客户端所发出的请求被服务端正常处理
204 No Content
表示服务端已经成功处理请求,但在返回的报文中不含实体的主体部分,并且不允许返回任何实体的主体。
206 Partial Content
表示客户端进行了范围请求,服务端成功执行了这部分的GET请求。
3xx 重定向
301 Moved Permanently
永久性重定向,这个状态码表示客户端请求的资源被分配了新的URI(想获取资源吗?更新你的URI吧!)
302 Found
临时性重定向,和上面的301状态码类似,该状态码也是表示请求的资源被分配了新的URI,但资源并不是被永久移动,只是暂时性的,后期还可能会发生改变。
303 See Other
该状态码表示请求的资源中还存在另一个URI,需要客户端采用GET请求来获取资源
304 Not Modified
客户端发送请求,但附带了条件,表示,服务器端允许访问资源,但条件并未满足,此时返回304状态码
307 Temporary Redirect
临时重定向,与302含义相同
4xx 客户端错误
400 Bad Request
表示请求报文中存在语法错误,服务端无法理解客户端发来的请求,需要客户端修改请求内容
401 Unauthorized
表示发送的请求需要通过HTTP的认证的认证信息,如果之前进行过一次请求,则表示认证失败
403 Forbidden
表示客户端请求资源被服务端拒绝了
404 Not Found
表示客户端要找的资源服务端并没有
5xx 服务器错误
500 Internal Server Error
表示服务端执行请求时出现错误,可能这个应用出现bug了
501 Not Implemented
服务器无法识别请求
502 Bad Gateway
服务器作为网关,从上游服务器中收到无效响应
503 Service Unavailable
表示服务器暂时处于超负载或正在进行停机维护中,无法处理请求。
常见的状态码就是这些,具体参考可见《图解HTTP》 ——上野宣(日)