先说结论:
如果是个人网站,或网站用途只是开发测试,改动的可能性比较大,建议使用302
如果是生产环境,或改动的可能性比较小,建议使用301
状态码含义
首先要明白两个状态码的含义:
301 Moved Permanently
**
302 Moved Temporarily
**
浏览器会缓存301
的请求,不会缓存302
的
实际影响
以下面 nginx 配置为例:
bash
server {
listen 80;
location / {
return 301 https://$host$request_uri;
}
}
上述配置,会把用 http 协议访问站点的请求,重定向为用 https 协议来访问
用 Chrome 浏览器作实验,假设在地址栏输入zzjtnb.com
, 则浏览器最终访问的是https://zzjtnb.com
因为zzjtnb.com
是个人站点,可能不久后提供的内容有所变化,注释掉了上述重定向配置, 取消对 http 协议的重定向
bash
server {
listen 80;
location / {
}
}
然后重启 nginx
bash
nginx -s reload
再次使用自己电脑上的 Chrome 访问,地址栏输入zzjtnb.com
, 发现浏览器仍然访问https://zzjtnb.com
打开开发者工具,开启禁用缓存选项,再一次输入zzjtnb.com
, 还是使用 https 协议, 这就是因为浏览器对301
状态码的响应,进行了缓存,给个人开发者带来了苦恼
[](#清除 301 缓存 "清除 301 缓存")## 清除 301 缓存
以 Chrome 为例:
- 关于谷歌
- 更多工具
- 清除浏览器数据
- 勾选 浏览器记录 及 缓存的图片和文件
重新访问站点即可!