Cookie 和 Session的区别
生活随笔
收集整理的這篇文章主要介紹了
Cookie 和 Session的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
cookies和session這兩個東西經常會在面試當中問到,算是比較基礎的知識,但是還是需要做一下深入理解。
Session
Session:在計算機中,尤其是在網絡應用當中,被稱為“會話控制”。Session
對象存儲特定用戶會話所需的屬性及配置信息。
當程序需要為某個客戶端的請求創建一個session時,服務器首先檢查這個客戶端的請求里是否已包含了一個session標識(稱為SessionID),如果已包含則說明以前已經為此客戶端創建過session,服務器就按照SessionID把這個session檢索出來使用(檢索不到,會新建一個),如果客戶端請求不包含SessionID,則為此客戶端創建一個session并且生成一個與此session相關聯的SessionID,SessionID的值應該是一個既不會重復,又不容易被找到規律以仿造的字符串,用來唯一標識session,這個SessionID將會在本次響應中返回給客戶端保存。
Session保存在服務器端,為了獲取更高的存取速度,服務器一般會把Session放在內存里面,每個用戶都會有一個獨立的Session。如果Session里面的內容太過復雜,當大量的用戶訪問服務器時,可能會導致內存溢出,所以我們的Cookie內容應當適當的精簡。當我們第一次訪問服務器時,服務器會給我們自動創建一個Session,生成session后,只要用戶繼續訪問,服務器就會更新session的最后訪問時間,并且維護這個session。當用戶訪問服務器一次,無論是否讀寫了session,服務器都會認定這個session活躍(active)了一次。
當越來越多的用戶訪問我們的服務器時,因此我們的session會越來越多。為了防止內存溢出,服務器會把長時間沒有活躍的Session刪除。這個時間就是session的超時時間,過了超時時間,我們的session就會自動失效
Cookie
Cookie 可以翻譯為“小甜品,小餅干” ,Cookie在網絡系統中幾乎無處不在,當我們瀏覽以前訪問過的網站時,網頁中可能會出現 :你好XXX,這會讓我們感覺很親切,就好像吃了一個小甜品一樣。這其實是通過訪問主機中的一個文件來實現的,這個文件就是 Cookie。在Internet 中,Cookie 實際上是指小量信息,是由 Web服務器創建的,將信息存儲在用戶計算機上的文件。一般網絡用戶習慣用其復數形式 Cookies,指某些網站為了辨別用戶身份、進行Session 跟蹤而存儲在用戶本地終端上的數據,而這些數據通常會經過加密處理。
很多網站都會使用cookie,不同瀏覽器采用不同的方式保存Cookie,而且每個網站的Cookie只能夠被對應的網站使用。意思就是說當瀏覽器訪問Baidu時,只會帶Baidu的cookie,而不會帶其他網站的Cookie,這就是Cookie的不可跨域名性。
Cookie在客戶端是由瀏覽器來管理的。瀏覽器可以保證各個網站只能操作各個網站的Cookie,從而保證用戶的隱私安全。
cookie的主要內容包括名字,值,過期時間,域和路徑。域和路徑一起構成cookie的作用范圍。cookie如果不設置過期時間的話,則表示這個cookie的生命期為瀏覽器會話期間,關閉瀏覽器,這個cookie就會消失。這種生命期為瀏覽器會話期的Cookie被稱為會話cookie。會話Cookie一般不保存在硬盤上而是保存在內存里,這種行為并不是規范規定的。如果Cookie設置了過期時間,瀏覽器就會把cookie保存到硬盤上,即使瀏覽器關閉了,這些cookie還是會一直有效直到過了過期時間。
Cookie并沒有提供修改和刪除操作,要想修改某一個Cookie只需要新建一個同名的Cookie,添加到請求里面去覆蓋原來的Cookie。刪除也是如此,只需要將要刪除的Cookie的過期時間設置成現在時間的之前就可以了,然后再覆蓋原來的Cookie。需要注意的是:要修改的和要刪除Cookie的名字(name),域名(domain)和路徑(Path)等除了值(value)和過期時間這兩個屬性之外必須和原來完全一樣。否則,瀏覽器就會將請求里面的Cookie設為新的Cookie,相當于覆蓋失敗,也就是刪除和修改失敗了。
Session和Cookie的區別
總結
以上是生活随笔為你收集整理的Cookie 和 Session的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实践作业4:Web测试实践(小组作业)每
- 下一篇: 十年web老兵整理的web前端文章