Session與Cookie

深入理解Session與Cookie

Session與Cookie的作用都是為了保持訪問用戶與后端服務(wù)器的交互狀態(tài)。它們有各自的有點(diǎn),也有各自的缺陷。Cookie會隨著個數(shù)的增多和訪問量的增加,它占用的網(wǎng)絡(luò)帶寬也很大,Session致命缺點(diǎn)在于多臺服務(wù)器之間的共享。

Cookie

屬性項(xiàng) 屬性項(xiàng)介紹
NAME-VALUE 注意這里的NAME不能和其他屬性項(xiàng)的名字一樣
Expires 過期時間,在設(shè)置的某個時間點(diǎn)后該Cookie就會失效
Domain 生成該Cookie的域名
Path 該Cookie是在當(dāng)前哪個路勁下生成的
Secure 如果設(shè)置了這個屬性,那只會在SSH連接時才會回傳該Cookie

當(dāng)前Cookie有兩個版本:Version 0 和Version 1,它們有兩種設(shè)置響應(yīng)頭的標(biāo)識,分別是“Set-Cookie”和“Set-Cookie2”。這兩個版本的屬性項(xiàng)有些不同。
Version 0 屬性項(xiàng)介紹

屬性項(xiàng) 屬性項(xiàng)介紹
NAME-VALUE 注意這里的NAME不能和其他屬性項(xiàng)的名字一樣
Expires 過期時間,在設(shè)置的某個時間點(diǎn)后該Cookie就會失效
Domain 生成該Cookie的域名
Path 該Cookie是在當(dāng)前哪個路勁下生成的
Secure 如果設(shè)置了這個屬性,那只會在SSH連接時才會回傳該Cookie

Version 1 與Version 0 中設(shè)置的Header頭的標(biāo)識符是不同的,我們常用的是Set-Cookie:userName="";Domain="",這是Version0的形式。針對Set-Cookie2是這樣設(shè)置的:Set-Cookie2:userName="";Domain="";Max-Age=1000。但是在Java Web的Servlet規(guī)范中并不支持Set-Cookie2響應(yīng)頭。

String getCookie(Cookie[] cookies, String key) {
    if (cookies != null) {
        for (Cookie cookie : cookies) {
            if (cookie.getName().equals(key)) {
                return cookie.getValue();
            }
        }
    }
    return null;
}

    public void doGet(HttpServletRequest request, HttpServletResponse response) {
    Cookie[] cookies = request.getCookies();
    String userName = getCookie(cookies, "userName");
    String userAge = getCookie(cookies, "userAge");
    if (userName == null) {
        response.addCookie(new Cookie("userName", "zft"));
    }
    if (userAge == null) {
        response.addCookie(new Cookie("userAge", "26"));
    }
    response.getHeader("Set-Cookie");
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 此文知識來自于:《深入分析Java_Web技術(shù)》第十章現(xiàn)代session與cookie的應(yīng)用 本章概要:當(dāng)我們的一...
    李文文丶閱讀 1,585評論 0 4
  • 目錄Cookie機(jī)制什么是CookieCookie的不可跨域名性Unicode編碼:保存中文BASE64編碼:保存...
    Tomatoro閱讀 17,065評論 7 186
  • 會話(Session)跟蹤是Web程序中常用的技術(shù),用來跟蹤用戶的整個會話。常用的會話跟蹤技術(shù)是Cookie與Se...
    chinariver閱讀 5,792評論 1 49
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評論 19 139
  • 想來是最近煩憂過甚,致使今日寫下,望,忘。讓我想想,是什么時候我們做起朋友了呢?我思來想去,約計(jì)是開學(xué)幾日后,一起...
    似思斯閱讀 267評論 0 0

友情鏈接更多精彩內(nèi)容