[js/html/ajax/跨域]HTTP Headers 之 Origin -- 服务器要支持跨域时如何知道对方来自哪个域名
clq
浏览(500) -
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,才能进一步保证服务器的安全性。
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.