【HTTP】HTTP状态码

常见的 HTTP 状态码以及代表的意义

1xx => Informational(信息性状态码),接受的请求正在处理

  • 100 => 正在初始化(一般是看不到的)
  • 101 => 正在切换协议(websocket 浏览器提供的)

2xx => Success(成功状态码),请求正常处理完毕

  • 200 OK => 请求成功
  • 201 Created => 创建用户,已成功创建
  • 202 Accepted => 表示接受
  • 204 No Content => 无内容

3xx => Redirection(重定向状态码),需要进行附加操作一完成请求

  • 301 Moved Permanently => 永久重定向
  • 302 Move Temporarily => 临时重定向(一般用来做服务器负载均衡)
  • 304 Not Modified => 本次获取的内容是读取缓存中的数据,会每次去服务器校验
  • 307 Temporary Redirect => 临时重定向(请求方法和消息主体不会发生改变)
  • 308 Permanent Redirect => 永久重定向(请求方法和消息主体不会发生改变)

一、 Q:301和302的区别?(Cache和SEO)

  1. 使用301后,即使服务器删除了重定向。由于301会产生浏览器缓存仍旧自动重定向到新网址。
  2. 使用302后,SEO仍旧会将新的内容收录到旧的网址中,而使用301后,SEO会将新的内容收录到新的网址中。

二、 Q:302和307的区别?(301和308的区别是同理的)

  1. 同样为临时重定向,当发送重定向请求的时候,307 状态码可以确保请求方法和消息主体不会发生变化。
  2. 当你返回302状态码并且使用了GET以外的请求方法,老的浏览器会帮你转换成GET请求,意味着302后重定向的请求方法会发生变化。但如果使用 307 状态码,之后的请求方法就是可预测的。(由原理可知,使用GET请求时两者没有区别)

三、 Q:304的强缓存和协商缓存

四、 Q:403什么时候会出现

  1. 爬虫爬的太多了给予IP无法访问的权限

4xx => Client Error (客户端错误状态码),服务器无法处理请求

  • 400 Bad Request => 语法错误,请求参数有误
  • 401 Unauthorized => 身份未认证,没有登录网站
  • 403 Forbidden => 禁止访问,没有权限
  • 404 Not Found=> 资源不存在
  • 405 Method Not Allowed => 服务器禁止了使用当前HTTP方法的请求
  • 409 Conflict => 编辑冲突

5xx => Server Error(服务器错误状态码),服务器处理请求出错

  • 500 Internal Server Error => 未知错误,内部错误
  • 502 Bad Gateway => 网关错误
  • 503 Service Unavailable => 服务器超负荷,当前无法处理请求(假设一台服务器只能承受 10000 人,当第 10001人访问的时候,如果服务器没有做负载均衡,那么这个人的网络状态码就是 503)
  • 504 Gateway Timeout => 网关超时
  • 505 HTTP Version Not Supported => 服务器不支持请求的 HTTP 协议的版本,无法完成处理。
posted @ 2022-05-17 23:51  wanglei1900  阅读(77)  评论(0编辑  收藏  举报