`

http请求头中Referer的含义和作用

 
阅读更多

转自:https://www.sojson.com/blog/58.html

 

什么是Referer?

Referer 是 HTTP 请求header 的一部分,当浏览器(或者模拟浏览器行为)向web 服务器发送请求的时候,头信息里有包含  Referer  。比如我在www.sojson.com 里有一个www.baidu.com 链接,那么点击这个www.baidu.com ,它的header 信息里就有:Referer=https://www.sojson.com 由此可以看出来它就是表示一个来源。

这里有一个小问题要说明下。Referer  的正确英语拼法是referrer 。由于早期HTTP规范的拼写错误,为了保持向后兼容就将错就错了。其它网络技术的规范企图修正此问题,使用正确拼法,所以目前拼法不统一。还有它第一个字母是大写。

 

Referer的作用?

1.防盗链。

我在www.sojson.com里有一个www.baidu.com链接,那么点击这个www.baidu.com,它的header信息里就有:Referer=https://www.sojson.com。那么可以利用这个来防止盗链了,比如我只允许我自己的网站访问我自己的图片服务器,那我的域名是www.sojson.com,那么图片服务器每次取到Referer来判断一下是不是我自己的域名www.sojson.com,如果是就继续访问,不是就拦截。

2.防止恶意请求。

比如我的SOJSON网站上,静态请求是*.html结尾的,动态请求是*.shtml,那么由此可以这么用,所有的*.shtml请求,必须 Referer  为我自己的网站。Referer=https://www.sojson.com

 

空Referer是怎么回事?什么情况下会出现Referer?

首先,我们对空Referer 的定义为,Referer 头部的内容为空,或者,一个 HTTP  请求中根本不包含 Referer  头部。

那么什么时候 HTTP  请求会不包含 Referer  字段呢?根据Referer的定义,它的作用是指示一个请求是从哪里链接过来,那么当一个请求并不是由链接触发产生的,那么自然也就不需要指定这个请求的链接来源。

比如,直接在浏览器的地址栏中输入一个资源的URL地址,那么这种请求是不会包含 Referer  字段的,因为这是一个“凭空产生”的 HTTP  请求,并不是从一个地方链接过去的。

 

当然。你不能完全依赖 Referer  来做一些事情,因为这个最容易伪造来源。

每个语言,都可以,比如 Java  来模拟一个 Httpclient  请求。并且伪造来源。

 

 

分享到:
评论

相关推荐

    request.getHeader("referer")防盗链

    这些测试可能包括各种正常和异常的"Referer"头,以确保代码能够处理各种情况。 总的来说,"request.getHeader("referer")"在Java Web开发中是实现防盗链功能的重要工具,通过检查来源URL,服务器可以有效控制资源的...

    HTTP请求头大全 - 常用参考表对照表 - 脚本之家在线工具1

    HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议...以上是HTTP请求头的基本概念和常见用法,它们在构建和优化Web应用时起着至关重要的作用。了解和正确使用这些头字段,可以提高网络通信的效率和安全性。

    HTTP Referer详解及Referer控制

    HTTP Referer是HTTP协议中的一个重要概念,主要用在Web服务器的请求头(header)中。当用户点击超链接从一个页面跳转到另一个页面时,浏览器会向目标服务器发送HTTP请求。在这个请求中,会包含一个名为“Referer”的...

    IE BHO插件,修改referer

    在本例中,我们关注的是一个特定的BHO插件,它的主要功能是修改HTTP请求头中的`Referer`字段。 `Referer`头字段是HTTP协议中的一部分,它包含了用户从哪个URL点击链接来到当前页面的信息。这对于网站分析用户来源、...

    http协议请求响应详解

    消息头在HTTP请求和响应中扮演着重要的角色,它们用于传递各种上下文信息,使得服务器和客户端能够更准确地理解彼此的需求和能力。 - **通用信息头**:适用于所有HTTP消息,如`Date`、`Cache-Control`等。 - **请求...

    ASP,PHP与.NET伪造HTTP-REFERER方法及防止伪造REFERER的方法

    在Web应用中,HTTP-REFERER字段通常用于记录客户端请求来源页面的信息,这在许多方面都有着重要的作用,例如统计分析、防盗链等。然而,由于其可伪造性,使得HTTP-REFERER字段变得越来越不可靠。本文将详细介绍如何...

    请求的几种情况.txt

    图片请求通常也是通过GET方法进行的,但在请求头中会包含特定的信息,如`Referer`字段,它指示了图片请求的来源页面,这对于防盗链有重要意义。在给定文件中,可以看到一个图片请求示例: **GET/images/007.pngHTTP/...

    Web_Http头信息

    HTTP头信息主要分为两部分:请求头(Request Headers)和响应头(Response Headers)。每一部分都由多个字段组成,每个字段都有特定的功能和用途。 ##### 请求头字段解析 1. **Cache-Control** - **定义**:用于...

    http头域详细解释

    ### HTTP头域详细解释 HTTP协议作为互联网上应用最为广泛的一种网络协议,其核心功能在于规范客户端...理解和掌握这些头域的含义与用法,对于开发人员优化网络应用性能、增强用户体验以及保障数据安全都具有重要意义。

    PHP伪造来源HTTP_REFERER的方法实例详解

    PHP中伪造HTTP_REFERER的方法是一种技术手段,可以使用户在请求服务器时,修改HTTP请求中的Referer字段,以伪装成其他网站的来源。由于HTTP_REFERER通常用于网站安全验证,攻击者可以利用伪造的HTTP_REFERER绕过安全...

    负载均衡服务器负载HTTP头部改写.pptx

    通过检查HTTP头部的referer字段,AD设备可以拦截来自非授权网站的请求,从而防止非法盗链。这种方式比在每台服务器上单独配置更为便捷且易于管理。 在实施HTTP头部改写时,需要注意以下几点: 1. 请求改写发生在AD...

    ASP,PHP与.NET伪造HTTP-REFERER方法及防止伪造REFERER方法探讨

    以上两种方式都通过设置请求头中的Referer字段来实现伪造的目的。 #### 防止伪造Referer的方法 为了防止HTTP-REFERER被伪造,开发者可以采取以下几种策略: 1. **使用验证码(Session)**:通过设置会话验证机制...

    http发包抓包程序

    4. **分析请求**:用户可以查看每个请求的完整细节,包括请求头中的Cookie、Referer、User-Agent等信息,以及响应头和响应内容。 5. **保存和导出**:抓包结果可以保存为日志文件,方便后期分析或分享。 HTTP请求抓...

    Http基础.doc

    在这个请求中,`GET`方法用于获取指定的资源(`somedata.exe`),`Host`指明了请求的服务器,`Accept`表示接受任何类型的数据,`Pragma: no-cache`和`Cache-Control: no-cache`共同作用于禁用缓存,`Referer`表明了...

    tomcat访问(access)日志配置和记录Post请求参数

    Tomcat访问日志是记录服务器接收到的HTTP请求的重要工具,对于监控和分析服务器性能、排查问题具有重要意义。本文将详细介绍如何配置Tomcat访问日志以及如何记录POST请求参数。 首先,Tomcat访问日志的配置通常在`...

    HttpHeader:HttpİstekBaşlıklarınıÇekmekİçinYazılmışAraç

    2. 类型:常见的HTTP请求头包括但不限于`Host`(指定服务器的域名或IP地址)、`Connection`(控制连接的持续时间)、`Cookie`(传递用户状态信息)和`Referer`(显示请求来源页面)等。 3. 作用:这些头部信息对于...

    iis防盗链

    1. **HTTP头部检查**:通过检查HTTP请求头中的`Referer`字段,判断请求是否来自预期的站点。如果`Referer`头没有设置或者指向了其他网站,IIS可以拒绝该请求。 2. **IP黑名单/白名单**:将特定的IP地址或者IP段列入...

    HTTPAnalyzer_6.5..rar

    在HTTP交互过程中,请求头和响应头是两个重要的部分。HTTPAnalyzer能够解析这些头信息,展示如Cookie、Referer、User-Agent等字段,这些信息对于理解用户行为、追踪会话和解决跨域问题至关重要。同时,它还能显示...

Global site tag (gtag.js) - Google Analytics