课程大纲
一、定义
HTTP状态码(HTTP Status Code):用以表示网页服务器超文本传输协议响应状态的3位数字代码。
状态码可以分为五大类,第一个数字代表了响应的五种状态之一。
所示的消息短语是典型的,但是可以提供任何可读取的替代方案。
除非另有说明,状态码是HTTP / 1.1标准(RFC 7231)的一部分。
二、常见状态码
1**:信息响应(Informational Responses)
100 Continue:表示客户端应当继续发送请求的剩余部分。 |
101 Switching Protocols:服务器正在切换协议。 |
举例: (图片来自网络) |
2**:成功(Successful)
200 OK:请求已成功处理,请求所希望的响应头或数据体将随此响应返回。 |
举例: |
201 Created:请求已经被实现,并且有一个新的资源已经依据请求的需要而创建。 |
举例: 创建一个新帖子。 |
202 Accepted:请求已被接受处理,但未完成。 |
204 No Content:请求已成功处理,但没有内容需要返回。 |
3**:重定向(Redirection)
301 Moved Permanently: 永久重定向。被请求的资源已永久移动到新的 URI,未来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。 |
解释: 原来的网页/资源变更了url,使用旧的url访问时服务器会返回网页/资源的新url。一般浏览器或者其它客户端会自动跳转到重定向的url。 不太恰当的比喻: 网页搬家了,旧的电话号码还留着,电话打到老房子旧号码,电话留言播报新地址号码,你可以拿着新号码拨打给网页。 |
302 Found(原始描述短语为Moved Temporarily) 、303 See Other: 临时重定向。请求的资源现在临时位于由 Location 头指定的 URL 上。 |
304 Not Modified: 如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来)并没有改变,则服务器应当返回这个状态码。 |
4**:客户端错误(Client Error)
400 Bad Request: 服务器无法理解或拒绝执行客户端的请求。 |
错误原因: 1、请求语法错误,检查请求的语法是否正确; 2、无效的请求参数,请求中可能包含一些无效或不正确的参数; 3、错误的请求头,有些服务器可能要求特定的请求头信息; 4、无效的身份验证信息,如果请求需要身份验证,但提供的身份验证信息无效或不正确; |
401 Unauthorized: 要求用户的身份认证——输入用户名密码。 |
错误原因: 1、用户未登录。 |
403 Forbidden: 服务器理解请求,但是拒绝执行它。 |
错误原因: 1、用户权限不足; 2、敏感信息; 3、法律禁止。 |
404 Not Found: 服务器无法找到请求的资源。 |
错误原因: 1、url错误。 |
405 Method Not Allowed: 方法不被允许。请求行中指定的方法不被允许对请求的资源使用。 |
错误原因: 1、请求方法错误。 举例: 将接口的get请求方法写错为post。 |
5**:服务器错误(Server Error)
500 Internal Server Error: 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。 |
错误原因: 服务器配置错误、软件错误、数据库连接问题、硬件故障和 ddos 攻击。 解决办法: 1、检查服务器日志,查看报错信息进行排查和定位、修复; 2、检查服务器配置; 3、检查软件更新; 4、检查数据库连接; 5、检查硬件; 6、联系主机提供商。 7、其他建议(客户端:清除浏览器缓存和 cookie、禁用插件和扩展程序、使用不同的浏览器或设备以及在不同的时间尝试访问网站)。 |
501 Not Implemented: 服务器不支持当前请求所需要的某个功能。 |
502 Bad Gateway: 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。 |
错误原因: 1、上游服务器问题,检查上游服务器的状态和日志,确保它们正常运行并响应请求; 2、负载均衡器问题等等。 3、网络问题; 4、服务器配置问题; 5、代理服务器问题; 6、防火墙或安全组规则; 7、服务器资源不足; 8、应用程序代码或配置问题; 9、依赖服务不可用; 10、服务器日志分析。 |
503 Service Unavailable: 由于临时的服务器维护或者过载(繁忙),服务器当前无法处理请求。 |
错误原因: 1、服务器正在维护或升级等; 2、服务器当前请求过多。 解决办法: 过段时间再请求——服务器维护升级结束后、服务器空闲时。 |
504 Gateway Timeout: 作为网关或者代理工作的服务器在等待从上游服务器接收响应时超时。 |
附:status code表
(图片来自网络)