http referer 验证防御方法_http协议首部---referer,标明请求来源

HTTP Referer字段用于告知服务器请求的来源,对数据分析至关重要,例如跟踪广告效果。在爬虫中,某些网站如豆瓣会利用此字段进行反爬,不设置合适的referer可能导致获取到不同的响应。了解并正确使用referer能提升爬虫的效率和友好性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、referer 的作用

http请求头里,有一个referer首部,这个首部可以告知服务端,当前的请求的来源。比如此刻,你在浏览这篇文章,假设这篇文章的地址是A,在我的文章里,有一篇CSDN的文章链接,链接地址是B,如果你点击链接B,那么浏览器在想CSDN发出请求时,就会在请求头里将referer设置为A,这样,当CSDN收到请求后,就知道,这次的流量是从知乎来的。

这对于数据分析来说,是非常重要的,比如,你在许多网站上投放了广告,你需要知道每个网站上的点击量,用户点击后来到你的网站,你就可以通过referer这个首部来统计各个网站的点击情况了,进而优化广告投放方法。

2、爬虫中的应用

许多网站,会利用这个字段进行反爬,比如豆瓣,如果你直接向 https://movie.douban.com/subject/1291828/ 发出请求,那么返回的结果和你在浏览器里发请求得到的结果会不一样。你通过请求得到的结果里没有电影的信息,而且通过302跳转到了 https://m.douban.com/movie/subject/1291828/ ,看上去像是手机端的浏览地址。

为了避免这个情况,你只需要在请求的header里将referer设置成 https://movie.douban.com/top250?start=25&filter= 就可以了,证明,你是从这个页面出发的。

其实,这种反爬机制,只能阻挡一些初级玩家,豆瓣如果真的不想让我们爬取,以他们的技术能力,是完全可以做到的。

所以,对于那些友好的网站,你在爬取时也仁义一点,别疯了一样发请求,搞得跟ddos攻击一样。

3、refer

据说,在起草http协议时一时疏忽,使用referer这个单词,事后发现,使用refer(认为…起源于)更准确,但发现时,http协议已经广为流传,为了避免麻烦,referer这个单词就一直沿用至今。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值