一、简介
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 的状况
- 起源页面采纳
file
或data 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的区别?