HTTP状态码
1xx 信息,表示临时响应并需要请求者继续执行操作的状态码
2xx 成功,操作被成功接收并处理
200——OK——客户端发来的请求在服务器端被正常处理。在响应报文中,随状态码返回的信息会因方法的不同而改变。比如,使用GET时对应请求资源的实体会作为响应返回;使用HEAD时,在响应中只返回首部,不返回实体的主体部分。
3xx 以此开头的HTTP状态码都表示重定向的响应
缓存(永久重定向) | 不缓存(临时重定向) | |
转GET | 301 | 302、303 |
方法保持 | 308 | 307 |
如果是永久重定向那么浏览器客户端就会缓存此次重定向结果,下次如果有请求则直接从缓存读取,譬如我们切换域名,将所有老域名的流量转入新域名,可以使用永久重定向。
如果只是临时重定向那么浏览器则不会缓存,譬如我们的服务临时升级,会使用临时重定向。
301、308是永久重定向
302、303、307是临时重定向。
301和302本来在http/1.0规范中是不允许重定向时改变请求method的(将POST改为GET),实际许多浏览器实现的时候允许重定向时改变请求method。
302,303,307的出现,都是基于HTTP/1.1兼容HTTP/1.0规范和实现的差异性
303的出现是允许重定向时改变请求method,此外303响应禁止被缓存
307、308则不允许重定向时改变请求method
4xx 客户端错误,请求包含语法错误或无法完成请求
400——Bad Request——请求报文中存在语法错误
401——Unauthorized——发送的请求需有通过HTTP认证的认证信息
403——Forbidden——对请求资源的访问被服务器拒绝了
404——Not Found——服务器上无法找到请求的资源
5xx 这一组状态码说明服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理
500——Internal Server Error——服务器在执行请求时发生错误
502——Bad Gateway——作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
503——Service Unavailable——服务器暂处于超负载或正在进行停机维护,现在无法处理请求
504——Gateway Timeout——作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,如HTTP)或者辅助服务器(DNS)收到响应。