关闭

http的refer头------说说最近遇到的http 403错误

935人阅读 评论(0) 收藏 举报
分类:

        最近遇到这样一个问题, 用php吐出html, 在html中, 用<a>指向了一个视频资源的url, 但是, 当去点击这个链接的时候, 视频的url地址出现在浏览器新窗口的地址栏中, 只是没有播放,   抓包看了一下, 原来, 在访问url时, 对端返回403错误码。  然后我在浏览器地址栏中按一下enter, 就可以播放了。

        奇怪了, 为什么从anchor进去的url无法直接播放呢?  于是, 我把页面对应的html代码复制, 保存在PC桌面上的test.html中并在浏览器中打开, 然后再去点击anchor中的url, 居然能打开, 抓包看, 对端返回的是http 200

        这就好了, 将两个包进行对比, 发现请求的url都一样, 但是http头不一样。 在有问题的http包中携带了refer字段, 而正常的http中没有refer字段。 原来, 是视频资源端拒绝了该refer的访问 (403错误码的启示)。

        找到了问题根源, 解决办法就很简单了:  将<a>的rel属性赋值为noreferrer(不要漏了r字母哈, 否则呵呵哒)即可, 这样那个就不会携带refer字段了, 也就不会被拒绝了, 点击anchor对应的url, 就可以直接播放视频了。

        以前总是看书上的http, 不深刻, 没啥感知。 还是应该在实战中提高啊得意吐舌头羡慕












1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3840967次
    • 积分:52277
    • 等级:
    • 排名:第60名
    • 原创:1824篇
    • 转载:163篇
    • 译文:0篇
    • 评论:1998条
    文章分类
    最新评论