同源和跨域

說到同源,肯定想到七步詩中本是同根生,說到跨域,想到了跨種族額......,想什麼啊喂,跨種族結婚啊,不是那個跨種族結婚,是人類跨種族結婚啊喂。咳......

啊,說到同源,那麼什麼是同源呢?草步影:一個媽生的就是同源,嗯......很好。草步影:那麼如果同母異......。麻煩離純潔的博客遠一點啊喂。

那麼其實同源就是同個媽,不是,同協議,同域名,同端口

同協議:http https要看清

同域名:www.aichifan.com   www.aichimian.com

同端口:80 443 81

接下來就是跨種......跨域了。由於瀏覽器的同源政策,不允許不同源的互相操作cookie,dom,ajax請求。那麼這個同源政策有沒有必要呢

其實是非常有必要的:cookie存放了一些登錄密碼等重要信息,一旦掌握後果不堪設想,表單提交瀏覽器可沒有同源政策的規定。

但是我們發送請求又覺得這很麻煩,所以要有解決辦法。

jsonp  :  不是json放了一個屁。是利用rel,src等不守同源政策影響的屬性請求,這裏着重用的是script標籤的src屬性,由於script裏面可以執行js代碼,就像引入js文件一樣,那麼可以在本文件中先定義一個函數,然後把函數名當做參數傳遞拼接在src地址後面,由於是通過src屬性的所以只能是get請求。

CORS : 直接在請求頭中設置允許訪問以php爲例:header('Access-Control-Allow-Origin:*');header('Access-Control-Allow-Origin:協議+域名')

WebSocket : 是一種通信協議,ws:// (非加密) wss:// (加密),沒有同源政策,只要服務器支持就可以跨源通信。WebSocket敢這麼不怕信息安全問題就是因爲有WebSokect請求頭有Origin屬性,可以看到請求源,服務器判斷該請求源是否安全。

反向代理Nginx:中轉服務器,注意是個服務器,A向B服務器發送請求,B服務器再向C服務器發送請求,服務器間沒有跨域問題。

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