日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【面试题】CookieSession

發(fā)布時間:2025/1/21 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【面试题】CookieSession 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【面試題】Cookie&Session

什么是Cookie

Cookie實際上是一小段的文本信息。客戶端請求服務(wù)器,如果服務(wù)器需要記錄該用戶的狀態(tài),就使用response向客戶端瀏覽器辦法一個cookie。客戶端瀏覽器會把cookie保存起來。當瀏覽器再請求該網(wǎng)站時,瀏覽器把請求的網(wǎng)址連同該Cookie一同提交給服務(wù)器,服務(wù)器檢查該cookie,以此來辨認用戶狀態(tài),服務(wù)器還可以根據(jù)需要修改cookie的內(nèi)容。
Cookie機制
在程序中,會話跟蹤是很重要的事情。理論上,一個用戶的所有請求操作都應該屬于同一個會話,而另一個用戶的所有請求操作則應該屬于另一個會話,二者不能混淆。例如,用戶A在超市購買的任何商品都應該放在A的購物車內(nèi),不論是用戶A什么時間購買的,這都是屬于同一個會話的,不能放入用戶B或用戶C的購物車內(nèi),這不屬于同一個會話。而web應用程序是使用HTTP協(xié)議傳輸數(shù)據(jù)的,HTTP協(xié)議是無狀態(tài)的協(xié)議。一旦數(shù)據(jù)交換完畢,客戶端與服務(wù)器端的連接就會關(guān)閉,再次交換數(shù)據(jù)需要建立新的連接,這就意味著服務(wù)器無法從連接上跟蹤會話,即用戶A購買了一件商品放入購物車內(nèi),當再次購買商品時服務(wù)器已經(jīng)無法判斷該購買行為是屬于用戶A的會話還是用戶B的會話了,要跟蹤該會話,必須引入一種機制,Cookie就是這樣的一種機制,它可以彌補HTTP協(xié)議無狀態(tài)的不足,在Session出現(xiàn)之前,基本上所有的網(wǎng)站都采用Cookie來跟蹤會話。
什么是Session
Session是另一種記錄客戶狀態(tài)的機制,不同的是Cookie保存在客戶端瀏覽器中,而Session保存在服務(wù)器上。客戶端瀏覽器訪問服務(wù)器的時候,服務(wù)器把客戶端信息以某種形式記錄在服務(wù)器上,這就是Session。客戶端瀏覽器再次訪問時只需要從該Session中查找該客戶的狀態(tài)就可以了。如果說Cookie機制是通過檢查客戶身上的通行證來確定客戶身份的話,那么Session機制就是通過檢查服務(wù)器上的客戶明細表來確認客戶身份。Session相當于程序在服務(wù)器上建立的一份客戶檔案,客戶來訪的時候只需要查詢客戶檔案表就可以了。

Session機制

除了使用Cookie,web應用程序中還經(jīng)常使用Session來記錄客戶端狀態(tài)。Session是服務(wù)器端使用的一種記錄客戶端狀態(tài)的機制,使用上比Cookie簡單一些,相應的也增加了服務(wù)器的存儲壓力。
如何利用Cookie實現(xiàn)自動登錄
當用戶在某個網(wǎng)站注冊后就會收到一個唯一用戶ID的Cookie.客戶后來重新連接時,這個用戶ID會自動返回,服務(wù)器對它進行檢查,確定它是否為注冊用戶且選擇了自動登錄,從而使用戶無需給出明確的用戶名和密碼,就可以訪問服務(wù)器上的資源。

保存Session id有幾種方法

保存session id的方式可以采用cookie,這樣在交互過程中瀏覽器可以自動地按照規(guī)則把這個標識發(fā)送給服務(wù)器。

由于cookie可以被人為禁止,必須有其他的機制以便在cookie被禁止的時候仍然能夠把Session id傳遞會服務(wù)器,經(jīng)常采用的一種技術(shù)叫做URL重寫,就是把session id附加在URL路徑的后面,附加的方式也有兩種,一種是作為URL路徑的附加信息,另一種是作為查詢字符串附加在URL后面。網(wǎng)絡(luò)在整個交互過程張總始終保持狀態(tài),就必須在每個客戶端可能請求的路徑后面都包含這個session id。

另一種技術(shù)叫做表單隱藏字段。就是服務(wù)器會自動修改表單,添加一個隱藏字段,以便在表單提交時能夠把session id傳遞回服務(wù)器。

session什么時候被創(chuàng)建

一個常見的錯誤就是以為session在有客戶端訪問時就被創(chuàng)建,然而事實是直到某server端程序(如servlet)調(diào)用HttpServletRequest.getSession(true)這樣的語句時才會被創(chuàng)建。

Session什么時候被刪除

程序調(diào)用HttpSession.invalidate()。

距離上一次收到客戶端發(fā)送的session id時間間隔超過了session的最大有效時間。

服務(wù)器進程被停止。

注意:關(guān)閉瀏覽器只會使存儲在客戶端瀏覽器內(nèi)存中的session cookie失效,不會使服務(wù)器端的session對象失效。

cookie機制和session機制的區(qū)別

具體來說cookie機制采用的是在客戶端保持狀態(tài)的方案,而session機制采用的是在服務(wù)器端保持狀態(tài)的方案。同時我們也看到,由于在服務(wù)器端保持狀態(tài)的方案在客戶端也需要保存一個標識,所以session機制可能需要借助于cookie機制來達到保存標識的目的,但實際上還有其他選擇。

總結(jié)

以上是生活随笔為你收集整理的【面试题】CookieSession的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。