白话跨域CORS
跨域访问控制是浏览器和服务器按照约定,协同工作,守护安全的一种机制。
其中认为浏览器和服务器是安全的,但是浏览器上运行的页面(HTML+JS)可能不安全。
分几种不同方式。
- 页面跨域简单请求(Get/POST/HEAD+几个常见的http头)。浏览器直接请求服务器,然后根据服务器返回的http头信息,判断是否可以将结果返回给页面使用。
- 页面跨域复杂请求(不带cookie)。浏览器预请求(OPTIONS)服务器,然后根据服务器返回的http头信息,判断是否允许向服务器发送请求。
- 页面跨域复杂请求(带cookie)。浏览器预请求(OPTIONS)服务器,然后根据服务器返回的http头信息,判断是否允许向服务器发送请求。
其中3是2的加强安全版。要求服务器返回的http头信息中,明确指名哪些域名可以使用cookie访问。
举个例子:浏览器==门卫
- 陌生人来要一些简单的东西,门卫去取来,检查取来的东西,判断是否允许交给陌生人。
- 陌生人来要一些特别的东西,门卫先询问允不允许取,允许才去取来交给陌生人。
- 陌生人来要一些保险柜里的东西,让门卫拿着钥匙(cookie)去取,门卫去询问允许哪些人使用钥匙取,允许取才带钥匙去取来交给陌生人。