HTTP 状态码
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。
响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599)。
- 1xx(信息响应):表示接收的请求正在处理。
- 2xx(成功响应):表示请求正常处理完毕。
- 3xx(重定向响应):需要后续操作才能完成这一请求。
- 4xx(客户端错误):表示请求包含语法错误或无法完成。
- 5xx(服务器错误):服务器在处理请求的过程中发生了错误。
==常见状态码和解决方式总结:
200 OK :表示从客户端发来的请求在服务端被正常处理了。
400 Bad Request:请求格式有误或请求数据不合法;
办法:当错误发生时,需修改请求的内容后再次发送请求,检查请求的参数类型和数据格式,对照字段名称,类型保证一致性。
401 Unauthorized:请求要求用户的身份认证,未授权。
办法:用户认证,在Headers中添加基本认证的键值对。例如 OAuth 等认证方式;优先考虑是否是需要验证用户身份,也就是是否需要授权账号和密码信息;如果是开放的服务器资源, 需要考虑的是是否有防御性的安全策略;
403 Forbidden:用户认证成功,但无权访问;例如访问管理员页面时普通用户收到 403。
办法:修改权限和解决授权问题,检查认证信息;清除浏览器缓存与Cookies。
404 Not Found(常见):请求的资源不存在,可能是URL的路径有误、资源不存在、或者没有提供足够的权限等导致。
办法: 检查URL路径和对应的代码是否正确匹配,确保资源存在;检查文件路径或静态资源是否存在,确保数据库实体存在;检查是否已经给与用户足够的权限,或者检查相应的访问授权是否已经开启,是否完成相关的安全认证。;检查UTF-8或其他编码格式是否正确。
405 Method Not Allowed:方法不允许,方法禁用。
办法: 一般出现在servlet中比较常见,检查方法和方法名称,参数类型。
415 Unsupported Media Type:服务器无法处理请求附带的媒体格式。
办法:向服务器发请求时,查看请求数据类型是否错误。
500 Internal Server Error:服务器内部错误,无法处理请求。
办法:通常由程序、数据库、服务器配置和网络等因素导致。多是后端服务器问题,排查错误,根据报错提示查找bug,服务器配置问题,系统异常等。
502 Bad Gateway:服务器作为网关或代理,从上游服务器接收到无效响应,通常在负载均衡或代理服务器出问题时看到。
办法:检查后端服务器是否正常运行,网络连接是否正常;检查网关配置问题,检查网关与服务器通信问题(网络连接、端口开放等)。