HTTP:CORS 左手的ㄟ右手 2022-09-04 11:00 113阅读 0赞 # CORS # [CORS][] (Cross-Origin Resource Sharing,跨域资源共享)是一个系统,它由一系列传输的HTTP头组成,这些HTTP头决定浏览器是否阻止前端JavaScript 代码获取跨域请求的响应 **同源安全策略**默认阻止“跨域”获取资源。但是CORS给了web服务器这样的权限,即**服务器**可以选择,允许跨域请求访问到它们的资源。 # CORS 头 # ## Access-Control-Allow-Origin ## * 是一个响应头 * 用于指示该响应的资源能共享给哪些域。 ![在这里插入图片描述][7731aba79f14414f90458ba70b13d552.png] ### 语法 ### Access-Control-Allow-Origin: * Access-Control-Allow-Origin: <origin> ### 指令 ### * `*`:对于不需具备凭证(credentials)的请求,服务器会以“\*”作为通配符,从而允许所有域都具有访问资源的权限。 * `<origin>`:指定一个可以访问资源的URI。 ### 实例 ### 如需允许所有资源都可以访问您的资源,您可以如此设置: Access-Control-Allow-Origin: * 如需允许https://developer.mozilla.org访问您的资源,您可以设置: Access-Control-Allow-Origin: https://developer.mozilla.org ### CORS和缓存 ### 如果服务器未使用“\*”,而是指定了一个域,那么为了向客户端表明服务器的返回会根据Origin请求头而有所不同,必须在Vary响应头中包含Origin。 Access-Control-Allow-Origin: https://developer.mozilla.org Vary: Origin ## Origin ## 请求首部字段 Origin 指示了请求来自于哪个站点。该字段仅指示服务器名称,并不包含任何路径信息。该首部用于 CORS 请求或者 POST 请求。除了不包含路径信息,该字段与 Referer 首部字段相似。 ![在这里插入图片描述][6ec90b4700c04c4c964873d6804a55db.png] ### 语法 ### Origin: "" Origin: <scheme> "://" <host> [ ":" <port> ] ### 指令 ### * `<scheme>`:请求所使用的协议,通常是HTTP协议或者它的安全版本HTTPS协议。 * `<host>`:服务器的域名或 IP 地址。 * `<port> 可选`:服务器正在监听的TCP 端口号。缺省为服务的默认端口(对于 HTTP 请求而言,默认端口为 80)。 ### 示例 ### Origin: https://developer.mozilla.org [CORS]: https://developer.mozilla.org/zh-CN/docs/Glossary/CORS [7731aba79f14414f90458ba70b13d552.png]: /images/20220829/6a8480c2d54e47849fe554766d1a2f74.png [6ec90b4700c04c4c964873d6804a55db.png]: /images/20220829/146d96c56a14487badef234545ef041f.png
还没有评论,来说两句吧...