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.

相關文章
相關標籤/搜索