CORS

CORS

CORS: Cross-Origin resource sharing, 跨域资源共享.

是一种基于 HTTP 头的机制,该机制通过允许服务器标示除了它自己以外的其他源(域、协议或端口),使得浏览器允许这些源访问加载自己的资源。跨源资源共享还通过一种机制来检查服务器是否会允许要发送的真实请求,该机制通过浏览器发起一个到服务器托管的跨源资源的“预检”请求。在预检中,浏览器发送的头中标示有 HTTP 方法和真实请求中会用到的头。

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers

same-origin policy

同源策略,是一种关键的安全机制,它限制由一个源加载的文档或脚本如何与来自另一个源的资源进行交互。

https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy

同源包括:

  • protocal (http, https, ……)
  • host
  • port(80, 443, ……)

简单请求

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS#%E7%AE%80%E5%8D%95%E8%AF%B7%E6%B1%82

  1. 请求方法是以下三种方法之一:
  • HEAD
  • GET
  • POST
  1. HTTP的头信息不超出以下几种字段:
  • Accept
  • Accept-Language
  • Content-Language
  • Last-Event-ID
  • Content-Type:application/x-www-form-urlencoded、multipart/form-data、text/plain.

简单请求在header添加Origin字段说明请求的源(协议,域名,端口):

Origin: https://domain.com:port

预检请求

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS#%E9%A2%84%E6%A3%80%E8%AF%B7%E6%B1%82

针对其它方法或字段类型.

http headers

响应header中可以带以下字段:

Access-Control-Allow-Origin

Access-Control-Max-Age

Access-Control-Allow-Credentials

Access-Control-Allow-Methods

Access-Control-Expose-Headers Access-Control-Allow-Headers

请求header中的字段:

Origin

Access-Control-Request-Method

Access-Control-Request-Headers

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Access-Control-Request-Headers

Designed by Canux