Cookie
編輯Cookie 是一種文本信息,可以存儲在查看者終端設備(電腦、筆記本電腦、智能手機、平板電腦等)的瀏覽器中,用于訪問的網站(網絡服務器、服務器)。 Cookie 由 Web 服務器發送到瀏覽器或由瀏覽器中的腳本 (JavaScript) 生成。 網絡服務器可以在隨后重新訪問本網站時直接讀取此 cookie 信息,或通過網站上的腳本將 cookie 信息傳輸到服務器。 例如,此 cookie 的任務是識別沖浪者(會話 ID)、保存對 Web 應用程序的登錄,或保存在線零售商的購物車。 一個常見的應用是使用專門準備的頁面對用戶進行網絡跟蹤。 使用 cookie 分析用戶行為和用于廣告目的需要征得用戶同意。
cookie 一詞在數據保護中也用作數據提取、數據存儲、數據使用、數據利用、數據傳輸和數據濫用的同義詞,無論實際使用的是物理 cookie 還是使用其他技術。
結構
編輯cookie 由名稱和值組成。 定義 cookie 時,可以或必須指定一個或多個附加屬性。
名稱和值是可打印的 US-ASCII 字符序列,不包括某些字符。 Name 的語法使用受限字符集,如 RFC 2616 中的其他 HTTP 標頭所使用的那樣。 值不包括分號、逗號、空白字符和反斜杠。 要將任何數據存儲為 cookie 值,可以使用 Base64 等編碼或使用 %xx 的 URL 編碼。
HttpOnly 屬性旨在防止使用 JavaScript 訪問 cookie。 無法通過 JavaScript 訪問具有 HttpOnly 屬性的 Cookie。 如果使用的瀏覽器支持此屬性,這代表了一種可能的針對跨站點腳本的保護。
規范
編輯根據 RFC 6265,瀏覽器應支持以下最小尺寸:
- 一個 cookie 應該至少包含 4096 字節。
- 每個域應該可以存儲至少 50 個 cookie。
- 總共應該能夠保存至少 3000 個 cookie。
所有參與的瀏覽器和服務器都必須保證最小尺寸。 但是,該規范確實允許更大的 cookie 或更多的 cookie。
工作原理
編輯網站可以通過兩種方式傳輸、分配和評估 cookie:
- 通過 HTTP 在請求和響應的標頭中傳輸。 客戶端中的 Cookie 是在訪問 Web 服務器時在服務器響應中傳輸 cookie 行和其他 HTTP 標頭時創建的(請參閱結構)。
- Cookie 也可以通過 JavaScript 或其他腳本語言在本地生成。 腳本在服務器發送的網頁中。
可以讀取、使用和更改同一域(即不是其他網站)的本地 cookie。 例如,JavaScript 可用于合并有關會話中發生的本地用戶活動的信息,而無需與服務器進一步聯系。 下次您聯系該網站時,它們也會在 HTTP 標頭中傳輸到那里。
Cookie 信息存儲在瀏覽器本地,通常存儲在 cookie 數據庫中。 隨著隨后對 Web 服務器的進一步訪問,客戶端瀏覽器搜索該域中與 Web 服務器和當前調用的目錄路徑匹配的所有 cookie。 此 cookie 數據也在 HTTP 訪問的標頭中傳輸,因此 cookie 只能返回到它們最初來自的 Web 服務器。
Cookie 可以包含任何文本,因此除了純標識之外,它還可以在本地保存任何設置,但其長度不應超過 4 千字節(4 1024 字節),以便與所有瀏覽器保持兼容。 cookie 隨每個傳輸的文件一起傳輸,包括圖像文件或任何其他類型的文件; 這尤其適用于嵌入的元素,例如由服務器集成的廣告橫幅,而不是顯示的 HTML 文件的來源。 單個網站可能會導致多個 cookie 來自不同的服務器并被發送回不同的服務器。
Cookie 由客戶專門管理。 所以他決定客戶端是否在 Web 服務器所需的生命周期后再次保存或刪除 cookie。 但是,相應的信息也可以存儲在服務器上,例如統計網站的訪問量。
應用
編輯HTTP 是一種無狀態協議,因此頁面瀏覽量對于 Web 服務器而言是相互獨立的。 通過多個頁面視圖與用戶交互的 Web 應用程序必須使用技巧才能跨多個訪問識別參與者。 為此,服務器可以將xxx的會話標識符存儲在 cookie 中,以便在以后的調用中準確識別該客戶端。 出于安全原因,電子銀行傾向于在每次頁面查看時使用一次性令牌。
在線商店可以使用 cookie 來收集虛擬購物籃中的商品。 客戶可以用它來將商品放入購物籃,然后繼續瀏覽網站,然后一起購買這些商品。 購物車或用戶會話的標識存儲在 cookie 中,商品標識符分配給此購物車或網絡服務器上的用戶會話。 此信息僅在下訂單時在服務器端進行評估。
Cookie 可用于臨時存儲,以便在與服務器的連接丟失時(例如在移動電話網絡中),用于服務器的用戶操作和輸入不會在 Web 應用程序中丟失。 當連接恢復時,從服務器查詢它們。 Web 應用程序識別 cookie 的生成順序并標記已處理的 cookie 或刪除其內容。 因為這種使用可能會導致創建很多cookie,最早要等到瀏覽器關閉后才被刪除,但是瀏覽器對cookie的存儲空間是有限的,所以web應用必須做好cookie溢出的防范措施。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/331431/