本篇内容介绍了“什么是Cookie跨域与CORS协议”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
正常的Cookie只能在一个应用中共享,即一个Cookie只能由创建它的应用获得。 实现Cookie的跨域 ,主要是为了统一应用平台,实现类似单点登录的需求。
什么是跨域?
所谓跨域,意思就是跨过了浏览器的同源策略。
同源指的是三个相同:
协议相同
域名相同
端口相同
违反同源策略会有以下限制:
Cookie、LocalStorage、IndexDB无法获取
DOM无法获得
AJAX请求不能发送
CORS解决跨域
什么是CORS?
2014年W3C发布了 CORS Recommendation 使资源共享变得更方便,默认情况下,浏览器对跨域请求不会携带Cookie,但鉴于Cookie在身份验证等方面的重要性,CORS推荐使用额外的响应头字段来允许跨域发送Cookie,因此,CORS本质是W3C指定的一套规范,主流浏览器通过查看服务端返回的协议头,来确定是否准许跨域携带Cookie。
实现CORS
实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以实现跨域通信。
其主要涉及以下协议头:
Access-Control-Allow-Origin:*,<Origin>
该字段是必需的,它的值要么是请求时Origin字段的值,要么是一个 * ,表示接受任意域名的请求
Access-Control-Allow-Credentials:true
该字段可选,它的值是一个布尔值,表示是否允许发送Cookie。默认情况下Cookie,Cookie不包括在CORS请求中。设为 TRUE ,即表示服务器明确许可,Cookie可以包含在请求中。
Access-Control-Expose-Headers:<header-name>,<header-name> ,….
默认情况下,只有七种 simple response headers (简单响应首部)可以暴露给外部:Cache-Control,Content-Language,Content-Length,Content-Type,Expires,Last-Modified,Pragma。如果想要让客户端可以访问到其他的首部信息,可以将它们在 Access-Control-Expose-Headers 里面列出来。
Access-Control-Request-Method:<method> ,<method> …
该字段是必需的,响应首部 Access-Control-Allow-Methods,明确了客户端所要访问的资源允许使用的方法或方法列表。
Access-Control-Request-Headers:<header-name>,<header-name> ,….
请求头 Access-Control-Request-Headers 用于通知服务器在真正的请求中会采用哪些请求头。
Access-Control-Allow-Headers:<header-name>,<header-name> ,….
该字段是必需的,允许哪些请求头可以跨域
“什么是Cookie跨域与CORS协议”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。