本文已参与「新人创作礼」活动,一起开启掘金创作之路。
作为一个前端日常少不了经常要跟http状态码打交道,毕竟也不是什么新人了,常见的状态码还是知道一些的,比如:200、302、404、401、500等,但是偶尔也免不了出现以下比较少见的,这时候就只能指望有个靠谱的后端大佬答疑了,但是如果正巧和你搭档的后端哥们也是个新人,那估计少不了一场面红耳赤的甩锅过程。经过几次这样不愉快的撕逼之后,我决定整理一份http常见状态码所代表的含义的文档出来,有了这个文档之后,现在每次见到5XX格式的状态码终于可以有恃无恐的甩锅,想着反正不是我前端的问题。。。
状态码分类表
| 状态码 | 类别 | 原因短语 |
|---|---|---|
| 1xx | Informational(信息状态码) | 接受的请求正在处理 |
| 2xx | Success(成功状态码) | 请求正常处理完毕 |
| 3xx | Redirection(重定向) | 需要进行附加操作以完成请求 |
| 4xx | Client Error(客户端错误) | 客户端请求出错, 服务器无法处理请求 |
| 5xx | Server Error (服务器错误) | 服务器处理请求出错 |
常见http状态码
-
2xx(3种) 200 OK: 表示从客户端发送给服务器的请求被正常处理并返回
204 No Content: 表示客户端发送给客户端的请求得到了成功处理,但在返回的响应报文中不含实体的主体部分(没有资源可以返回)
206 Patial Content:表示客户端进行了范围请求,并且服务器成功执行了这部分的GET请求,响应报文中包含由Content-Range指定范围的实体内容。
-
3xx(5种) 301 Moved PerManently:永久性重定向,表示请求的资源被分配了新的URL,之后应使用更改的URL
302 Found:临时性重定向,表示请求的资源被分配了新的URL,希望本次访问使用新的URL
301与302的区别:前者是永久移动,后者是临时移动(之后可能还会更改URL)
303 See Other: 表示请求的资源被分配了新的URL,应使用GET方法定向获取请求的资源
302与303的区别:后者明确表示客户端应当采用GET方式获取资源
304 Not Modified:表示客户端发送附带条件(是指采用GET方法的请求报文中包含if-Match、If-Modified-Since、If-None-Match、If-Range、If-Unmodified-Since中任一首部)的请求时,服务器端允许访问资源,但是请求未满足条件的情况下返回未状态码
307 Temporary Redirect:临时重定向,与303有着相同的含义,307会遵照浏览器标准不会从POST变成GET;(不同浏览器可能会出现不同的情况)
4xx (4种)
400 Bad Request:表示请求报文中存在语法错误
401 Unauthorized:未经许可,需要通过HTTP认证
403 Forbidden:服务器拒绝该次访问(访问权限出现问题)
404 Not Found:表示服务器上无法找到请求的资源,除此之外,也可以在服务器拒绝请求但不想给拒绝原因时使用
5xx (2种)
500 Inter Server Error:表示服务器在执行请求时发生了错误,也有可能是web应用存在的bug或某些临时的错误时
503 Server Unavailable:表示服务器暂时处于超负载或正在进行停机维护,无法处理请求