別入坑!Session和Cookie的區別

2021-08-28 09:26:57 字數 1777 閱讀 1401

1.cookie

什麼是cookie呢?因為http是一種無狀態協議,所以假設使用者往自己的購物車裡放了一件商品,當在在準備放一件時,這時伺服器已經無法判斷這個行為是屬於哪個使用者。為了解決這個問題,給每個訪問伺服器的使用者頒發乙個通行證,每個通行證都不一樣,這樣伺服器就可以辨別了。這個通行證就是cookie。cookie實際上一小段文字資訊。

cookie的主要內容包括名字、值、過期時間、路徑、域,路徑和域一起劃分了cookie的作用範圍。

1)name 和 value 屬性由程式設定,預設值都是空引用。

2)domain屬性的預設值為當前url的網域名稱部分,不管發出這個cookie的頁面在哪個目錄下的。

3)path屬性的預設值是根目錄,即 」/」 ,不管發出這個cookie的頁面在哪個目錄下的。可以由程式設定為一定的路徑來進一步限制此cookie的作用範圍。

4)expires 屬性,這個屬性設定此cookie 的過期日期和時間。

httpcookie cookie = new httpcookie("cookname");//初使化並設定cookie的名稱

datetime dt = datetime.now;

timespan ts = new timespan(0, 0, 1, 0, 0);//過期時間為1分鐘

cookie.expires = dt.add(ts);//設定過期時間

cookie.values.add("userid", "value");

cookie.values.add("userid2", "value2");

#cookie可以分為會話cookie和持久化cookie,兩者的區別就是有沒有設定過期時間。

2.session

session是和cookie不同的另一種記錄使用者狀態的機制。session是儲存在伺服器中,當客戶端瀏覽器訪問伺服器時,伺服器會將客戶端的資訊以某種方式儲存在伺服器上,這就是session。當客戶端再次訪問從伺服器中的session中拿取該客戶的狀態就行了。

那麼問題是:所有的客戶端瀏覽器訪問過來都是從伺服器中的session中取相應的客戶狀態,伺服器怎麼知道誰是誰?seesionid,儲存在cookie中的該玩意兒,每次客戶端訪問的時候都會攜帶,然後在伺服器中找尋對應的客戶狀態,完美解決了以上問題。

#session共享的問題:對於多**(一父**多子**)的單一伺服器,就是出現各個子**訪問的是同乙個父**,也就是會有多個會話,這樣sessionid就無法共享了。解決辦法就是:設定cookie的網域名稱為父網域名稱,達到cookie共享,從而實現sessionid共享。弊端就是子**的cookie資訊也共享了。

###last but not least:

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

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

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

4、單個cookie儲存的資料不能超過4k,很多瀏覽器都限制乙個站點最多儲存20個cookie。

5、可以考慮將登陸資訊等重要資訊存放為session,其他資訊如果需要保留,可以放在cookie中。

參考自:

cookie和session區別,cookie禁用

cookie資料存放在瀏覽器上,session資料存放在伺服器上。很多瀏覽器都限制乙個站點最多儲存20個cookie,每個cookie儲存的資料不超過4k cookie並不是很安全,別人可以分析存放在本地的cookie進行cookie欺騙,考慮安全應該用session session在一定時間內儲存...

入坑爬蟲 五 Requests庫處理cookie

爬蟲中使用cookie 為了能夠通過爬蟲獲取到登入後的頁面,或者是解決通過cookie的反扒,需要使用request來處理cookie相關的請求爬蟲中使用cookie的利弊能夠訪問登入後的頁面 能夠實現部分反反爬 帶上cookie的壞處 一套cookie往往對應的是乙個使用者的資訊,請求太頻繁有更大...

JSP中Session內建物件和Cookie的區別

session物件是由伺服器自動建立的與使用者請求相關的物件。伺服器為每個使用者都生成乙個session物件,用於儲存該使用者的資訊,跟蹤使用者的操作狀態。cookie是小段文字資訊,通過使用cookie可以標識使用者身份 記錄使用者名稱及密碼 跟蹤重複使用者。cookie在伺服器端生成並傳送給瀏覽...