web 快取機制 cookie與session

2021-08-19 20:35:00 字數 1993 閱讀 4279

1. cookie

cookie技術是客戶端的解決方案,cookie是由伺服器發給客戶端的特殊資訊,而這些資訊以文字檔案的方式存放在客戶端,然後客戶端每次向伺服器傳送請求的時候都會帶上這些特殊的資訊。

web應用程式是使用http協議傳輸資料的。http協議是無狀態的協議。一旦資料交換完畢,客戶端與伺服器端的連線就會關閉,再次交換資料需要建立新的連線。這就意味著伺服器無法從連線上跟蹤會話。cookie就是這樣的一種機制。它可以彌補http協議無狀態的不足。在session出現之前,基本上所有的**都採用cookie來跟蹤會話。

由於http是一種無狀態的協議,伺服器單從網路連線上無從知道客戶身份。怎麼辦呢?就給客戶端們頒發乙個通行證吧,每人乙個,無論誰訪問都必須攜帶自己通行證。這樣伺服器就能從通行證上確認客戶身份了。這就是cookie的工作原理。

限制:限制2:對於cookie的尺寸大小也有限制,一般大約4kb左右。當嘗試建立超過最大尺寸的cookie時,那麼該cookie會被悄無聲息的丟掉。

訪問方法:

//存放cookie鍵值對

var nickname = "***'";

var openid = "123456";

setcookie('nickname', nickname, 24);

setcookie('openid', openid, 24);

//獲取cookie值

unescape(getcookie("nickname")) //若有中文

getcookie("openid") //無中文,可以不用加unescape

/** 增加瀏覽器cookie鍵值對、時長

* @name 快取的key

* @value 快取的value

* @hours 快取時長

* */

function setcookie(name,value,hours)

/** 獲取瀏覽器cookie鍵值對

* @name 快取的key

* */

function getcookie(name)

}return '';}/*

* 刪除瀏覽器cookie鍵值對

* @name 快取的key

* */

function removecookie(name)

2. session

session是另一種記錄客戶狀態的機制,不同的是cookie儲存在客戶端瀏覽器中,而session儲存在伺服器上。客戶端瀏覽器訪問伺服器的時候,伺服器把客戶端資訊以某種形式記錄在伺服器上。這就是session。客戶端瀏覽器再次訪問時只需要從該session中查詢該客戶的狀態就可以了。

如果說cookie機制是通過檢查客戶身上的「通行證」來確定客戶身份的話,那麼session機制就是通過檢查伺服器上的「客戶明細表」來確認客戶身份。session相當於程式在伺服器上建立的乙份客戶檔案,客戶來訪的時候只需要查詢客戶檔案表就可以了。

cookie和session的方案雖然分別屬於客戶端和服務端,但是服務端的session的實現對客戶端的cookie有依賴關係的,上面我講到服務端執行session機制時候會生成session的id值,這個id值會傳送給客戶端,客戶端每次請求都會把這個id值放到http請求的頭部傳送給服務端,而這個id值在客戶端會儲存下來,儲存的容器就是cookie,因此當我們完全禁掉瀏覽器的cookie的時候,服務端的session也會不能正常使用(注意:有些資料說asp解決這個問題,當瀏覽器的cookie被禁掉,服務端的session任然可以正常使用,asp我沒試驗過,但是對於網路上很多用php和jsp編寫的**,我發現禁掉cookie,**的session都無法正常的訪問)。

Web快取機制概述

web快取機制概述 1 web快取的作用與型別 in web前端,前端優化 on 2012年03月22日 by tat.rehorn view 826 索引 web快取機制概述 1 web快取的作用與型別 web快取機制概述 2 web瀏覽器的快取機制 web快取機制概述 3 如何構建可快取站點 w...

web快取之 http快取機制

一 web快取可以分為資料庫快取 伺服器快取 瀏覽器快取。二 http快取是通過頭資訊控制快取。a.分為強快取和協商快取兩種。b.強快取如果命中,則不需要和伺服器發生互動。c.協商快取不管是否命中,都要和伺服器發生互動。d.強快取的優先順序高於協商快取。三 強快取。a.可以理解為無需驗證的快取策略。...

客戶端快取機制 Cookie詳解

cookie不是內建物件,所以用的時候需要new出來,cookie是由服務端產生的,再傳送給客戶端儲存,它不是內建物件,卻是由服務端產生的,產生完後給了客戶端 它存在於客戶端,卻不是客戶端產生的,是服務端產生的,產生完後給你了 cookie就是我們所理解的快取,本地快取 但是它有缺點,比方說我第一次...