COOKIE和SESSION有什么區別

時間 2022-09-21 01:50:06

1樓:生活簡單貳

付費內容限時免費檢視

回答您好,很高興回答您的問題,正在整理,請稍後

您好,很高興回答你的問題,cookie資料儲存在客戶端,session資料儲存在伺服器端。簡 單的說,當你登入乙個**的時候,如果web伺服器端使用的是session,那麼所有的資料都儲存在伺服器上面,客戶端每次請求伺服器的時候會傳送 當前會話的sessionid,伺服器根據當前sessionid判斷相應的使用者資料標誌,以確定使用者是否登入,或具有某種許可權。由於資料是儲存在伺服器 上面,所以你不能偽造,但是如果你能夠獲取某個登入使用者的sessionid,用特殊的瀏覽器偽造該使用者的請求也是能夠成功的。

另外cookies是屬於session物件的一種。但有不同,cookies不會佔伺服器資源,是存在客服端記憶體或者乙個cookie的文字檔案中;而「session」則會占用伺服器資源。所以,盡量不要使用session,而使用cookies。

但是我們一般認為cookie是不可靠的,session是可靠地,但是目前很多著名的站點也都以來cookie。有時候為了解決禁用cookie後的頁面處理,通常採用url重寫技術,呼叫session中大量有用的方法從session中獲取資料後置入頁面。 希望能幫助到您,謝謝啦,祝您生活愉快!

如果覺得回答滿意可以幫忙點個贊~

2樓:小傻

jsp中session與cookie的區別

1、session儲存在伺服器,客戶端不知道其中的資訊;cookie儲存在客戶端,伺服器能夠知道其中的資訊。

2、session中儲存的是物件,cookie中儲存的是字串。

3、session不能區分路徑,同乙個使用者在訪問乙個**期間,所有的session在任何乙個地方都可以訪問到。而cookie中如果設定了路徑引數,那麼同乙個**中不同路徑下的cookie互相是訪問不到的。

4、session需要借助cookie才能正常工作。如果客戶端完全禁止cookie,session將失效。 但是如果伺服器端啟用了url編碼,也就是用

urlencoder.encode()把所有的url編碼了,則會在url後面出現如下類似的東西

伺服器通過這個進行session的判斷

5、session在使用者會話結束後就會關閉了,但cookie因為儲存在客戶端,可以長期儲存

6、cookie:是服務端向客戶端寫入的小的片段資訊。cookie資訊儲存在伺服器快取區,不會在客戶端顯現。

當你第一次登陸乙個**,伺服器向你的機器寫得片段資訊。你可以在internet選項中找到存放cookie的資料夾。如果不刪除,cookie就一直在這個資料夾中。

3樓:rjgw588老巢

一直覺得這種經典必考面試題真的不好說標準答案。我的答案是,兩者沒關係。

cookie和session的區別是什麼?

4樓:冬冬琪琪劉劉

區別如下:

1、資料儲存位置

cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。

2、安全性

cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙,考慮到安全應當使用session。

3、伺服器效能

session會在一定時間內儲存在伺服器上。當訪問增多,會比較占用你伺服器的效能,考慮到減輕伺服器效能方面,應當使用cookie。

4、資料大小

單個cookie儲存的資料不能超過4k,很多瀏覽器都限制乙個站點最多儲存20個cookie。

5、資訊重要程度

可以考慮將登陸資訊等重要資訊存放為session,其他資訊如果需要保留,可以放在cookie中。

5樓:生活簡單貳

回答您好,很高興回答您的問題,正在整理,請稍後您好,很高興回答你的問題,cookie資料儲存在客戶端,session資料儲存在伺服器端。簡 單的說,當你登入乙個**的時候,如果web伺服器端使用的是session,那麼所有的資料都儲存在伺服器上面,客戶端每次請求伺服器的時候會傳送 當前會話的sessionid,伺服器根據當前sessionid判斷相應的使用者資料標誌,以確定使用者是否登入,或具有某種許可權。由於資料是儲存在伺服器 上面,所以你不能偽造,但是如果你能夠獲取某個登入使用者的sessionid,用特殊的瀏覽器偽造該使用者的請求也是能夠成功的。

另外cookies是屬於session物件的一種。但有不同,cookies不會佔伺服器資源,是存在客服端記憶體或者乙個cookie的文字檔案中;而「session」則會占用伺服器資源。所以,盡量不要使用session,而使用cookies。

但是我們一般認為cookie是不可靠的,session是可靠地,但是目前很多著名的站點也都以來cookie。有時候為了解決禁用cookie後的頁面處理,通常採用url重寫技術,呼叫session中大量有用的方法從session中獲取資料後置入頁面。

希望能幫助到您,謝謝啦,祝您生活愉快!如果覺得回答滿意可以幫忙點個贊~

更多2條

6樓:易依白

具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。

cookie的優缺點:

優點:極高的擴充套件性和可用性

通過良好的程式設計,控制儲存在cookie中的session物件的大小。

通過加密和安全傳輸技術(ssl),減少cookie被破解的可能性。

只在cookie中存放不敏感資料,即使被盜也不會有重大損失。

控制cookie的生命期,使之不會永遠有效。偷盜者很可能拿到乙個過期的cookie。

缺點:cookie數量和長度的限制。每個domain最多只能有20條cookie,每個cookie長度不能超過4kb,否則會被截掉。

安全性問題。如果cookie被人攔截了,那人就可以取得所有的session資訊。即使加密也與事無補,因為攔截者並不需要知道cookie的意義,他只要原樣**cookie就可以達到目的了。

有些狀態不可能儲存在客戶端。例如,為了防止重複提交表單,我們需要在伺服器端儲存乙個計數器。如果我們把這個計數器儲存在客戶端,那麼它起不到任何作用。

session的優缺點:

優點如果要在諸多web頁間傳遞乙個變數,那麼用session變數要比通過querystring傳遞變數可使問題簡化。

要使web站點具有使用者化,可以考慮使用session變數。你的站點的每位訪問者都有使用者化的經驗,基於此,隨著ldap和諸如ms site

server等的使用,已不必再將所有使用者化過程置入session變數了,而這個使用者化是取決於使用者喜好的。

你可以在任何想要使用的時候直接使用session變數,而不必事先宣告它,這種方式接近於在vb中變數的使用。使用完畢後,也不必考慮將其釋放,因為它將自動釋放。

缺點session變數和cookies是同一型別的。如果某使用者將瀏覽器設定為不相容任何cookie,那麼該使用者就無法使用這個session變數!

當乙個使用者訪問某頁面時,每個session變數的執行環境便自動生成,這些session變數可在使用者離開該頁面後仍保留20分鐘!(事實上,這些變數一直可保留至「timeout」。「timeout」的時間長短由web伺服器管理員設定。

一些站點上的變數僅維持了3分鐘,一些則為10分鐘,還有一些則保留至預設值20分鐘。)所以,如果在session中置入了較大的物件(如ado

recordsets,connections, 等等),那就有麻煩了!隨著站點訪問量的增大,伺服器將會因此而無法正常執行!

因為建立session變數有很大的隨意性,可隨時呼叫,不需要開發者做精確地處理,所以,過度使用session變數將會導致**不可讀而且不好維護。

雖然「你可以在任何想要使用的時候直接使用session變數,而不必事先宣告它,這種方式接近於在vb中變數的使用。使用完畢後,也不必考慮將其釋放,因為它將自動釋放」。但是,「誰」想到那兒呢?

變數的含義是什麼?這些都變得不很清晰。

cookie和session的區別

7樓:育知同創教育

cookie用於互動時存放在客戶端,即使用你臨時資料夾中不存在cookie,但在你的瀏覽器程序中會臨時儲存你的cookie!session是互動時存放在服務端,即使用不儲存,也在服務程序中。

如果你對網頁有互動,伺服器如何在眾多請求中能識別你那是曾經的哪乙個?這依賴於你傳遞上來的cookie,即合沒有任何其他的的互動,在你瀏覽器程序中也必須儲存諸如sessionid之類的cookie!但這個是臨時的,只是為了識別你到底是誰而已。

知道了你是誰,伺服器還需要知道該怎麼做,那麼在伺服器程序中必須存在乙個sessionid,這個與你請求的相對應,然後根據這個才知道你是誰,該怎麼做。

sessionid是你初次請求時由系統生成,隨網頁流儲存在你的瀏覽器程序中,以便你在使用postback等回傳功能時能識別你!要不然,你回傳了,另外乙個請求卻得到你的回傳反應,這有點說不過去吧?

sessionid相當於瀏覽器與服務程序進行了乙個簡單的約定,可以理解為初次伺服器發給你的乙個通行號碼,以後你與伺服器的任何互動都依賴於這個號碼!

而其他的需要長期儲存的一些資訊也在cookie中,如使用者名稱與密碼等等,與這個通訊的結果是相同的。也就是說cookie與session同時存在,分別在客戶端與伺服器!

如果你通過網路嗅探或是其他方式,得到了某乙個瀏覽器正在互動的sessionid以及一些程序中儲存的session資訊,這個資訊在客戶端稱cookie,這伺服器稱session。那麼你可以利用這些資訊進行攻擊。

如,在某台電腦中儲存有某使用者的user與password通行資訊時,你可以將自己的cookie違裝成目標的cookie,然後可以進行登陸,這種攻擊方式叫cookie攻擊!

如果他的這些資訊儲存在了瀏覽器程序中,也可以偽造,這種其實也是cookie攻擊,但由於其不確定性(你還必須拿到sessionid),這種稱為session攻擊。其實說白了,這種方式在伺服器中直接使用的session[「user"]之類的方式取得的,所以偽造時連同sessionid一塊偽造,所以才被稱為session攻擊的。

由於多標籤瀏覽器的存在,還可以進行網頁交叉攻擊!

session和cookie的區別和聯絡是什麼

等汪 具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。區別 session機制 session機制是一種伺服器端的機制,伺服器使用一種類似於雜湊表的結構 也可能就是使用雜湊表 來儲存資訊。作用 伺服器可以利用cookies或session...

cookie的過期和session的超時有什麼區別

session 的過期時間是根據客戶端和服務端是否連線,更準確的說是判斷你的session是否被呼叫,如果你設定30分鐘,在29分鐘的時候又訪問了session資訊,那麼過期時間就會歸零,從新計算30分鐘。cookie則是設定30分鐘,那麼從設定開始計算,30分鐘後,cookie資訊自動銷燬!不管你...

hibernate關於Session和Transaction開啟和提交的方式

載入配置檔案,建立session工廠,獲得乙個session 或者是session hibernatefactory.getsession hibernate中的session.flush和commit的區別 hibernate中 session.gettransaction commit 這句話怎...