一、简介
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 的区别?