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-Method、Access-Control-Allow-Headers
服務器通過flight請求後,以後每次cors請求處理與簡單請求相同