session與cookie區別與聯絡

2022-08-22 01:39:12 字數 1221 閱讀 9420

session 是存放在伺服器端的,類似於session結構來存放使用者資料,當瀏覽器 第一次傳送請求時,伺服器自動生成了乙個session和乙個session id用來唯一標識這個session,並將其通過響應傳送到瀏覽器。當瀏覽器第二次傳送請求,會將前一次伺服器響應中的session id放在請求中一併發送到伺服器上,伺服器從請求中提取出session id,並和儲存的所有session id進行對比,找到這個使用者對應的session。

一般情況下,伺服器會在一定時間內(預設30分鐘)儲存這個 session,過了時間限制,就會銷毀這個session。在銷毀之前,程式設計師可以將使用者的一些資料以key和value的形式暫時存放在這個 session中。當然,也有使用資料庫將這個session序列化後儲存起來的,這樣的好處是沒了時間的限制,壞處是隨著時間的增加,這個資料 庫會急速膨脹,特別是訪問量增加的時候。一般還是採取前一種方式,以減輕伺服器壓力。

一般瀏覽器提供了兩種方式來儲存,還有一種是程式設計師使用html隱藏域的方式自定義實現:

[1] 使用cookie來儲存,這是最常見的方法,本文「記住我的登入狀態」功能的實現正式基於這種方式的。伺服器通過設定cookie的方式將session id傳送到瀏覽器。如果我們不設定這個過期時間,那麼這個cookie將不存放在硬碟上,當瀏覽器關閉的時候,cookie就消失了,這個session id就丟失了。如果我們設定這個時間為若干天之後,那麼這個cookie會儲存在客戶端硬碟中,即使瀏覽器關閉,這個值仍然存在,下次訪問相應**時,同 樣會傳送到伺服器上。

[3] 第三種方式是在頁面表單裡面增加隱藏域,這種方式實際上和第二種方式一樣,只不過前者通過get方式傳送資料,後者使用post方式傳送資料。但是明顯後者比較麻煩。

cookies是屬於session物件的一種。但有不同,cookies不會佔伺服器資源,是存在客服端記憶體或者乙個cookie的文字檔案中;而「session」則會占用伺服器資源。所以,盡量不要使用session,而使用cookies。但是我們一般認為cookie是不可靠的,session是可靠地,但是目前很多著名的站點也都以來cookie。有時候為了解決禁用cookie後的頁面處理,通常採用url重寫技術,呼叫session中大量有用的方法從session中獲取資料後置入頁面。

cookies與session的應用場景:

cookies的安全效能一直是倍受爭議的。雖然cookies是儲存在本機上的,但是其資訊的完全可見性且易於本地編輯性,往往可以引起很多的安全問題。所以cookies到底該不該用,到底該怎樣用,就有了乙個需要給定的底線。

PHP中session和cookie的區別和聯絡

ps 本人親測,阿里雲2核4g5m的伺服器價效比很高,新使用者一塊多一天,老使用者三塊多一天,最高可以買三年,感興趣的可以戳一下 阿里雲折扣伺服器 這兩者,區別和聯絡其實也挺深奧的,總是了解一些皮毛,每次都得上網查,今天寫下來,每隔段時間就看看,加深記憶。session是由應用伺服器維持的乙個伺服器...

PHP的SESSION和COOKIE的區別和聯絡

區別 cookie儲存在客戶端,session儲存在伺服器端。cookie因為儲存在客戶端,所以安全性較低,session安全性較高。cookie有大小限制,為4k,僅能儲存20個cookie,session沒有限制。cookie僅支援儲存字串,session可以儲存所有型別。聯絡 同樣是會話技術。...

php中cookie和session的區別和聯絡

php中的session和cookie 相信做php開發的人經常會用到的吧。自己也經常用到,但是一直沒有時間來總結一下,今天就花了一些時間總結了下。首先講下他們的區別吧 session存在伺服器端 cookie存在客戶端 他們的聯絡 session是由伺服器維護的乙個伺服器空間,當有使用者訪問時,他...