http协议状态码
1xx,表示协议处理的中间状态,不常用
偶尔见到的是101,它的意思是客户端要求在http协议的基础上改用其他协议,如果服务器也同意变更协议,就会发送状态码101,但这之后的数据传输都不会用http了。
2xx,表示服务器收到并成功处理了客户端的请求,一般有下面几种
200,是最常见的成功状态码,表示服务器按照客户端的期望成功返回了
204,含义与200差不多,但是返回的请求头没有div
206,这个是分段传输所返回的状态码,表示本次返回的数据不是全部,而是一部分。
3xx表示客户端请求的服务器资源发生了变动,客户端必须使用新的uri重新发送请求获取资源,也就是通常所说的重定向
301,永久重定向,含义是这次请求的资源不存在了,需要改用新的uri进行访问
302,临时重定向,意思是请求的资源还在,但需要暂时用另一个uri进行访问
301和302都会在请求头里用location字段指明后续要跳转的uri,最终效果相似,两者最大的区别是语意上,一个是永久,一个是临时,浏览器看到302,就知道这是一个临时的情况,不会做缓存优化,第二天还会访问原来的地址。
4xx,表示客户端发送的请求报文有误,服务器无法处理,它就是真正的错误码含义了
400,通用错误码,没有说出具体错误,表达含义模糊不清,会让别人摸不清头脑
403,表示服务器禁止访问资源
404,资源在本服务器上未找到
405,不允许使用某些操作方法,例如不允许post,只允许get
406,资源无法满足客户端请求的条件,例如请求中文只有英文
408,请求超时
409,多个请求发生了冲突
413,请求报文里的div太大
414,请求行里的uri太大
429,客户端发送了太多的请求,通常是由于服务器的限连
431,请求头某个字段或总体太大。
5xx,表示客户端请求报文正确,但服务器在处理时内部发生了错误,无法返回应有的响应数据
500,与400类似,是一个通用的错误码,没有说出具体错误原因,但这个对服务器是有好处的,因为不能让具体的错误信息暴露出来,不安全
501,表示客户端请求的功能还不支持
503,服务器繁忙,暂时无法响应服务,503是一个临时的状态,很可能过一段时间,服务器就不那么繁忙了,可以继续提供服务