状态码是描述请求的结果,用户可以知道服务端是正常处理了请求还是出现了错误。
- 1xx:信息性状态码,接受的请求正在处理。
- 2xx:成功状态码,请求正常处理完毕。
- 3xx:重定向状态码,需要进行附加操作,才能完成请求。
- 4xx:客户端错误状态码,服务端无法处理请求。
- 5xx:服务端错误状态码,服务器处理请求出错。
常见状态码:
-
204: 请求成功,但返回响应报文没有实体主体。本来也不允许返回任何实体的主体。比如当浏览器发出请求处理后,返回204,浏览器显示的页面不发生更新。
-
206: 表示客户端进行了范围请求,服务端执行了这部分GET请求。
-
301: 永久性重定向,请求的资源已经分配了新的URI,以后应使用新的URI。
-
302: 临时重定向,表示请求的资源已经分配了新的URI,本次请求使用心得URI访问,下次就不一定了。
-
303: 表示请求对应的资源存在另一个URI,应该用GET方法请求资源。303和302有着相同的功能,但是303明确告诉客户端应该用GET方法去获取资源,这个和302有区别。
301,302,303状态码返回时,几乎所有浏览器都会把POST改为GET,并删除请求主体,再次发送请求。虽然301,302标准是禁止将POST改为GET,但实际大家都会这么做。
-
304: 客户端发送附带条件的请求,服务端允许访问资源,但是发出的请求为满足条件,会直接返回304。附带条件的请求值GET方法,请求报文中包含If-MAtch,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since中任意一个。
-
307: 临时重定向,和302有相同含义,307会遵守浏览器标准,不会从POST变成GET。
-
400: 请求报文中存在语法错误。
-
401: 表示请求需要有HTTP认证。若之前进行过1次请求,则返回404表示用户认证失败。
-
403: 表明对请求资源的访问被服务器拒绝了。
-
404: 服务器没有请求的资源。
-
500: 服务端执行请求时,发生了错误。
-
503: 表明服务端在处于超负载或者正在进行停机维护,无法处理请求。如果服务器事先得知解除以上状态需要的时间,可以写入Retry-After首部字段,再返回给客户端。