温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

什么是Cookie跨域与CORS协议

发布时间:2021-10-12 13:54:56 来源:亿速云 阅读:326 作者:iii 栏目:编程语言

本篇内容介绍了“什么是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接口,就可以实现跨域通信。

其主要涉及以下协议头:

  1. Access-Control-Allow-Origin:*,<Origin>

  • 该字段是必需的,它的值要么是请求时Origin字段的值,要么是一个 * ,表示接受任意域名的请求

  1. Access-Control-Allow-Credentials:true

  • 该字段可选,它的值是一个布尔值,表示是否允许发送Cookie。默认情况下Cookie,Cookie不包括在CORS请求中。设为 TRUE ,即表示服务器明确许可,Cookie可以包含在请求中。

  1. 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 里面列出来。

  1. Access-Control-Request-Method:<method> ,<method> …

  • 该字段是必需的,响应首部 Access-Control-Allow-Methods,明确了客户端所要访问的资源允许使用的方法或方法列表。

  1. Access-Control-Request-Headers:<header-name>,<header-name> ,….

  • 请求头 Access-Control-Request-Headers 用于通知服务器在真正的请求中会采用哪些请求头。

  1. Access-Control-Allow-Headers:<header-name>,<header-name> ,….

  • 该字段是必需的,允许哪些请求头可以跨域

“什么是Cookie跨域与CORS协议”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI