乐趣区

关于http:HTTP中origin和refer的区别

一、简介

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 的区别?
退出移动版