一、简介

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 请求头识别访问来源,进行统计分析、日志记录、缓存优化、异常访问等。


四、参考文档
  • HTTP中origin和refer的区别?

HTTP中Origin和Referer的区别?相关推荐

  1. Host 、Origin、 Referer的区别,Origin是跨域特有的属性

    Host 表示当前请求要被发送的目的地host,仅包括域名和端口号.在任何类型请求中,request都会包含此header信息. Origin 表示这个请求原始是在哪里发起的,包括当前请求的协议和域名 ...

  2. github中origin和upstream的区别(转)

    Fork,本身并不是git工具中的一个命令,也不是对git的扩展,它是在GitHub上的概念,是另一种clone方式--在服务器端的clone. 而我们通常意义上的clone,是将远程repo 复制一 ...

  3. 【转】github中origin和upstream的区别

    Fork,本身并不是git工具中的一个命令,也不是对git的扩展,它是在GitHub上的概念,是另一种clone方式--在服务器端的clone. 而我们通常意义上的clone,是将远程repo 复制一 ...

  4. python中break和continue的区别

    python中break和continue的区别 break 结束for 或者while 循环  后面还没循环到的 不再循环 continue 当满足某种条件时结束当前值的循环 后面没有循环的继续循环 ...

  5. java中separator_java - File.separator和路径中的斜杠之间的区别

    java - File.separator和路径中的斜杠之间的区别 在Java Path-String中使用/和普通的File.separator有什么区别? 与双反斜杠相比,/平台独立似乎不是原因, ...

  6. PHP中self和static的区别,php中self与static的区别

    原文链接,猛击这里. php中self与static的区别 通过一些示例,我们可以很容易看出self和static的区别.假定我们有class Car – 它有两个方法,model和getModel. ...

  7. php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析

    本文实例分析了PHP中抽象类.接口的区别与选择.分享给大家供大家参考,具体如下: 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过 ...

  8. php $this self,php中self与$this的区别

    学习php中self与$this的区别. 先来看下parent与self的例子: /* * parent与self的区别 * by www.jbxue.com */ class A{ function ...

  9. mysql中char与varchar的区别分析(补充一句,int和integer没区别)

    转自:http://www.jb51.net/article/23575.htm 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定 ...

最新文章

  1. workerman结合laravel开发在线聊天应用的示例代码
  2. 笔记JavaScript基本概念
  3. php 自动创建文件,php:自动创建多级文件夹
  4. Ubuntu Android Studio/IntelliJ IDEA 支持文件中文命名
  5. Android UI布局之LinearLayout
  6. ubuntu下用命令行安装Qt
  7. eShopOnContainers 知多少[6]:持久化事件日志
  8. java基础day11---空指针异常----引用类型--自定义类型赋值--封装
  9. 神经网络的SGD、Momentum、AdaGrad、Adam最优化方法及其python实现
  10. 分布式深度学习,93页ppt概述最新DDL技术发展
  11. 求特殊方程的正整数解
  12. 爬虫--Scrapy-CrawlSpider基于CrawlSpide的分布式爬虫
  13. BJT与MOSFET与IGBT的区别
  14. 冰箱android10,智能手机 篇十:手机冻冰箱总共分几步?AGM推出金嗓子手机H2,超大声音超长待机...
  15. CiteSpace中的中介中心性(betweenness)的理解(包含度中心性(degree)、接近中心性(closeness))
  16. appium-滑动、拖动操作
  17. 光学图像、SAR图像等区别
  18. 微信小程序 - 设置图片高度自适应(宽度固定)
  19. python三大,Python三大器
  20. 开发和部署Pocket Pc 安装程序

热门文章

  1. python xlwings excel 根据列排序
  2. python T检验
  3. jupyter notebook如何显示行号?
  4. C语言基础第五次作业
  5. 一个有潜在危险的要求。从客户端中检测到(ctl00$ $ $ contentplaceholder2submit1
  6. PS出现“不能完成命令,因为没有足够内存(RAM)”的解决方案
  7. JS跳到新页关闭当前页,跳到顶部,添加删除提示等等,自己看吧
  8. PPP协议与WAN技术
  9. php上传文件到七牛云,如何使用php上传大文件到七牛云储?
  10. 提问的智慧,智慧的提问