springboot webflux 跨域


springboot webflux 跨域

 

************************

同源策略:协议 + 域名 + 端口

 

同源策略:协议、域名、端口均相同即为同源,否则视为不同源(即使不同的域名指向相同的ip地址也是不同源)

跨域资源访问:服务器向另一个不同源的服务器请求资源

 

*****************

同源安全保护策略

 

存储在浏览器中的数据(如localStorage、indexDB)是以源进行分割的,不同的源都有单独的存储空间,一个源中的javascript脚本不能对另一个源的数据进行操作

一个页面可以为本域及本域的父域(父域不为公共后缀,如.com、.cn等)设置cookie,除此之外不能读取不同源的cookie

禁止对不同源的DOM进行操作

 

 

************************

跨域请求:简单请求、非简单请求

 

*****************

简单请求

 

请求方法为head、get、post

http的头信息不超出以下字段:Accept、Accept-Language、Content-Language、Last-Event-ID、Content-Type(值为application/x-www-form-urlencoded、multipart/form-data、text/plain)

 

非简单请求:不满足以上条件者即为非简单请求

 

*****************

简单请求处理

 

使用javascript脚本发送请求,附加额外的origin信息(协议、域名、端口),如:Origin  http://www.baidu.com;

服务端接收到请求,根据origin判断是否处理;

如接受,处理完成后就在响应头 Access-Control-Allow-Origin添加相同的源信息,如: Access-Control-Allow-Origin http://www.baidu.com;

否则,服务端不会处理跨域请求

 

*****************

非简单请求处理

 

真实请求发送之前会先发flight请求(请求使用options方法)

options请求包含如下头信息:Origin(与简单的请求相同)、Access-Control-Request-MethodAccess-Control-Allow-Headers

服务器通过flight请求后,以后每次cors请求处理与简单请求相同

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章