php學習 cookie與session的區別

2021-09-21 14:49:22 字數 2367 閱讀 2439

cookie 常用於識別使用者。cookie 是伺服器留在使用者計算機中的小檔案。每當相同的計算機通過瀏覽器請求頁面時,它同時會傳送 cookie。通過 php,您能夠建立並取回 cookie 的值。

建立 cookie

setcookie() 函式用於設定 cookie。

語法:setcookie(name, value, expire, path, domain);

舉例:setcookie("user", "alex porter", time()+3600);

注意:setcookie() 函式必須位於標籤之前。

取回 cookie 的值

使用isset()函式來確認是否已設定了 cookie

$_cookie變數用於取回 cookie 的值。

刪除 cookie

當刪除 cookie 時,您應當使過期日期變更為過去的時間點。

//setcookie("user", "", time()-3600);
建立 session

session_start()函式啟動會話

儲存 session 變數

isset() 函式檢測是否已設定

$_session變數賦值

終結 session

如果希望刪除某些 session 資料,可以使用 unset() 或 session_destroy() 函式。

注釋:session_destroy() 將重置 session,您將失去所有已儲存的 session 資料。

session保留在伺服器端,給每個客戶分配乙個唯一的數字,作為每個客戶的標識,

cookies是保留在客戶端的,每次發出頁面請求時,都會把裡面的資料傳送給伺服器端.

cookies適合做儲存使用者的個人設定,愛好等,session適合做客戶的身份驗證.

session儲存在伺服器,客戶端不知道其中的資訊;cookie儲存在客戶端,伺服器能夠知道其中的資訊。

session中儲存的是物件,cookie中儲存的是字串

session不能區分路徑,同乙個使用者在訪問乙個**期間,所有的session在任何乙個地方都可以訪問到。而cookie中如果設定了路徑引數,那麼同乙個**中不同路徑下的cookie互相是訪問不到的。

session需要借助cookie才能正常工作。如果客戶端完全禁止cookie,session將失效。

兩個都可以用來存私密的東西,同樣也都有有效期的說法。

session是放在伺服器上的,過期與否取決於服務期的設定,cookie是存在客戶端的,過期與否可以在cookie生成的時候設定進去。

cookie 也可以設定成關閉瀏覽器既消失.

cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上

cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙,考慮到安全應當使用session

session會在一定時間內儲存在伺服器上。當訪問增多,會比較占用你伺服器的效能,考慮到減輕伺服器效能方面,應當使用cookie

單個cookie在客戶端的限制是3k,就是說乙個站點在客戶端存放的cookie不能超過3k。

乙個web站點向客戶端傳送的cookie不得超過20個,

乙個瀏覽器能建立的cookie數量最多為30個,並且每個不能超過4kb

其次不同的瀏覽器對cookie的處理不一致,且有時會出現錯誤的結果。比如:ms ie+service pack 1

不能正確處理帶網域名稱和路徑的cookie ,netscape communicator 4.05和ms ie 3.0不能正確處理不帶路徑和

時間的cookie。至於ms ie 5 好象不能處理帶網域名稱、路徑和時間的cookie。 一般做使用者登陸用session

存放使用者其他資訊可以用cookie,比如乙個網上**沒有會員系統的話,可以有cookie來存放他放到購物車裡的東西.

主要區別:

(1)cookie以文字檔案格式儲存在瀏覽器中,而session儲存在服務端。

(2)cookie的儲存限制了資料量,只允許4kb,而session是無限量的

(3)我們可以輕鬆訪問cookie值但是我們無法輕鬆訪問會話值,因此它更安全

(4)設定cookie時間可以使cookie過期。但是使用session-destory(),我們將會銷 毀會話

http無狀態設計與Cookie和Session

無狀態指的是任意乙個web請求必須完全與其他請求隔離,當請求端提出請求時,請求本身包含了相應端為相應這一請求所需的全部資訊。1.被呼叫者不儲存引數,因為無需考慮引數邏輯 由使用者來儲存狀態,進行狀態邏輯設計 http是無狀態設計的,一些sdk的設計也可以是無狀態的。2.而一些需求是需要有互動的,需要...

HTTP無狀態協議之Cookie與Session!

在討論什麼是cookie和session之前要先了解http的無狀態協議。因為cookie與session是為了解決無狀態協議而誕生的。http的無狀態協議 當客戶端向伺服器發起請求並且在接收到伺服器返回給它的響應後,它就已經完成了一次傳輸的過程。這個過程是獨立的,也是乙個新的過程。如果客戶端下次再...

使用者禁止cookie後,如何繼續使用session

如果使用者禁止cookie,伺服器仍會將sessionid以cookie的方式傳送給瀏覽器,但是,瀏覽器不再儲存這個cookie 即sessionid 了,這時就需使用url重寫了 1.什麼是url重寫 瀏覽器在訪問伺服器上的某個位址時,不能夠直接寫這個元件的位址,而應該使用伺服器生成的這個位址。s...