这是我参与「第五届青训营」伴学笔记创作活动的第 11 天,今天在调试项目时出现了301重定向的报错,于是打算顺带对HTTP的状态码进行一下总结
项目中出现的错误
报错日志:
出错原因:
在没有调用jwt进行身份验证的情况下,直接对chaims进行了获取
概念
什么是HTTP状态码:
HTTP状态码是用以表示网页服务器超文本传输协议响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774 与 RFC 4918 等规范扩展。
HTTP状态码的重要性:
HTTP状态码对诊断应用问题很重要,而快速发现这些问题对开发人员和为搜索引擎一个良好的体验十分重要。
HTTP状态码总结表
状态码的作用就是让我们知道HTTP请求是成功失败还是其他情况,HTTP状态码主要分为5类:
状态表 | 类别 | 含义 |
---|---|---|
1XX | Informational(信息性状态码) | 接收的请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |
一些HTTP状态码
1xx Informational
100 Continue: 服务器已经接收到浏览器的请求标头,并且现在已经准备好发送请求正文
101 Switching Protocols: 服务器已经接收到客户端的请求,并通过消息头通知客户端采用不同的协议完成这个请求
102 Processing: 在服务器响应HTTP消息之前返回的一些响应头
2xx Success
200 OK: 客户端的请求已经被服务端正常处理
201 Created: 服务器已完成浏览器的请求,创建了一个或多个资源
202 Accepted: 服务器已接受浏览器的请求,仍在处理中
204 No Content: 客户端发送的请求已在服务端正常处理了,但没有返回内容,响应报文中没有实体的主体部分
206 Partial Content: 客户端进行了范围请求,而服务端执行了这部分的GET请求
3xx Redirection
301 Moved Permanently: 永久性重定向
302 Found: 临时重定义,例如404后重定向到首页
303 See Other: 请求对应的资源存在另一个URI,应使用GET方法定向获取请求资源
304 Not Modified: 浏览器缓存相关,表示客户端发送附带条件的请求时,服务端允许请求访问资源,但未满足条件情况
4xx Client Errors
400 Bad Request: 请求报文中出现错误
401 Unauthorized: 表示用户认证失败
402 Payment Required: 为数字支付系统保留,并未广泛使用
403 Forbidden: 因为客户端无权限,请求已被拒绝
404 Not Found: 服务器无法找到对应资源
406 Not Acceptable: 服务器通知客户端找不到符合请求标准的资源
5xx Server Errors
500 Internal Server Error: 服务器执行请求时出现错误
501 Not Implemented: 请求无法处理
502 Bad Gateway: 服务器从上游服务器接受的响应是无效的
503 Service Unavailable: 服务器暂时超负载,无法处理请求
504 Gateway Timeout: 服务器无法在规定时间内响应
总结
状态码在诊断错误时起到了很关键的作用,他帮助着开发人员更好更精准的了解到当前的错误类型