前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HTTP中Origin和Referer的区别?

HTTP中Origin和Referer的区别?

原创
作者头像
Learn-anything.cn
修改2021-11-25 10:47:41
3.2K0
修改2021-11-25 10:47:41
举报
文章被收录于专栏:learn-anything.cnlearn-anything.cn
一、简介

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


二、Origin 详解

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

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

2、用法说明
  • 语法
代码语言:txt
复制
Origin: ""
Origin: <scheme> "://" <host> [ ":" <port> ]
// 值为"",表示资源是由 data URL 指定。
  • 参数说明:
代码语言:txt
复制
<scheme>
请求所使用协议,通常是HTTP或者HTTPS。

<host>
服务器的 域名 或 IP。

<port>
可选,端口号,HTTP请求,默认端口为 80
  • 实例
代码语言:txt
复制
Origin: https://developer.mozilla.org

三、Referer 详解

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

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

2、使用说明
  • 语法
代码语言:txt
复制
Referer: <url>
  • 参数说明

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

  • 实例
代码语言:txt
复制
Referer: https://developer.mozilla.org/en-US/docs/Web/JavaScript

3、使用场景

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


四、参考文档

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、简介
  • 二、Origin 详解
    • 1、添加 Origin 的情况
      • 2、用法说明
      • 三、Referer 详解
        • 1、不会添加 Referer 的情况
          • 2、使用说明
            • 3、使用场景
            • 四、参考文档
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档