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
- 请求方法是以下三种方法之一:
- HEAD
- GET
- POST
- 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