session和cookie 區別(面試)

session原理:
1、session是保存在服務器端,理論上是沒有是沒有限制,只要你的內存夠大

2、瀏覽器第一次訪問服務器時會創建一個session對象並返回一個JSESSIONID=ID的值,
   創建一個Cookie對象key爲JSSIONID,value爲ID的值,將這個Cookie寫回瀏覽器

3、瀏覽器在第二次訪問服務器的時候攜帶Cookie信息JSESSIONID=ID的值,如果該JSESSIONID的session已經銷燬,
   那麼會重新創建一個新的session再返回一個新的JSESSIONID通過Cookie返回到瀏覽器

4、針對一個web項目,一個瀏覽器是共享一個session,就算有兩個web項目部署在同一個服務器上,針對兩個項目的session是不同的
   如:你在tomcat上同時部署了兩個web項目,分別是web1、web2。當你在一個瀏覽器上同時訪問web1時創建的session是A1,訪問web2時創建的session是A2。
       後面你再多次訪問web1使用的session還是A1,多次訪問web2時使用session就是A2

5、session是基於Cookie技術實現,重啓瀏覽器後再次訪問原有的連接依然會創建一個新的session,
   因爲Cookie在關閉瀏覽器後就會消失,但是原來服務器的Session還在,只有等到了銷燬的時間會自動銷燬

6、如果瀏覽器端禁用了Cookie,那麼每次訪問都會創建一個新的Session,但是我們可以通過服務器端程序重寫URL即可,如果頁面多連接多,會增加不必要的工作量,
   那可以強制讓你用戶開啓接收Cookie後再讓其訪問即可。

大白話:當你一次訪問服務器的時候,服務器會在內存中開闢一塊空間,返回唯一一把打開該空間的鑰匙,再把這把鑰匙返回到瀏覽器。
            當你第二次訪問的時候瀏覽器會攜帶這把鑰匙到服務器端打開對應的空間,如果該空間已經銷燬又重新返回開闢一塊新的空間返回新的鑰匙到瀏覽器。

面試:
 
   說說Cookie和Session的區別?
  
   1、Cookie和Session都是會話技術,Cookie是運行在客戶端,Session是運行在服務器端。
  
   2、Cookie有大小限制以及瀏覽器在存cookie的個數也有限制,Session是沒有大小限制和服務器的內存大小有關。

3、Cookie有安全隱患,通過攔截或本地文件找得到你的cookie後可以進行攻擊。

4、Session是保存在服務器端上會存在一段時間纔會消失,如果session過多會增加服務器的壓力。


本文來自 Whyloveit 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/qq_35257397/article/details/52967241?utm_source=copy

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章