cookie 科普 以及 探索

來源:互聯網
上載者:User

什麼是cookie

某些網站為了辨別使用者身份而儲存在使用者本地終端(Client Side)上的資料(通常經過加密)。

Cookie總是儲存在用戶端中,按在用戶端中的儲存位置,可分為記憶體Cookie和硬碟Cookie。記憶體cookie會隨著瀏覽器的關閉而失效。

因為HTTP協議是無狀態的,即伺服器不知道使用者上一次做了什麼,這嚴重阻礙了互動式Web應用程式的實現。

Cookie就是用來繞開HTTP的無狀態性的“額外手段”之一。伺服器可以設定或讀取Cookies中包含資訊,藉此維護使用者跟伺服器session中的狀態。

以上摘自維基百科

類似Javascript變數,Cookie由變數名和值組成。

其屬性裡既有標準的Cookie變數,也有使用者自己建立的變數,屬性中變數是用“變數=值”形式來儲存。

根據Netscape公司的規定,Cookie格式如下:
Set-Cookie: NAME=VALUE;Expires=DATE;Path=PATH;Domain=DOMAIN_NAME;SECURENAME=VALUE:

這是每一個Cookie均必須有的部分。NAME是該Cookie的名稱,VALUE是該Cookie的值。在字串“NAME=VALUE”中,不含分號、逗號和空格等字元。

Expires=DATE:

Expires變數是一個唯寫變數,它確定了Cookie有效終止日期。

該屬性值DATE必須以特定的格式來書寫:星期幾,DD-MM-YY HH:MM:SS GMT,GMT表示這是格林尼治時間。反之,不以這樣的格式來書寫,系統將無法識別。該變數可省,如果預設時,則Cookie的屬性值不會儲存在使用者的硬碟中,而僅僅儲存在記憶體當中,Cookie檔案將隨著瀏覽器的關閉而自動消失。

Domain=DOMAIN-NAME:

Domain該變數是一個唯寫變數,它確定了哪些Internet域中的Web伺服器可讀取瀏覽器所存取的Cookie,即只有來自這個域的頁面才可以使用Cookie中的資訊。這項設定是可選的,如果預設時,設定Cookie的屬性值為該Web伺服器的網域名稱。

Path=PATH:

Path屬性定義了Web伺服器上哪些路徑下的頁面可擷取伺服器設定的Cookie。一般如果使用者輸入的URL中的路徑部分從第一個字元開始包含Path屬性所定義的字串,瀏覽器就認為通過檢查。如果Path屬性的值為“/”,則Web伺服器上所有的WWW資源均可讀取該Cookie。同樣該項設定是可選的,如果預設時,則Path的屬性值為Web伺服器傳給瀏覽器的資源的路徑名。

可以看出我們藉助對Domain和Path兩個變數的設定,即可有效地控制Cookie檔案被訪問的範圍。

Secure:

在Cookie中標記該變數,表明只有當瀏覽器和Web Server之間的通訊協定為加密認證協議時,瀏覽器才向伺服器提交相應的Cookie。當前這種協議只有一種,即為HTTPS。


cookie有啥用?

  1. 定製個人化空間
    使用者訪問一個網站,可能由於費用、頻寬節流設定等原因,並不希望瀏覽網頁所有的內容。Cookie可根據個人喜好進行欄目設定,即時、動態地產生使用者所要的內容,這就迎合了不同層次使用者的訪問興趣,減少使用者項目選擇的次數,更合理利用網頁伺服器的傳輸頻寬。
  2. 記錄網站軌跡
    由於Cookie可以儲存在使用者機上,並在使用者再次訪問該Server時讀回這一特性可以協助我們實現很多設計功能,如顯示使用者訪問該網頁的次數(html5已經支援非cookie的實現);顯示使用者上一次的訪問時間;甚至是記錄使用者以前在本頁中所做的選擇等等,這可免去我們再去研究複雜的CGI編程。
  3. 如果在一台電腦中安裝多個瀏覽器,每個瀏覽器都會以獨立的空間存放cookie。
    因為cookie中不但可以確認使用者,還能包含電腦和瀏覽器的資訊,所以一個使用者用不同的瀏覽器登入或者用不同的電腦登入,都會得到不同的cookie資訊,另一方面,對於在同一台電腦上使用同一瀏覽器的多使用者群,cookie不會區分他們的身份,除非他們使用不同的使用者名稱登入。

在與伺服器傳輸資料時,通過在地址後面添加唯一查詢串,讓伺服器識別是否合法使用者,也可以避免使用cookie。

SSL 並不能防止儲存在使用者電腦上的 Cookie 被他人讀取或操作,但它能防止 Cookie
在傳輸途中被他人截取。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.