301重定向存在的问题

问题描述:系统中需要将http的页面重定向到https页面。此功能的由服务器配置来实现较为简单。但是系统中能够修改访问系统的端口号,当修改了https访问的端口号后,再通过http去访问页面。此时浏览器自动判断http请求需要重定向并且是301状态码(此时请求根本没到达服务器)。浏览器认为是301状态码,直接从缓存读取到了重定向的目标地址(也就是https地址)。但是这个时候的https端口号已经修改,导致访问不到系统。清理浏览器缓存后才能访问系统。

解决思路:禁止浏览器缓存

实现:

1.给页面添加meta标签启用Cache-Control控制。结果:失败。原因(个人观点尚未查证):meta控制缓存只针对添加了标签的页面,浏览器不缓存它

2.在服务器上添加响应头。结果:失败。原因:服务器全局添加了响应头之后所有的页面,资源文件都不缓存,但是重定向还是走的缓存。

3.将重定向的状态码修改为302.结果:成功。原理:301永久重定向会启用缓存,302临时重定向,不会启用缓存。

涉及:

浏览器的中输入url到显示页面的流程

浏览器缓存控制

前后端控制缓存的方式及结果

http状态码

服务器实现重定向

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值