CORS:Source.priciple implimentation in Spring

Cors(Cross-origin Resource Sharing)一种跨域访问技术,基本思想是使用自定义的HTTP头部容许浏览器和服务器相互了解对方,从而决定响应成功与否。跨域

CORS与JSONP对比:浏览器

1.JSONP只能实现get请求,而CORS支持全部类型的HTTP请求;服务器

2.使用CORS,开发者能够使用普通的XmlHttpRequest发起请求和得到数据,比起JSONP有更好的错误处理;资源

3.JSONP主要被老的浏览器支持,它们每每不支持CORS,而如今大多数浏览器都已经支持CORS;开发

CORS浏览器支持状况:get

Chrome 3+原理

  Firefox 3.5+请求

  Opera 12+技术

  Safari 4+数据

  Internet Explorer 8+

 

    CORS是一种协议,它用来约定服务端和客户端那些行为是被服务端容许的。尽管服务端是能够进行验证和认证的,但基本上这是由客户端浏览器来保证的。这些对行为的容许是放在应答包的header里面的。

  工做原理

    CORS的实现主要包括一些客户端的工做以及两类服务端的处理。

  业务逻辑

  若是origin被服务端容许,服务端返回请求是带有 Access-Controll-Allow-Origin 头, 而且这个头部信息的值和客户端Origin 的值保持一致;不然就表示不被容许。若是 Access-Controll-Allow-Origin 被设置成 "*",则意味着任何Origin都被容许。

  注意:若是所访问的资源须要凭证,那么 Access-Controll-Allow-Origin 则不该该被设置为 "*" 并且 Access-Control-Allow-Credentials 头须要被设置成 true.

相关文章
相关标签/搜索