登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> SoftHub关联区 >> 主题: [js/html/ajax/跨域]HTTP Headers 之 Origin -- 服务器要支持跨域时如何知道对方来自哪个域名     [回主站]     [分站链接]
[js/html/ajax/跨域]HTTP Headers 之 Origin -- 服务器要支持跨域时如何知道对方来自哪个域名
clq
浏览(273) - 2020-06-23 18:01:23 发表 编辑

关键字: 跨域

[js/html/ajax/跨域]HTTP Headers 之 Origin -- 服务器要支持跨域时如何知道对方来自哪个域名

这里有个很奇异的地方,如果是本地 html 那么肯定是没有域名的。那么服务器怎么知道呢?
答案是它是字符串 "null" 至少目前的 chrome / ie11 中是这样的。

--------------------------------------------------------
https://www.jianshu.com/p/ccc4416ea298

HTTP Headers 之 Origin
kbyyd24
0.081
2019.05.22 23:14:49
字数 324阅读 8,795
概念

HTTP 协议中的 Origin Header 存在于请求中,用于指明当前请求来自于哪个站点。
字段内容

Origin 仅仅包含站点信息,不包含任何路径信息。
语法

Origin: ""
Origin: "://[:port]"
// 例如
Origin: "https://baidu.com"
// 错误示范,包含了路径信息
Origin: "https://baidu.com/"

参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Origin
应用
CORS

当我们的浏览器发出跨站请求时,行为正确的服务器会校验当前请求是不是来自被允许的站点。服务器就是通过 Origin 字段的值来进行的判断。

当服务器的配置出错时,比如配置成了 https://baidu.com/,则可能造成一些难以理解的问题。

比如有的浏览器(IE)能够请求成功,而有的浏览器却请求失败(Chrome)。这不是因为前一个浏览器行为正确,而是因为前一个浏览器发出请求时没有带上 Origin 而后一个浏览器带上了正确的 Origin。而在服务器端,因为没有 Origin Header,所以认为这不是一次 CORS 请求,所以没有进行 CORS 校验。这也反过来要求服务端强制请求带上 Origin Header,才能进一步保证服务器的安全性。


总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录
跨域 更多



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1