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請求處理與簡單請求相同

 

 

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