内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Tomcat中的Session與Cookie深入講解-創(chuàng)新互聯(lián)

前言

創(chuàng)新互聯(lián)主要從事成都網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)圖木舒克,十載網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108

HTTP 是一種無狀態(tài)通信協(xié)議,每個請求之間相互獨立,服務(wù)器不能識別曾經(jīng)來過的請求。而對于 Web 應(yīng)用,它的活動都是依賴某個狀態(tài)的,比如用戶登錄,此時使用 HTTP 就需要它在一次登錄請求后,有為后續(xù)請求提供已登錄信息的能力。本文首發(fā)于公眾號頓悟源碼.

解決辦法就是使用 Cookie,它由服務(wù)器返回給瀏覽器,瀏覽器緩存并在每次請求時將 cookie 數(shù)據(jù)提交到服務(wù)器。Cookies 在請求中以明文傳輸,且大小限制 4KB,顯然把所有狀態(tài)數(shù)據(jù)保存在瀏覽器是不靠譜的,主流做法是:

  1. 瀏覽器發(fā)出第一個請求時,服務(wù)器為用戶分配一個唯一標(biāo)識符,返回并存入瀏覽器的 Cookies 中
  2. 服務(wù)器內(nèi)部維護(hù)一個全局的請求狀態(tài)庫,并使用生成的唯一標(biāo)識符關(guān)聯(lián)每個請求的狀態(tài)信息
  3. 瀏覽器后續(xù)發(fā)出的請求,都將唯一標(biāo)識符提交給服務(wù)器,以便獲取之前請求的狀態(tài)信息

為了方便管理,服務(wù)器把整個過程稱為會話,并抽象成一個 Session 類,用于識別和存儲有關(guān)該用戶的信息或狀態(tài)。
接下來,將通過會話標(biāo)識符的解析和生成,Session 的創(chuàng)建、銷毀和持久化等問題,分析 Tomcat 的源碼實現(xiàn),版本使用的是 6.0.53。

1. 解析會話標(biāo)識符

Cookie 作為最常用的會話跟蹤機(jī)制,所有的 Servlet 容器都支持,Tomcat 也不例外,在 Tomcat 中,表示存儲會話標(biāo)識符的 cookie 的標(biāo)準(zhǔn)名字是 JSESSIONID。

如果如果瀏覽器不支持 Cookie,也可以使用以下辦法,記錄標(biāo)識符:

  • URL 重寫: 作為路徑參數(shù)包含到 url 中,如 /path;JSESSIONID=xxx
  • URL 請求參數(shù): 將會話唯一標(biāo)識作為查詢參數(shù)添加到頁面所有鏈接中,如 /path?JSESSIONID=xxx
  • FORM 隱藏字段: 表單中使用一個隱藏字段存儲唯一值,隨表單提交到服務(wù)器

Tomcat 就實現(xiàn)了從 URL 重寫路徑和 Cookie 中提取 JSESSIONID。在分析源碼之前,首先看下設(shè)置 Cookie 的響應(yīng)和帶 Cookie 的請求它們頭域的關(guān)鍵信息:

// 設(shè)置 Cookie
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=56AE5B92C272EA4F5E0FBFEFE6936C91; Path=/examples
Date: Sun, 12 May 2019 01:40:35 GMT

// 提交 Cookie
GET /examples/servlets/servlet/SessionExample HTTP/1.1
Host: localhost:8080
Cookie: JSESSIONID=56AE5B92C272EA4F5E0FBFEFE6936C91

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文標(biāo)題:Tomcat中的Session與Cookie深入講解-創(chuàng)新互聯(lián)
分享路徑:http://www.rwnh.cn/article48/pdpep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT動態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站網(wǎng)站設(shè)計公司、網(wǎng)站制作、品牌網(wǎng)站制作

廣告

聲明:本網(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)

成都定制網(wǎng)站建設(shè)
耿马| 水城县| 苏尼特左旗| 东源县| 东乡县| 柳河县| 大化| 越西县| 房产| 秦安县| 璧山县| 隆子县| 德令哈市| 肃宁县| 孟村| 曲水县| 咸阳市| 随州市| 湾仔区| 平安县| 北京市| 卫辉市| 平阳县| 且末县| 辽阳县| 潼关县| 定远县| 莎车县| 柞水县| 塔城市| 泸西县| 永德县| 兴义市| 万载县| 石河子市| 五家渠市| 汉源县| 陆丰市| 安西县| 通州区| 华坪县|