客户端向服务端发送请求http请求时候,一般会返回一个状态码,表示请求的状态。,一般通过他们,我们就可以表示请求的成功或者出现问题的一些原因。
其中,一般分为1-5五中错误类型(6不考虑)
个人说明一下,状态码就是RFC2616(用来指定HTTP协议标准的文档)标准定义的一种状态表示。
状态码 | 响应类别 | 原因 |
---|---|---|
1xx | 信息性状态码(Informational) | 服务器正在处理请求 |
2xx | 成功状态码 | 请求被服务器正常处理 |
3xx | 重定向状态码 | 需要进行额外操作以完成请求(304一般不要) |
4xx | 客户端错误状态码 | 客户端原因导致服务器无法处理请求 |
5xx | 服务器错误 | 服务器自己出现问题 |
状态码响应类别的的定义是必须遵守的,一般在大致类别下,可以自己定义。其中标准定义有4或者50多种。其中,常用的14种状态码如下:
2xx 成功状态码
200
表示请求已经被服务器正常处理了(最开心的返回值)
随着一起回来的返回信息跟你请求的方式有关联,get一般放在消息主题中被返回。Head,放在响应报文首部。
204 No Content
表示请求已成功处理,但是没有内容返回(就应该没有内容返回的状况)
也就是返回的响应报文中没有报文实体(其实是没有报文实体的主体部分)
浏览器向服务器发送请求后收到了204,那么浏览器页面不会发生更新
一般用在只是客户端向服务器发送信息,而服务器不用向客户端返回什么信息的情况
206 Partial Content 部分内容
表示服务器已经完成泐部分get请求(客户端进行了范围请求)
3xx 重定向
301 Moved Permanently
永久重定向,表示请求的资源已经永久搬到了其他位置
资源已经被分配了新的URI
新的URI应该提示在响应报文的Location首部字段
只要不是HEAD请求,响应实体应该包含新URI的超链接和简短的说明
302 Found 临时重定向
请求的资源暂时被配到到了新的URI
和301很像,只不过资源是临时移动,资源在将来可能还会改变
303 see Other
表示请求资源存在另一个URI,应使用GET定向获取请求资源
303功能与302一样,区别只是303明确客户端应该使用GET访问
(很多HTTP/1.1之前的浏览器不能理解303,但是大家都把302当303对待,使用GET请求新URI)
304 Not Modified
表示客户端发送附带条件的请求(GET方法请求报文中的IF…)时,条件不满足
返回304时,不包含任何响应主体
虽然304被划分在3XX,但和重定向一毛钱关系都没有
307 暂时重定向
基本上307就是标准化的302临时重定向
4xx 客户端错误
400 Bad Request
表示请求报文存在错误或参数错误
401
一般表示服务端需要的http认证信息失败了
403 禁止访问
404 服务器找不到请求的资源
5XX 服务器错误
500 服务器执行请求是错误了
503 Service Unavailable
表示服务器超负载或正停机维护,无法处理请求
如果服务器知道还需要多长时间,就写入Retry-After首部字段返回
总结
200 ok 正确返回
204 Not Content 没有实体的主题返回
206 部分请求 。Get的范围请求已成功处理
301:永久重定向
302 :临时重定向,分配了新的uri
303: 临时重定向,期望使用新的get请求来返回
304:: 请求的附带条件为满足,一般也可以表示以前浏览器请求的内容没有修改
307:临时重定向,Post不会变成Get
400:参数或者语法错误
404:摘不到请求资源
403:禁止访问
401:丢失http认证
500:服务器处理请求错误
503 :服务器负载或者停机维护