晚上看spring web源码时看到了cors包,查了一下原来是在4.2之后新加的用来更方便让web应用服务支持cors协议的。于是有了下面几个问题。
web跨域问题的起源是因为浏览器为了安全而遵循的同源策略。那么同源策略有哪些限制呢?
1.cookie,localStore和indexDB等浏览器存储服务器信息的数据无法跨域访问。
2.dom无法获取。
3.ajax请求不能发送。
如果没有同源策略,会有哪些危害?
会收到各种安全攻击,比如恶意网站读取用户其它网站cookie信息危害用户账户安全等。
但在实际项目中真的遇到要跨域请求访问资源怎么办?
比较常用的方法有jsonp,websocket,cors,服务器端中转等。cors协议本身就是为了解决跨域资源访问而生的,一般现代浏览器都支持cors协议,同时要真正通过它实现跨域资源共享,也需要服务端做配合设置请求响应头里某个字段以告知服务端对跨域请求的访问限制,因此才会有最上面spring web包中的cors。