這篇文章主要講解了“Java Session和Cookie的區(qū)別是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java Session和Cookie的區(qū)別是什么”吧!
獨山子網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),獨山子網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為獨山子近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的獨山子做網(wǎng)站的公司定做!
Session的概念
Session 是存放在服務(wù)器端的,類似于Session結(jié)構(gòu)來存放用戶數(shù)據(jù),當(dāng)瀏覽器 第一次發(fā)送請求時,服務(wù)器自動生成了一個Session和一個Session ID用來唯一標(biāo)識這個Session,并將其通過響應(yīng)發(fā)送到瀏覽器。
當(dāng)瀏覽器第二次發(fā)送請求,會將前一次服務(wù)器響應(yīng)中的Session ID放在請求中一并發(fā)送到服務(wù)器上,服務(wù)器從請求中提取出Session ID,并和保存的所有Session ID進(jìn)行對比,找到這個用戶對應(yīng)的Session。
一般瀏覽器提供了兩種方式來保存,還有一種是程序員使用html隱藏域的方式自定義實現(xiàn):
1)使用Cookie來保存,這是最常見的方法,本文“記住我的登錄狀態(tài)”功能的實現(xiàn)正式基于這種方式的。服務(wù)器通過設(shè)置Cookie的方式將Session ID發(fā)送到瀏覽器。如果我們不設(shè)置這個過期時間,那么這個Cookie將不存放在硬盤上,當(dāng)瀏覽器關(guān)閉的時候,Cookie就消失了,這個Session ID就丟失了。如果我們設(shè)置這個時間為若干天之后,那么這個Cookie會保存在客戶端硬盤中,即使瀏覽器關(guān)閉,這個值仍然存在,下次訪問相應(yīng)網(wǎng)站時,同 樣會發(fā)送到服務(wù)器上。
2)使用URL附加信息的方式,也就是像我們經(jīng)??吹絁SP網(wǎng)站會有aaa.jsp?JSESSIONID=*一樣的。這種方式和第一種方式里面不設(shè)置Cookie過期時間是一樣的。
3)第三種方式是在頁面表單里面增加隱藏域,這種方式實際上和第二種方式一樣,只不過前者通過GET方式發(fā)送數(shù)據(jù),后者使用POST方式發(fā)送數(shù)據(jù)。但是明顯后者比較麻煩。
會話(Session)跟蹤
會話,指用戶登錄網(wǎng)站后的一系列動作,比如瀏覽商品添加到購物車并購買。會話(Session)跟蹤是Web程序中常用的技術(shù),用來跟蹤用戶的整個會話。常用的會話跟蹤技術(shù)是Cookie與Session。Cookie通過在客戶端記錄信息確定用戶身份,Session通過在服務(wù)器端記錄信息確定用戶身份。
Session和Cookie的區(qū)別與聯(lián)系?
Cookie和Session區(qū)別
cookie存儲在客戶端(瀏覽器),session存儲在服務(wù)端,簡 單的說,當(dāng)你登錄一個網(wǎng)站的時候,如果web服務(wù)器端使用的是session,那么所有的數(shù)據(jù)都保存在服務(wù)器上面,客戶端每次請求服務(wù)器的時候會發(fā)送 當(dāng)前會話的sessionid,服務(wù)器根據(jù)當(dāng)前sessionid判斷相應(yīng)的用戶數(shù)據(jù)標(biāo)志,以確定用戶是否登錄,或具有某種權(quán)限。
由于數(shù)據(jù)是存儲在服務(wù)器 上面,所以你不能偽造,但是如果你能夠獲取某個登錄用戶的sessionid,用特殊的瀏覽器偽造該用戶的請求也是能夠成功的。sessionid是服務(wù) 器和客戶端鏈接時候隨機(jī)分配的,一般來說是不會有重復(fù),但如果有大量的并發(fā)請求,也不是沒有重復(fù)的可能性。
Session與Cookie聯(lián)系
Cookies是屬于Session對象的一種。但有不同,Cookies不會占服務(wù)器資源,是存在客服端內(nèi)存或者一個cookie的文本文件中;而“Session”則會占用服務(wù)器資源。所以,盡量不要使用Session,而使用Cookies。
但是我們一般認(rèn)為cookie是不可靠的,session是可靠地,但是目前很多著名的站點也都以來cookie。有時候為了解決禁用cookie后的頁面處理,通常采用url重寫技術(shù),調(diào)用session中大量有用的方法從session中獲取數(shù)據(jù)后置入頁面。
Cookies與Session的應(yīng)用場景
Cookies的安全性能一直是倍受爭議的。雖然Cookies是保存在本機(jī)上的,但是其信息的完全可見性且易于本地編輯性,往往可以引起很多的安全問題。所以Cookies到底該不該用,到底該怎樣用,就有了一個需要給定的底線。
1)session
登陸驗證信息。一般采用Session(“Logon”)=true or false的形式。 用戶的各種私人信息,比如姓名等,某種情況下,需要保存在Session里 需要在頁面間傳遞 的內(nèi)容信息,比如調(diào)查工作需要分好幾步。每一步的信息都保存在Session里,最后在統(tǒng)一更 新到數(shù)據(jù)庫。
2)cookie
判斷用戶是否登陸過網(wǎng)站,以便下次登錄時能夠直接登錄。如果我們刪除cookie,則每次登 錄必須從新填寫登錄的相關(guān)信息。 另一個重要的應(yīng)用是“購物車”中類的處理和設(shè)計。用戶可能在一段時間內(nèi)在同一家網(wǎng)站的不同 頁面選擇不同的商品,可以將這些信息都寫入cookie,在最后付款時從cookie中提取這些信 息,當(dāng)然這里面有了安全和性能問題需要我們考慮了。
session共享
對于多網(wǎng)站(同一父域不同子域)單服務(wù)器,我們需要解決的就是來自不同網(wǎng)站之間SessionId的共享。由于域名不同(blog.yoodb.com和daohang.yoodb.com),而SessionId又分別儲存在各自的cookie中,因此服務(wù)器會認(rèn)為對于兩個子站的訪問,是來自不同的會話。
解決的方法是通過修改cookies的域名為父域名達(dá)到cookie共享的目的,從而實現(xiàn)SessionId的共享。帶來的弊端就是,子站間的cookie信息也同時被共享了。
cookie典型應(yīng)用
1)判斷用戶是否登陸過網(wǎng)站,以便下次登錄時能夠直接登錄。如果我們刪除cookie,則每次登錄必須從新填寫登錄的相關(guān)信息。
2)在線商城“購物車”中處理和設(shè)計。用戶可能在一段時間內(nèi)在同一家網(wǎng)站的不同頁面選擇不同的商品,可以將這些信息都寫入cookie,在最后付款時從cookie中提取這些信息,當(dāng)然這里面需要考慮安全和性能問題。
感謝各位的閱讀,以上就是“Java Session和Cookie的區(qū)別是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Java Session和Cookie的區(qū)別是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
當(dāng)前標(biāo)題:JavaSession和Cookie的區(qū)別是什么
文章位置:http://jinyejixie.com/article32/posisc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、、企業(yè)網(wǎng)站制作、建站公司、ChatGPT、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)