1. 程式人生 > >cookie和session(不看後悔,一看必懂)

cookie和session(不看後悔,一看必懂)

會話:當用戶開啟瀏覽器的時候,訪問不同的資源,直到使用者將瀏覽器關閉,可以認為這是一次會話.

http協議是無狀態的協議,一旦資料交換完畢,客戶端和伺服器端的連線就會關閉,再次交換資料需要建立新的連線.這就意味著伺服器無法從連線上跟蹤會話

cookie:瀏覽器端會話技術(cookie資料存放在客戶的瀏覽器上)

session:伺服器端會話技術(session資料存放在伺服器上);它們兩個都可以彌補http無狀態的不足

Cookie從何而來?

1、瀏覽器向伺服器傳送請求

2、伺服器接收請求,生成一個cookie物件儲存"標識"資料

3、然後把cookie物件放在響應頭,一併發回瀏覽器

4、瀏覽器取出cookie物件的資料儲存在瀏覽器的快取中

5、再次訪問時請求頭攜帶cookie資料傳送到伺服器

6、伺服器根據cookie的資料作出相應處理

Cookie的內容是存在瀏覽器端,預設是瀏覽器關閉,Cookie的內容就取消。除非設定了Cookie的過期時間。session是需要藉助cookie才能正常工作的,如果客戶端完全禁止cookie,session將失效。Session的生命週期預設是30分鐘,但是瀏覽器關閉後,其Cookie就不存JSESSIONID了,所以瀏覽器就找不到這個session物件了(通過JSESSIONID查詢)。為了瀏覽器關閉後還能找到上次的session,需要通過設定關於此JSESSIONID的cookie的存活時間來實現。

session在第一次訪問伺服器時建立,伺服器一般把session存放在記憶體中,每個使用者都有一個獨立的session,所以session中的資訊應該儘量精簡;session生成後,只要使用者繼續訪問,伺服器就會更新session的最後訪問時間

cookie和session的區別

①cookie資料存放在客戶端,session資料存放在伺服器端

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

③cookie是不安全的,session比較安全