作為一個產品經理,如果不了解cookie和session很難設計好產品,尤其對于網站產品經理而言,cookie和session是一個必須要懂的知識點。
如果在中大型企業做產品經理,這個cookie和session就非常有用,接下來就講講cookie和session到底是什么。
cookie是什么
Cookie是服務器給客戶端發的一個「通信證」。
cookie是瀏覽器訪問服務器以后,服務器傳給瀏覽器的一段數據。客戶端瀏覽器把cookie保存起來,不得輕易刪除,當瀏覽器再次向服務器發起請求的時候,瀏覽器把網址和cookie一起提交給服務器,服務器以此來辨別該用戶狀態。
cookie的屬性
1.name:該Cookie的名稱,Cookie一旦創建,名稱便不可更改。
2. value:該Cookie的值,cookie中記錄的信息內容。
3. expire:Cookie失效時間,單位秒
注:相信大家都遇到這樣一種情況,之前瀏覽器明明記錄過賬號和密碼,過段時間又讓你重新登錄,這就說明你的cookie過期了。expire為正值,則表示過了expire秒,cookie失效。expire為0的時候,表示關閉瀏覽器同時刪除cookie,expire為負數的時候,表示關閉瀏覽器的時候cookie即失效,expire的值一般為0。
如果cookie不設置過期時間則表示他的生命周期會隨著瀏覽器關閉而結束,這種cookie被稱為會話cookie,一般不會保存在硬盤而是保存在內存中。
如果設置了 過期時間則瀏覽器會把cookie保存在硬盤中,再次打開瀏覽器會依然生效,直到它的有效時間超時。
4. path:該Cookie的使用路徑。
5.domain:可以訪問該Cookie的域名。
6. secure:是否僅使用安全的HTTPS協議傳輸,默認為0
7. Httponly:是否僅通過HTTP協議傳輸,默認為0
除了name的參數值是必須的以外,其他值都是可選的,通常使用的是前面三個參數。
應用場景
自動登錄:如果不想用戶每次登錄網站的時候都輸入用戶名和密碼,只要勾選記住登錄名和密碼,就可以把用戶名和密碼寫入cookie中,下次訪問網站的時候,網站頁面的腳本可以讀取這個信息,自動把用戶名和密碼填寫上去,方便用戶。
實現彈窗功能:當用戶首次進入一些在線教育網站、理財網站...,一般會給用戶彈出新手大禮包的彈窗,當點擊取消以后,也許過了三天又會彈出來,這就是因為過了cookie的有效期,需要再重新設置cookie。
定制內容:網站創建用戶瀏覽內容的cookie,然后就可以根據用戶的瀏覽內容定制用戶喜歡的內容,當用戶下次進入的時候,服務器就可以把用戶喜歡的內容推薦給用戶,以達到留住用戶的目的。
記錄PV:cookie中有專門的值記錄用戶的訪問次數,當用戶再次訪問的時候,cookie會將此值加1并輸出。
Session是什么
Session在web技術中非常重要。由于網頁是一種無狀態的連接程序,因此無法得知用戶的瀏覽狀態。在網上購物的時,把很多商品加入了購物車,而在結賬時網站卻不知道你購物車有哪些物品。為了解決這個問題,服務器端就為特定用戶創建了特定的session,用于標示并跟蹤這個用戶,這樣才知道購物車里有哪些商品。
不同于cookie儲存在瀏覽器端,session儲存在服務器端
Session和cookie的關系
上面說過可以使用cookie的方式來實現跟蹤用戶,使用session也同樣可以實現,實現跟蹤用戶利用的是session生成的唯一ID。實現的方法有兩種:
1、第一種是基于cookie的方式來傳遞session。這種方法是有限制的,因為客戶端可以禁用cookie。
基于cookie的傳遞方式就是將當前的Session的名稱和ID保存在cookie中,當用戶再次請求服務器的時,就會把Session ID發送回來,當腳本中再次使用session時,就會根據cookie中的Session ID返回已經存在的Session。
2、第二種是通過URL參數傳遞,直接將session ID嵌入到URL中去。
第一種是基于cookie的傳遞方式,而cookie在客戶端是禁用的,那么這種方式就不再行得通,這就需要URL來傳遞Session。
cookie 是存儲在瀏覽器里的一小段「數據」,而session是一種讓服務器能識別某個用戶的「機制」,session 在實現的過程中需要使用cookie。
Session應用場景
網上商城中的購物車:例如,一個未登錄用戶去京東網站買東西,分別在購物車中添加了A、B、C三件物品,這個時候服務器端返回前端一個cookie,cookie中保存著session的名稱【zhangsan】,ID=【001】,三件商品的數據保存在session中,這樣當張三下次再去查看購物車 的時候,就會把session ID= 001這個字段客戶告訴服務器,服務器找到相應的session,從而展示相應的購物車數據。