http請求狀態保持的四種方法


Cookie
cookie:聽起來很高大上的亞子,其實呢他就是一段文本而已,明文。存儲在客戶端的瀏覽器的內存或者磁盤里面。而且每個界面都會有自己的cookie,主要存儲的是和網站相關的文本字符串。主要以鍵值對的方式存在。
cookie使用的原理是什么呢?

 

cookie的存儲位置及過期時間設置

如果我們指定了cookie的過期時間,那么存儲字啊客戶端的磁盤上面,如果我們沒有指定cookie的過期時間,那么存儲在客戶端瀏覽器的內存當中。
當然如果你設置了過期時間,那么cookie按照你所設置的進行失效處理,當你沒有設置過期時間時,那么就會在瀏覽器會話結束后失效

 

什么時候適合使用cookie呢?

 

購物車、用戶Id等。
例:我們在用戶登錄的頁面將用戶名添加到cookie進行存儲:

Response.Cookies["userid"].Value = "123456";

然后在另一個頁面進行獲取該用戶Id:

id=Request.Cookies["userid"].Value;

當然除了這些cookie還可以設置過期時間、跨域等。

那我們可以無限制的存儲cookie嗎?

大多數瀏覽器最大為4K的cookie,所以我們只會用cookie存儲少量的數據或者存儲用戶ID的標識符等。 大多數瀏覽器最多存儲一個網站創建20個cookie,如果視圖創建更多的,那么舊的就會被刪除,有些瀏覽器會對所有站點的cookie總數做出絕對限制,通常為300個。而且cookie存儲的值其實是不安全的。

 

Session
session:是一個服務端的保護機制,可以把各種類型的數據存儲在session中,這些數據是存儲在服務端的開辟的一塊內存當中的,這塊內存就是session。session是需要借助cookie才可以達到想要的保存標識的目的
session使用的原理:

session的存儲都是有自己的一個sessionid的,也是為了區分哪個用戶的session變量,通過用戶的瀏覽器在訪問的時候返回給服務器。
下面的這個舉例是通過cookie來實現的的session,當然當瀏覽器不支持cookie時,可以使用URL重寫來實現。

使用URL重寫與上面原理不同的就是,當執行到response redirect時,服務器是將sessionid直接附加在URL路徑的后面。

 

session的過期時間設置

Session默認的過期時間是20min,過期時間為滑動過期時間。可以通過Session的屬性Timeout來修改。
當瀏覽器關閉而且不到過期時間時,SessionId會沒有(因為seesionid是以cookie發送到瀏覽器的,並且沒有指定過期時間,所以瀏覽器一關,那么cookie就會被刪除,自然sessionId也就沒了),但是內存里面還是該數據了,不過沒有SessionId一樣不能得到Session的值。最后20分鍾之后服務器也會把Session內容刪除掉

 

隱藏域
什么是隱藏域呢?
其實簡單來說就是我在一個頁面當中設置了一個隱藏的控件,用戶看不到。我們在表單中插入隱藏域染回收集或者發送信息,讓被處理的表單可以使用。當瀏覽器點擊提交表單的時候,然后隱藏域里面的信息一起發送到服務器。

具體的作用詳解

URL重寫
URL重寫就是首先獲得一個進入的URL請求然后把它重新寫成網站可以處理的另一個URL的過程。舉個例子來說,如果通過瀏覽器進來的URL是“UserProfile.aspx?ID=1”那么它可以被重寫成 “UserProfile/1.aspx”,這樣的URL,這樣的網址可以更好的被網站所閱讀。一般情況下,在瀏覽器不支持cookie時,會使用這種方法。比如我們常常用的分頁就是URL重寫的一種體現

 


————————————————
版權聲明:本文為CSDN博主「make_1998」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/make_1998/article/details/103757846


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM