session是儲存在伺服器端,理論上是沒有是沒有限制,只要你的記憶體夠大。瀏覽器第一次訪問伺服器時會建立乙個session物件並返回乙個jsessionid=id的值,建立乙個cookie物件key為jssionid,value為id的值,將這個cookie寫回瀏覽器。
瀏覽器在第二次訪問伺服器的時候攜帶cookie資訊jsessionid=id的值,如果該jsessionid的session已經銷毀,那麼會重新建立乙個新的session再返回乙個新的jsessionid通過cookie返回到瀏覽器
針對乙個web專案,乙個瀏覽器是共享乙個session,就算有兩個web專案部署在同乙個伺服器上,針對兩個專案的session是不同的,如:你在tomcat上同時部署了兩個web專案,分別是web1、web2。當你在乙個瀏覽器上同時訪問web1時建立的session是a1,訪問web2時建立的session是a2。後面你再多次訪問web1使用的session還是a1,多次訪問web2時使用session就是a2。
session是基於cookie技術實現,重啟瀏覽器後再次訪問原有的連線依然會建立乙個新的session,因為cookie在關閉瀏覽器後就會消失,但是原來伺服器的session還在,只有等到了銷毀的時間會自動銷毀。
如果瀏覽器端禁用了cookie,那麼每次訪問都會建立乙個新的session,但是我們可以通過伺服器端程式重寫url即可,如果頁面多連線多,會增加不必要的工作量,那可以強制讓你使用者開啟接收cookie後再讓其訪問即可。
大白話:當你一次訪問伺服器的時候,伺服器會在記憶體中開闢一塊空間,返回唯一一把開啟該空間的鑰匙,再把這把鑰匙返回到瀏覽器。當你第二次訪問的時候瀏覽器會攜帶這把鑰匙到伺服器端開啟對應的空間,如果該空間已經銷毀又重新返回開闢一塊新的空間返回新的鑰匙到瀏覽器。
面試:
說說cookie和session的區別?
cookie和session都是會話技術,cookie是執行在客戶端,session是執行在伺服器端。cookie有大小限制以及瀏覽器在存cookie的個數也有限制,session是沒有大小限制和伺服器的記憶體大小有關。
cookie有安全隱患,通過攔截或本地檔案找得到你的cookie後可以進行攻擊。
session是儲存在伺服器端上會存在一段時間才會消失,如果session過多會增加伺服器的壓力。
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是由伺服器維護的乙個伺服器空間,當有使用者訪問時,他...