『壹』 web服務cookies和session的區別
1,session 在伺服器端,cookie 在客戶端(瀏覽器)
2,session 默認被存在在伺服器的一個文件里(不是內存)
3,session 的運行依賴 session id,而 session id 是存在 cookie 中的,也就是說,如果瀏覽器禁用了 cookie ,同時 session 也會失效(但是可以通過其它方式實現,比如在 url 中傳遞 session_id)
4,session 可以放在 文件、資料庫、或內存中都可以。
5,用戶驗證這種場合一般會用 session
因此,維持一個會話的核心就是客戶端的唯一標識,即 session id
『貳』 COOKIE和SESSION有什麼區別
1,session 在伺服器端,cookie 在客戶端(瀏覽器)
2,session 默認被存在在伺服器的一個文件里(不是內存)
3,session 的運行依賴 session id,而 session id 是存在 cookie 中的,也就是說,如果瀏覽器禁用了 cookie ,同時 session 也會失效(但是可以通過其它方式實現,比如在 url 中傳遞 session_id)
4,session 可以放在 文件、資料庫、或內存中都可以。
5,用戶驗證這種場合一般會用 session
『叄』 session和cookie的區別和聯系,session的生命周期,多個服務部署時session管理
這些都是基礎知識,不過有必要做深入了解。先簡單介紹一下。
二者的定義:
當你在瀏覽網站的時候,WEB 伺服器會先送一小小資料放在你的計算機上,Cookie 會幫你在網站上所打的文字或是一些選擇,
都紀錄下來。當下次你再光臨同一個網站,WEB 伺服器會先看看有沒有它上次留下的 Cookie 資料,有的話,就會依據 Cookie
里的內容來判斷使用者,送出特定的網頁內容給你。 Cookie 的使用很普遍,許多有提供個人化服務的網站,都是利用 Cookie
來辨認使用者,以方便送出使用者量身定做的內容,像是 Web 介面的免費 email 網站,都要用到 Cookie。
具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。
同時我們也看到,由於採用伺服器端保持狀態的方案在客戶端也需要保存一個標識,所以session機制可能需要藉助於cookie機制
來達到保存標識的目的,但實際上它還有其他選擇。
cookie機制。正統的cookie分發是通過擴展HTTP協議來實現的,伺服器通過在HTTP的響應頭中加上一行特殊的指示以提示
瀏覽器按照指示生成相應的cookie。然而純粹的客戶端腳本如JavaScript或者VBScript也可以生成cookie。而cookie的使用
是由瀏覽器按照一定的原則在後台自動發送給伺服器的。瀏覽器檢查所有存儲的cookie,如果某個cookie所聲明的作用范圍
大於等於將要請求的資源所在的位置,則把該cookie附在請求資源的HTTP請求頭上發送給伺服器。
cookie的內容主要包括:名字,值,過期時間,路徑和域。路徑與域一起構成cookie的作用范圍。若不設置過期時間,則表示這
個cookie的生命期為瀏覽器會話期間,關閉瀏覽器窗口,cookie就消失。這種生命期為瀏覽器會話期的cookie被稱為會話cookie。
會話cookie一般不存儲在硬碟上而是保存在內存里,當然這種行為並不是規范規定的。若設置了過期時間,瀏覽器就會把cookie
保存到硬碟上,關閉後再次打開瀏覽器,這些cookie仍然有效直到超過設定的過期時間。存儲在硬碟上的cookie可以在不同的瀏
覽器進程間共享,比如兩個IE窗口。而對於保存在內存里的cookie,不同的瀏覽器有不同的處理方式
session機制。session機制是一種伺服器端的機制,伺服器使用一種類似於散列表的結構(也可能就是使用散列表)來保存信息。
當程序需要為某個客戶端的請求創建一個session時,伺服器首先檢查這個客戶端的請求里是否已包含了一個session標識
(稱為session id),如果已包含則說明以前已經為此客戶端創建過session,伺服器就按照session id把這個session檢索出來
使用(檢索不到,會新建一個),如果客戶端請求不包含session id,則為此客戶端創建一個session並且生成一個與此session相
關聯的session id,session id的值應該是一個既不會重復,又不容易被找到規律以仿造的字元串,這個session id將被在本次響應
中返回給客戶端保存。保存這個session id的方式可以採用cookie,這樣在交互過程中瀏覽器可以自動的按照規則把這個標識發送給
伺服器。一般這個cookie的名字都是類似於SEEESIONID。但cookie可以被人為的禁止,則必須有其他機制以便在cookie被禁止時
仍然能夠把session id傳遞回伺服器。
經常被使用的一種技術叫做URL重寫,就是把session id直接附加在URL路徑的後面。還有一種技術叫做表單隱藏欄位。就是伺服器
會自動修改表單,添加一個隱藏欄位,以便在表單提交時能夠把session id傳遞回伺服器。比如:
<form name="testform" action="/xxx">
<input type="hidden" name="jsessionid" value="!-145788764">
<input type="text">
</form>
實際上這種技術可以簡單的用對action應用URL重寫來代替。
cookie 和session 的區別:
1、cookie數據存放在客戶的瀏覽器上,session數據放在伺服器上。
2、cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙
考慮到安全應當使用session。
3、session會在一定時間內保存在伺服器上。當訪問增多,會比較佔用你伺服器的性能
考慮到減輕伺服器性能方面,應當使用COOKIE。
4、單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。
5、所以個人建議:
將登陸信息等重要信息存放為SESSION
其他信息如果需要保留,可以放在COOKIE中
二.session的生命周期
Session存儲在伺服器端,一般為了防止在伺服器的內存中(為了高速存取),Sessinon在用戶訪問第一次訪問伺服器時創建,需要注意只有訪問JSP、Servlet等程序時才會創建Session,只訪問HTML、IMAGE等靜態資源並不會創建Session,可調用request.getSession(true)強制生成Session。
Session什麼時候失效?
1. 伺服器會把長時間沒有活動的Session從伺服器內存中清除,此時Session便失效。Tomcat中Session的默認失效時間為20分鍾。
2. 調用Session的invalidate方法。
Session對瀏覽器的要求:
雖然Session保存在伺服器,對客戶端是透明的,它的正常運行仍然需要客戶端瀏覽器的支持。這是因為Session需要使用Cookie作為識別標志。HTTP協議是無狀態的,Session不能依據HTTP連接來判斷是否為同一客戶,因此伺服器向客戶端瀏覽器發送一個名為JSESSIONID的Cookie,它的值為該Session的id(也就是HttpSession.getId()的返回值)。Session依據該Cookie來識別是否為同一用戶。
該Cookie為伺服器自動生成的,它的maxAge屬性一般為-1,表示僅當前瀏覽器內有效,並且各瀏覽器窗口間不共享,關閉瀏覽器就會失效。因此同一機器的兩個瀏覽器窗口訪問伺服器時,會生成兩個不同的Session。但是由瀏覽器窗口內的鏈接、腳本等打開的新窗口(也就是說不是雙擊桌面瀏覽器圖標等打開的窗口)除外。這類子窗口會共享父窗口的Cookie,因此會共享一個Session。
注意:新開的瀏覽器窗口會生成新的Session,但子窗口除外。子窗口會共用父窗口的Session。例如,在鏈接上右擊,在彈出的快捷菜單中選擇"在新窗口中打開"時,子窗口便可以訪問父窗口的Session。
如果客戶端瀏覽器將Cookie功能禁用,或者不支持Cookie怎麼辦?例如,絕大多數的手機瀏覽器都不支持Cookie。Java Web提供了另一種解決方案:URL地址重寫。
URL地址重寫是對客戶端不支持Cookie的解決方案。URL地址重寫的原理是將該用戶Session的id信息重寫到URL地址中。伺服器能夠解析重寫後的URL獲取Session的id。這樣即使客戶端不支持Cookie,也可以使用Session來記錄用戶狀態。HttpServletResponse類提供了encodeURL(String url)實現URL地址重寫,該方法會自動判斷客戶端是否支持Cookie。如果客戶端支持Cookie,會將URL原封不動地輸出來。如果客戶端不支持Cookie,則會將用戶Session的id重寫到URL中。
注意:TOMCAT判斷客戶端瀏覽器是否支持Cookie的依據是請求中是否含有Cookie。盡管客戶端可能會支持Cookie,但是由於第一次請求時不會攜帶任何Cookie(因為並無任何Cookie可以攜帶),URL地址重寫後的地址中仍然會帶有jsessionid。當第二次訪問時伺服器已經在瀏覽器中寫入Cookie了,因此URL地址重寫後的地址中就不會帶有jsessionid了。
『肆』 cookie和session有什麼區別
由於HTTP協議是無狀態的協議,所以服務端需要記錄用戶的狀態時,就需要用某種機制來識具體的用戶,這個機制就是Session.典型的場景比如購物車,當你點擊下單按鈕時,由於HTTP協議無狀態,所以並不知道是哪個用戶操作的,所以服務端要為特定的用戶創建了特定的Session,用用於標識這個用戶,並且跟蹤用戶,這樣才知道購物車裡面有幾本書。這個Session是保存在服務端的,有一個唯一標識。在服務端保存Session的方法很多,內存、資料庫、文件都有。集群的時候也要考慮Session的轉移,在大型的網站,一般會有專門的Session伺服器集群,用來保存用戶會話,這個時候 Session 信息都是放在內存的,使用一些緩存服務比如Memcached之類的來放 Session。
2. 思考一下服務端如何識別特定的客戶?這個時候Cookie就登場了。每次HTTP請求的時候,客戶端都會發送相應的Cookie信息到服務端。實際上大多數的應用都是用 Cookie 來實現Session跟蹤的,第一次創建Session的時候,服務端會在HTTP協議中告訴客戶端,需要在 Cookie 裡面記錄一個Session ID,以後每次請求把這個會話ID發送到伺服器,我就知道你是誰了。有人問,如果客戶端的瀏覽器禁用了 Cookie 怎麼辦?一般這種情況下,會使用一種叫做URL重寫的技術來進行會話跟蹤,即每次HTTP交互,URL後面都會被附加上一個諸如 sid=xxxxx 這樣的參數,服務端據此來識別用戶。
3. Cookie其實還可以用在一些方便用戶的場景下,設想你某次登陸過一個網站,下次登錄的時候不想再次輸入賬號了,怎麼辦?這個信息可以寫到Cookie裡面,訪問網站的時候,網站頁面的腳本可以讀取這個信息,就自動幫你把用戶名給填了,能夠方便一下用戶。這也是Cookie名稱的由來,給用戶的一點甜頭。
所以,總結一下:
Session是在服務端保存的一個數據結構,用來跟蹤用戶的狀態,這個數據可以保存在集群、資料庫、文件中;
Cookie是客戶端保存用戶信息的一種機制,用來記錄用戶的一些信息,也是實現Session的一種方式。
『伍』 什麼是session什麼是cookie兩者有什麼區別分別有什麼有
session和cookies都是來存儲信息的但是他們的壽命不一樣:比如你登錄一個網站你有自己的帳號。昵稱啊什麼的這些就保存在session里當網頁不關閉,session就存在。但是當你關閉之後session就清空了。而cookies則可以在電腦的緩存文件里添加記錄,這樣即使當你的程序關閉了,但是記錄卻被永久保存了下來。存活期較session長。
『陸』 談談session和cookie有什麼區別
cookie是個基礎的東西。是伺服器發送到客戶端,存儲在客戶端的一小段數據。可以存儲一些配置信息,客戶標識信息等。用戶下次訪問這個網站時,會把上次網站發來的cookie一同發送回去。 Session是伺服器端通過一定的手段,保存的客戶每次會話的信息。cookie是將用戶信息保存在用戶本地,下次進入的時候能夠再從裡面讀取,而session一般有個有效時間,在有效時間內,能夠從裡面直接讀取,超過該時間,session就會失效
具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。同時我們也看到,由於採用伺服器端保持狀態的方案在客戶端也需要保存一個標識,所以session機制可能需要藉助於cookie機制來達到保存標識的目的,但實際上它還有其他選擇。
cookie機制。正統的cookie分發是通過擴展HTTP協議來實現的,伺服器通過在HTTP的響應頭中加上一行特殊的指示以提示瀏覽器按照指示生成相應的cookie。然而純粹的客戶端腳本如JavaScript或者VBScript也可以生成cookie。而cookie的使用是由瀏覽器按照一定的原則在後台自動發送給伺服器的。瀏覽器檢查所有存儲的cookie,如果某個cookie所聲明的作用范圍大於等於將要請求的資源所在的位置,則把該cookie附在請求資源的HTTP請求頭上發送給伺服器。
cookie的內容主要包括:名字,值,過期時間,路徑和域。路徑與域一起構成cookie的作用范圍。若不設置過期時間,則表示這個cookie的生命期為瀏覽器會話期間,關閉瀏覽器窗口,cookie就消失。這種生命期為瀏覽器會話期的cookie被稱為會話cookie。會話cookie一般不存儲在硬碟上而是保存在內存里,當然這種行為並不是規范規定的。若設置了過期時間,瀏覽器就會把cookie保存到硬碟上,關閉後再次打開瀏覽器,這些cookie仍然有效直到超過設定的過期時間。存儲在硬碟上的cookie可以在不同的瀏覽器進程間共享,比如兩個IE窗口。而對於保存在內存里的cookie,不同的瀏覽器有不同的處理方式
session機制。session機制是一種伺服器端的機制,伺服器使用一種類似於散列表的結構(也可能就是使用散列表)來保存信息。
當程序需要為某個客戶端的請求創建一個session時,伺服器首先檢查這個客戶端的請求里是否已包含了一個session標識(稱為session id),如果已包含則說明以前已經為此客戶端創建過session,伺服器就按照session id把這個session檢索出來使用(檢索不到,會新建一個),如果客戶端請求不包含session id,則為此客戶端創建一個session並且生成一個與此session相關聯的session id,session id的值應該是一個既不會重復,又不容易被找到規律以仿造的字元串,這個session id將被在本次響應中返回給客戶端保存。
保存這個session id的方式可以採用cookie,這樣在交互過程中瀏覽器可以自動的按照規則把這個標識發揮給伺服器。一般這個cookie的名字都是類似於SEEESIONID。但cookie可以被人為的禁止,則必須有其他機制以便在cookie被禁止時仍然能夠把session id傳遞回伺服器。
經常被使用的一種技術叫做URL重寫,就是把session id直接附加在URL路徑的後面。還有一種技術叫做表單隱藏欄位。就是伺服器會自動修改表單,添加一個隱藏欄位,以便在表單提交時能夠把session id傳遞回伺服器。比如:
<form name="testform" action="/xxx">
<input type="hidden" name="jsessionid" value="!-145788764">
<input type="text">
</form>
實際上這種技術可以簡單的用對action應用URL重寫來代替。
『柒』 和session的區別和聯系
request和session的作用
request是獲取信息--通過用戶提交的表單,查詢字元串,cookie等獲得信息
session是服務端用來保存一些數據(通常是標記狀態的,當然也可以保存別的)
session是服務端的記錄變數,可以跟蹤記錄訪問者動作,比如登錄,退出等。
request用在數據提交,表單數據等
request和session的優點和缺點
request佔用資源比較少 安全性也比較高 可是相對來說 缺乏持續性
而session則相對來說 對資源的消耗會大點 安全性相對來說也會稍微低點 可是它能實現比如會話跟蹤技術 各有優點和缺點 。
『捌』 session和cookie的概念是什麼,兩者的區別是什麼
Session和Cookie的定義以及區別
1、session保存在伺服器,客戶端不知道其中的信息;cookie保存在客戶端,伺服器能夠知道其中的信息。
2、session中保存的是對象,cookie中保存的是字元串。
3、session不能區分路徑,同一個用戶在訪問一個網站期間,所有的session在任何一個地方都可以訪問到。而cookie中如果設置 了路徑參數,那麼同一個網站中不同路徑下的cookie互相是訪問不到的。
4、session默認需要藉助cookie才能正常工作。如果客戶端完全禁止cookie,session,這種方法將失效。但是如果伺服器端啟用了url編碼,也就是用URLEncoder.encode("index.jsp?id=3","UTF-8");..把所有的url編碼了,則會在url後面出現如下類似的東西index.jsp:jsessionid=fdsaffjdlksfd124324lkdjsf?id=3伺服器通過這個進行session的判斷。
5 session在用戶會話結束後就會關閉了,但cookie因為保存在客戶端,可以長期保存
6 cookie:是服務端向客戶端寫入的小的片段信息。cookie信息保存在伺服器緩存區,不會在客戶端顯現。當你第一次登陸一個網站,伺服器向你的機器寫得片段信息。你可以在Internet選項中找到存放cookie的文件夾。如果不刪除,cookie就一直在這個文件夾中。
詳細資料:http://hi..com/yfdong21/blog/item/0e18cbf489b90164ddc4741f.html
為什麼會有cookie呢,大家都知道,http是無狀態的協議,客戶每次讀取web頁面時,伺服器都打開新的會話,而且伺服器也不會自動維護客戶的上下文信息,那麼要怎麼才能實現網上商店中的購物車呢,session就是一種保存上下文信息的機制,它是針對每一個用戶的,變數的值保存在伺服器端,通過 SessionID來區分不同的客戶,session是以cookie或URL重寫為基礎的,默認使用cookie來實現,系統會創造一個名為 JSESSIONID的輸出cookie,我們叫做session cookie,以區別persistent cookies,也就是我們通常所說的cookie,注意session cookie是存儲於瀏覽器內存中的,並不是寫到硬碟上的,這也就是我們剛才看到的JSESSIONID,我們通常情是看不到JSESSIONID的,但是當我們把瀏覽器的cookie禁止後,WEB伺服器會採用URL重寫的方式傳遞Sessionid,我們就可以在地址欄看到sessionid= KWJHUG6JJM65HS2K6之類的字元串。
明白了原理,我們就可以很容易的分辨出persistent cookies和session cookie的區別了,網上那些關於兩者安全性的討論也就一目瞭然了,session cookie針對某一次會話而言,會話結束session cookie也就隨著消失了,而persistent cookie只是存在於客戶端硬碟上的一段文本(通常是加密的),而且可能會遭到cookie欺騙以及針對cookie的跨站腳本攻擊,自然不如 session cookie安全了。
通常session cookie是不能跨窗口使用的,當你新開了一個瀏覽器窗口進入相同頁面時,系統會賦予你一個新的sessionid,這樣我們信息共享的目的就達不到了,此時我們可以先把sessionid保存在persistent cookie中,然後在新窗口中讀出來,就可以得到上一個窗口SessionID了,這樣通過session cookie和persistent cookie的結合我們就實現了跨窗口的session tracking(會話跟蹤)。
在一些WEB開發的書中,往往只是簡單的把Session和cookie作為兩種並列的http傳送信息的方式,session cookies位於伺服器端,persistent cookie位於客戶端,可是session又是以cookie為基礎的,明白的兩者之間的聯系和區別,我們就不難選擇合適的技術來開發WEB service了。
(1)
session總是放在伺服器上的,每個客戶會跟一個sessionID對應。因為HTTP是無連接的,如何區分同一個客戶的多次請求呢,就需要客戶端每次發請求的時候,發送相應的sessionID。
通常情況下,sessionID在客戶端以cookie的形式保存。如果瀏覽器靜止了cookie,客戶端再向伺服器發請求的時候,就不會發送sessionID,因此伺服器就會將這個請求作為一個新客戶,所以就會出現session值丟失的假象。
這時候出現一個問題,如果客戶瀏覽器不支持cookie,怎麼辦?J2EE提供的另一個辦法就是URL重寫,寫超鏈接的時侯,總是用response.encodeURL(url),連接就會變成*.jsp?sessionID=......,完成了原來用cookie完成的功能。
J2EE建議,不論客戶瀏覽器是否支持cookie,伺服器端編程都建議使用URL重寫。
(2)
web上用的都是非連接的網路協議
session 是存在伺服器上的
每個session有一個唯一的session ID(為了標識他是那個客戶端的)
在啟動session的同時,會在客戶端生成cookie,伺服器把session ID加到cookie中
每次伺服器和客戶端交互的時候,就是從cookie中取得session ID 來定位伺服器上的session
這樣只要你的cookie不過期,伺服器上有你的session,就不會出問題
(3)
JSP實現在瀏覽器關閉cookies情況下的會話管理
通常,會話管理是通過伺服器將 Session ID 作為一個 cookie 存儲在用戶的 Web 瀏覽器中來唯一標識每個用戶會話。如果瀏覽器不支持 cookies,或者將瀏覽器設置為不接受 cookies,我們可以通過 URL 重寫來實現會話管理。
實質上 URL 重寫是通過向 URL 連接添加參數,並把 session ID 作為值包含在連接中。然而,為使這生效,你需要為你的 servlet 響應部分的每個連接添加 session ID 。
把 session ID 加到一個連接可以使用一對方法來簡化:response.encodeURL() 使 URL 包含 session ID,如果你需要使用重定向,可以使用 response.encodeRedirectURL () 來對 URL 進行編碼。
encodeURL () 及 encodeRedirectedURL () 方法首先判斷 cookies 是否被瀏覽器支持;如果支持,則參數 URL 被原樣返回,session ID 將通過 cookies 來維持。
來看下面的例子,兩個 JSP 文件:hello1.jsp 和 hello2.jsp,及它們之間的影響。我們在 hello1.jsp 中簡單的創建一個會話,並在 session 中存儲一個對象實例。接著用戶可以點擊頁面的連接到達 hello2.jsp。在 hello2.jsp 中,我們從 session 中獲取原先放置的對象並顯示它的內容。注意,我們在 hello1.jsp 中調用了 encodeURL() 方法來獲得 hello2.jsp 的鏈接,使得在瀏覽器停用 cookies 的情況下,session ID 自動添加到 URL,hello2.jsp 仍能得到 session 對象。
首先在啟用 cookies 的情況下運行。然後關閉對 cookie 的支持,重啟瀏覽器,再運行一次。每次你都可以看到會話管理在起作用,並能在頁之間傳遞信息。
注意,如果你想讓這個例子能在關閉了 cookies 的瀏覽器中工作,你的 JSP 引擎必須支持 URL 重寫。
『玖』 簡述cookies和session的區別
1、cookie 和session的區別是:cookie數據保存在客戶端,session數據保存在伺服器端。
2、兩個都可以用來存私密的東西,同樣也都有有效期的說法,區別在於session是放在伺服器上的,過期與否取決於服務期的設定,cookie是存在客戶端的,過去與否可以在cookie生成的時候設置進去。
(1)、cookie數據存放在客戶的瀏覽器上,session數據放在伺服器上 ;
(2)、cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙,如果主要考慮到安全應當使用session ;
(3)、session會在一定時間內保存在伺服器上。當訪問增多,會比較佔用你伺服器的性能,如果主要考慮到減輕伺服器性能方面,應當使用COOKIE ;
(4)、單個cookie在客戶端的限制是3K,就是說一個站點在客戶端存放的COOKIE不能3K;
(5)、所以將登陸信息等重要信息存放為SESSION;其他信息如果需要保留,可以放在COOKIE中。
3、cookie和session的共同之處在於:cookie和session都是用來跟蹤瀏覽器用戶身份的會話方式。
4、cookie 是一種發送到客戶瀏覽器的文本串句柄,並保存在客戶機硬碟上,可以用來在某個WEB站點會話間持久的保持數據。
『拾』 session和cookie的區別和聯系是什麼
關於兩者的一些區別,根據自己的理解和網路技術人員的分享,回答如此。
1、存儲位置不同
cookie的數據信息存放在客戶端瀏覽器上。
session的數據信息存放在伺服器上。
2、存儲容量不同
單個cookie保存的數據<=4KB,一個站點最多保存20個Cookie。
對於session來說並沒有上限,但出於對伺服器端的性能考慮,session內不要存放過多的東西,並且設置session刪除機制。
3、存儲方式不同
cookie中只能保管ASCII字元串,並需要通過編碼方式存儲為Unicode字元或者二進制數據。
session中能夠存儲任何類型的數據,包括且不限於string,integer,list,map等。
4、隱私策略不同
cookie對客戶端是可見的,別有用心的人可以分析存放在本地的cookie並進行cookie欺騙,所以它是不安全的。
session存儲在伺服器上,對客戶端是透明對,不存在敏感信息泄漏的風險。
5、有效期上不同
開發可以通過設置cookie的屬性,達到使cookie長期有效的效果。
session依賴於名為JSESSIONID的cookie,而cookie JSESSIONID的過期時間默認為-1,只需關閉窗口該session就會失效,因而session不能達到長期有效的效果。
6、伺服器壓力不同
cookie保管在客戶端,不佔用伺服器資源。對於並發用戶十分多的網站,cookie是很好的選擇。
session是保管在伺服器端的,每個用戶都會產生一個session。假如並發訪問的用戶十分多,會產生十分多的session,耗費大量的內存。
7、瀏覽器支持不同
假如客戶端瀏覽器不支持cookie:
cookie是需要客戶端瀏覽器支持的,假如客戶端禁用了cookie,或者不支持cookie,則會話跟蹤會失效。關於WAP上的應用,常規的cookie就派不上用場了。
運用session需要使用URL地址重寫的方式。一切用到session程序的URL都要進行URL地址重寫,否則session會話跟蹤還會失效。
假如客戶端支持cookie:
cookie既能夠設為本瀏覽器窗口以及子窗口內有效,也能夠設為一切窗口內有效。
session只能在本窗口以及子窗口內有效。
8、跨域支持上不同
cookie支持跨域名訪問。
session不支持跨域名訪問