常见的http状态码有200、301、302、303、307、308、400、401、402、403、404、405、406、500、501、502、503、504、505等
1、2xx
- 200
请求已经成功
2、3xx重定向
- 301
永久重定向,表示请求的资源URL1已被指向了新的URL2,后续该资源都是指向该URL2
- 302
临时重定向,http1的产物,表示请求的资源URL1已被指向了新的URL2,后续该资源临时指向该URL2,当然可能以后也可能指向了URL3上。规范是原请求是post请求,不能进行重定向,原请求是get可以进行重定向,但在浏览器的实际情况下,无论是get还是post,都可以进行重定向,所以由于历史原因,就延伸出了303(原302的实际效果)和307(原302的规范定义)。
- 303
临时重定向,http1.1的产物,基本上同302相当,但是有一个区别就是,请求的资源URL1 已被指向了新的URL2,但URL2应该使用get方法请求URL2。规范是原请求无论是get还是post,都可以进行重定向到get上。
- 307
临时重定向,http1.1的产物,基本上和303相同,区别就是原请求是post请求,不能进行重定向到get上
- 308
永久重定向,http1.1的产物,基本上和301相同,区别就是不允许将原请求是post方法重定向到get请求上。
3、4xx客户端异常
- 400
请求语法有误,服务器无法理解次请求。通常如果客户端不做修改,客户端就无法重复发送此请求。
- 401
表示请求认证失败,通常是指token失效/伪造等,进而服务器无法识别用户身份
- 402
表明需要客户端付费之后,请求才会被处理。创建最初目的是用于数字现金或者微型支付系统。
- 403
表示请求通过,但是授权失败,也就是服务器验证了用户身份,只是用户没有权利访问页面,或者进行页面操作,通常是指用户登录成功,但是无权进行操作(可能是读/写/改)。
- 404
服务器无法找到所请求的资源。404状态码并不能说明请求的资源是临时还是永久丢失。如果服务器知道该资源是永久丢失,那么应该返回410而不是 404。
- 405
表明服务器禁止了使用当前 HTTP 方法的请求。
- 406
表示客户端错误,指代服务器端无法提供与 Accept-Charset、Accept-Language消息头与服务器指定的值不相匹配的响应。
- 410
说明请求的目标资源在原服务器上不存在了,并且是永久性的丢失。如果不清楚是否为永久或临时的丢失,应该使用404
4、5xx服务端异常
- 500
服务端错误,表示请求的服务器遇到意外情况而阻止了此次请求。
- 501
服务器错误响应码表示请求的方法不被服务器支持,因此无法被处理。服务器必须支持的方法(即不会返回这个状态码的方法)只有 get、head。
- 502
表示网关或者代理服务器错误。
- 503
表示服务器当前处于不可用的状态,如服务器停机、重启、超载等情况。
- 504
表示请求超时,扮演网关或者代理的服务器无法在规定的时间内获得想要的响应。
- 505
表示服务器不支持请求所使用的 HTTP 版本。