同源、cookie、域名

什麼是瀏覽器的同源策略

基本概念

協議、域名、端口相同視爲同源html

http://www.example.com/dir/page.html爲例子瀏覽器

  • http(協議)
  • www.example.com(域名)
  • 80(默認端口)

非同源限制

  • Cookie、LocalStorage 和 IndexDB 沒法讀取
  • DOM 沒法得到(得到的HTML都不一樣)
  • AJAX 請求不能發送

cookie

Cookie(複數形態Cookies),中文名稱爲「小型文字檔案」或「小甜餅」,指某些網站爲了辨別用戶身份而儲存在用戶本地終端(Client Side)上的數據(一般通過加密)。定義於RFC2109。是網景公司的前僱員盧·蒙特利在1993年3月的發明。
同源的網頁才能共享。可是,兩個網頁一級域名相同,只是二級域名不一樣,瀏覽器容許經過設置document.domain共享 Cookie。

例:網頁1是http://w1.example.com/1.html,網頁2是http://w2.example.com/2.html,設置相同的document.domain,兩個網頁就能夠共享Cookie。服務器

document.domain = 'example.com';
服務器也能夠在設置Cookie的時候,指定Cookie的所屬域名爲一級域名,好比.example.com。
這樣的話,二級域名和三級域名不用作任何設置,均可以讀取這個Cookie。
et-Cookie: key=value; domain=.example.com; path=/

clipboard.png

域名

定義

網域名稱(英語:Domain Name),簡稱域名、網域,是由一串用點分隔的名字組成的Internet上某一臺計算機或計算機組的名稱,用於在數據傳輸時標識計算機的電子方位(有時也指地理位置)。

例子:www.ncic.ac.cn,每一級域名由英文半角句號分割。cookie

  • cn(頂級域名||一級域名)
  • ac(二級域名)
  • ncic(三級域名)
  • www(www前綴代表此域名對應着萬維網服務)
「ncic」做爲三級域名是「ac.cn」的子域名。

經常使用頂級域名

  • .com - 供商業機構使用,但無限制最經常使用,被大部分人熟悉和使用
  • .net - 1985年1月,原供網絡服務供應商使用,現無限制
  • .org - 1985年1月,原供不屬於其餘通用頂級域類別的組織使用,現無限制
  • .edu / .gov / .mil - 1985年1月,供美國教育機構/美國政府機關/美國軍事機構。因歷史遺留問題通常只在美國專用

參考資料

相關文章
相關標籤/搜索