HTTP中Origin和Referer的区别?

一、简介

HTTP 协议,用 Header 中的 Origin 和 Referer 来表示请求链接的来源,他们在使用上有些区别。


二、Origin 详解

Origin 指示了请求来自于哪个站点,只有服务器名,不包含路径信息,浏览器自动添加到http请求 Header 中,无需手动设置。

1、添加 Origin 的情况
  • 同源请求:POST、OPTIONS、PUT、PATCH 和 DELETE请求都会添加Origin请求头,GET或HEAD请求不会添加Origin请求头。
  • 跨域请求:所有跨域请求(CORS)都会添加Origin请求头。

2、用法说明
  • 语法

    Origin: ""
    Origin: <scheme> "://" <host> [ ":" <port> ]
    // 值为"",表示资源是由 data URL 指定。
    
  • 参数说明:

    <scheme>
    请求所使用协议,通常是HTTP或者HTTPS。
    
    <host>
    服务器的 域名 或 IP。
    
    <port>
    可选,端口号,HTTP请求,默认端口为 80
    
  • 实例

    Origin: https://developer.mozilla.org
    

三、Referer 详解

Referer 指示了请求来自于哪个具体页面,包含服务器名和路径的详细URL,浏览器自动添加到http请求 Header 中,无需手动设置。

1、不会添加 Referer 的情况
  • 来源页面采用 filedata URI 协议;
  • 来源页面采用 HTTPS 协议,而请求页面采用 HTTP 协议;

2、使用说明
  • 语法

    Referer: <url>
    
  • 参数说明

    url :表示请求来源页面的绝对路径或者相对路径,但不包含 URL fragments (例如 "#section")userinfo (例如 "https://username:password@example.com/foo/bar/" 中的 "username:password" )

  • 实例

    Referer: https://developer.mozilla.org/en-US/docs/Web/JavaScript
    

3、使用场景

服务端一般使用 Referer 请求头识别访问来源,进行统计分析、日志记录、缓存优化、异常访问等。


四、参考文档
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值