状态码
# 状态码
# 状态码类别
1xx | 信息性状态码 | 接收的请求正在处理 |
|---|---|---|
2xx | 成功状态码 | 请求正常处理完毕 |
3xx | 重定向状态码 | 需要进行附加操作才能完成请求 |
4xx | 客户端错误状态码 | 服务器无法处理请求 |
5xx | 服务端错误状态码 | 服务器处理请求出错 |
1xx请求还在处理100(客户继续发送请求,这是临时响应) 这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端印当据需发送请求的剩余部分,或者如果请求已经完成,忽略这个响应,服务器必须在请求完成后向客户端发送一个最终响应101Switching Protocols。在HTTP升级为WebSocket的时候,如果服务器同意变更,就会发送状态码101
2xx成功200OK表示从客户端发的请求服务端正确处理了204No content请求成功 响应报文不含实体的主体部分205reset content请求成功 响应报文不含实体的主体部分 但与204不同的是要求请求方重置内容206partial content进行范围请求
3xx重定向301永久性重定向 表示资源已被分配了新的URL(搜索引擎会记录301的location指向的地址)302临时性重定向 表示资源临时被分配了新了URL(未登录的用户重定向到登录页面 访问404页面重定向到首页)303资源存在另一个URL应该用get方法获取资源(一般用于上传文件后,返回的重定向到消息确认页面或者上传进度页面)304not modified服务器允许访问资源 但是发送请求未满足的情况(浏览器存在缓存)307临时重定向 但是与303不同的是期望客户端保持请求方法不变向新的地址发出请求 (一般浏览器会自动由post -> get但是307不会 还是post -> post)
4xx客户端错误400bad request请求报文语法错误或格式不对401unauthorized表示请求需要身份验证403forbidden请求资源被服务器拒绝404not found在服务器未找到请求的资源405method not allow服务器禁止使用这种方法
5xx服务器错误500server error服务器请求执行时错误501服务器不支持当前请求的某个功能502(错误网关)服务器作为网关或代理,从上游服务器收到无效响应503service unavailable服务器暂时在超负载或停机维护(nginx限速)504gateway timeout网关或代理服务器无法在规定时间获得响应(代码执行时间超过 或 死循环)
# 同样是重定向 302 303 307有什么区别
302是http1.0的协议状态码,在1.1后为了细化302,又分出了303和307
303明确了客户端应当采用get方法获得资源,会把post请求变成get请求进行重定向,307会遵照浏览器标准,不会从post变成get
# 浏览器会缓存301页面吗,如何清除?
现在我们假设不小心将初始页面永久重定向到了 301 页面,现在想取消这一行为,临时重定向到 302 页面。
我们发现在301之后,浏览器会记住第一次的301,忽略之后的其他重定向
原因是如果我们没有提供明确的缓存头,浏览器就会默认永久缓存 301 响应,因为 301 是永久重定向的意思。
如何清除301重定向
用户端:
- 控制台禁用缓存
- 清除历史记录
Network面板清除缓存
服务端:
- 设置
Cache-Control: no-store/no-cache
# 介绍下304过程
- 浏览器请求资源时首先命中资源的
Expires和Cache-Control,Expires受限于本地时间,如果修改了本地时间,可能会造成缓存失效,可以通过Cache-control: max-age指定最大生命周期,状态仍然返回200,但不会请求数据,在浏览器中能明显看到from cache字样。 - 强缓存失效,进入协商缓存阶段,首先验证
ETag可以保证每一个资源是唯一的,资源变化都会导致ETag变化。服务器根据客户端上送的If-None-Match值来判断是否命中缓存。 - 协商缓存
Last-Modified/If-Modified-Since阶段,客户端第一次请求资源时,服务服返回的header中会加上Last-Modified,Last-modified是一个时间标识该资源的最后修改时间。再次请求该资源时,request的请求头中会包含If-Modified-Since,该值为缓存之前返回的Last-Modified。服务器收到If-Modified-Since后,根据资源的最后修改时间判断是否命中缓存
# HTTP状态码是304多好还是少好重要
状态码304是服务器为了提高网站访问速度,而对之前访问的页面指定缓存机制,当客户端对这些页面进行请求,服务端会判断内容是否和之前相同,如果相同客户端调用缓存内容
但是搜索引擎会更加青睐更新频率的网站,通过特定的时间对网站抓取返回的状态码来调节网站抓取频次,若一直是304,蜘蛛就会降低抓取次数,相反,若网站变化频率快,每次都能获取新内容,蜘蛛的回访率会变高
产生304较多的原因:
- 页面更新长或不更新
- 纯静态页面
304过多问题
网站快照停止
收录减少
搜索引擎权重下降
上次更新: 2022/03/20, 19:40:28