客戶端快取機制 Cookie詳解

2022-09-14 22:24:32 字數 2363 閱讀 5602

cookie不是內建物件,所以用的時候需要new出來cookie是由服務端產生的,再傳送給客戶端儲存,它不是內建物件,卻是由服務端產生的,產生完後給了客戶端;

它存在於客戶端,卻不是客戶端產生的,是服務端產生的,產生完後給你了

cookie就是我們所理解的快取,本地快取;

但是它有缺點,比方說我第一次訪問**,我登入了,我的名字叫張三,密碼abc,服務端將我的資訊放到cookie裡面再傳送給客戶端,那我以後確實不需要登入了,我就可以直接在本地讀取賬號密碼登入,這樣就不安全了,萬一別人用你電腦解析破解了。

所以cookie能提高訪問服務端的效率,但是安全性較差!

cookie內部包含乙個key = value,有點像json跟map,既然它不是內建物件,那是誰提供的呢?

是乙個擴充套件類:j**a.servlet.http.cookie物件就是由這個類產生的,類產生物件,這些類跟這些物件的方法:

首先有乙個構造方法,public cookie(string key string value),通過構造方法,你可以寫k你也可以寫v;

string getname(),這個方法用來獲取構造方法裡面的key

string getvalue(),這個就用來獲取裡面的值 value

還有乙個void setmaxage(int expiry),這個方法是設定最大有效期(單位是 秒)該方法說明:

我現在服務端把乙個檔案生成乙個cookie發給客戶端了,但是它有時間限制,比如規定,30分鐘內有效,超過就失效

1.在服務端準備cookie

因為是構造方法,直接賦值即可,這裡我們就模擬使用者名稱=zs

密碼=abc

2.增加cookie

服務端傳送給客戶端需要乙個內建物件:response.addcookie(cookie cookie),把物件放進去即可,比如使用者的資訊做登入儲存賬號密碼的時候用

3.傳送cookie

直接將頁面跳轉(** 重定向都可以),比如說我現在服務端有乙個cookie了,我現在不管用**還是重定向到第二個頁面了,那我第二個頁面就需要獲取該cookie

cookie最終要到客戶端去,所以我們開始傳送cookie到客戶端(** 重定向都可以,總之你跳轉過去就行了):

我這裡讓它跳到了result.jsp頁面了

4.獲取cookie

使用request.getcookie();

因為我們不能獲取單個,所以返回必定是陣列,獲取後我們需要迴圈遍歷出來,這裡就假設result.jsp是客戶端,因為客戶端需要獲取cookie:

因為有key value對,所以我們獲取時候也需要全部獲取並且列印出來,獲取key就cookie.getname(),獲取value也就是值 cookie.getvalue()即可;

假設剛才現在客戶端現在需要訪問服務端,服務端就是我們準備並且增加cookie的那個頁面,在那個頁面上我有重定向,重定向到了客戶端列印輸出了,我們看一下執行結果:

很明顯,我們成功的獲取到了服務端發來的cookie;

下面這個則是jsessionid,每乙個cookies都會有乙個name為jsessionid,它也是有key v 對。

今日感悟:

不要為了取悅他人而自我犧牲,

比如你為了家庭和睦取悅父母,為了寢室團結取悅舍友,為了情侶和諧取悅物件,

這樣你的情緒就會一直被別人所支配,一直活在別人的脅迫之下,到最後你就明白,你所認為的犧牲,

在別人眼裡,其實一文不值

HTTP快取機制 客戶端快取

http快取機制分為兩種,客戶端快取和服務端快取,本文主要對客戶端快取進行簡單的分析。服務端快取又分為 伺服器快取 和 反向 伺服器快取 也叫閘道器快取,比如 nginx反向 squid等 其實廣泛使用的 cdn 也是一種服務端快取,目的都是讓使用者的請求走 捷徑 並且都是快取 檔案等靜態資源。客戶...

安卓客戶端快取機制

在手機客戶端的應用中,如果經常訪問伺服器,那麼不僅伺服器的壓力就會比較大,而且載入慢導致使用者體驗不是很好,現在快取可以解決這一問題,靈活的快取可以說不僅大大減輕了伺服器的壓力,而且因為更快速的使用者體驗而方便了使用者。採用快取,可以進一步大大緩解資料互動的壓力,我們簡略列舉一下快取管理的適用環境 ...

客戶端快取

你的 在併發訪問很大並且無法承受壓力的情況下,你會選擇如何優化?很 多人首先會想從伺服器快取方面著手對程式進行優化,許多不同的伺服器快取方式都有他們自己的特點,像我曾經參與的一些專案中,根據快取的命中率不同使用過 com enterprise libiary caching windows服務,靜態...