国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Cookie 和 session詳解

wow_worktile / 2209人閱讀

摘要:協議是無狀態的,一旦數據交換完畢,客戶端與服務器端的連接就會關閉,再次交換建立新的連接,也就是說,服務器無法跟蹤會話。而和就是用與解決這種問題。值得一提的是是建立在的基礎上創建的。注意在的文件中,設置了的生命周期最長為分鐘。

在將cookie 和 session 之前需要先理解什么是會話
會話:
用戶打開一個瀏覽器,點擊多個超鏈接,訪問多個web資源,然后關閉瀏覽器,整個過程稱為一個會話。
http協議是無狀態的,一旦數據交換完畢,客戶端與服務器端的連接就會關閉,再次交換建立新的連接,也就是說,服務器無法跟蹤會話。而cookie 和 session 就是用與解決這種問題。
1.什么是cookie
cookie是客戶端的技術,程序把每個用戶數據以cookie的形式寫給用戶各自的瀏覽器,當客戶端再次訪問服務器的時候,會帶著各自的Cookie過來,這樣服務器就能處理各自用戶的數據了
1.1. 如何使用cookie

Cookie cookie = new Cookie("name","value"); //創建一個cookie
cookie.setPath("/"); //cookie記得一定要設定路徑,默認是當前的類的路徑,設置/代表是整個web應用。
cookie.setMaxAge(""); //設置有效期限,默認是瀏覽器的進程,也就是瀏覽器關了,就沒了。如果是設置為負數,那么cookie不會被存儲,并且會被刪除。如果設置為0,那么cookie會被刪除。(這些內容在API上描述得非常清楚)
response.addCookie(cookie);//添加cookie,這樣才能回寫給客戶端

以上的內容就是關于如何去使用一個cookie了。
1.2. cookie的細節
根據API的描述,一個cookie最大為4KB.瀏覽器一般只允許存放300個cookie,每個站點最多存放20個Cookie。Cookie被創建的時候默認使用Verssion 0 ,也就是http 1.0
1.2.1 cookie的刪除
在cookie的API中沒有刪除cookie的具體方法,但是我們可以通過設置cookie的生命周期,來講cookie刪除,設置為0代表刪除(詳解自行查看setMaxAge()方法)

cookie.setMaxAge(0);  
如果說不想從request域中獲取cookie,然后將該cookie的生命周期設置為0,可以采用以下這個方法
Cookie cookie = new Cookie("想刪除的cooki名字","value");
cookie.setPath("");//此處路徑必須與想刪除的cookie一致
cookie.setMaxAge(0); 
response.addCookie(cookie);

1.3 cookie的獲取

request.getCookies(); //返回的是cookie的數組

以上就是cookie的常用方法。

1.4 cookie設置注釋

cookie.setComment("comment")

1.5 cookie 設置安全傳輸協議(例如 https ,ssl)

cookie.setSecure(true|false) 默認為false 

1.6 cookie 防止 xss(跨站腳本攻擊) 攻擊

cookie.setHttpOnly(true)  // 高版本的 servlet Api中有提供此方法

當將httpOnly設置為true時,將無法通過js腳本獲取cookie信息。能夠有效的防止xss攻擊

2.什么是session
session是服務端的技術,當瀏覽器第1次訪問web資源的時候,服務器會自動為其創建一個session,并保存在服務器,當需要保存用戶數據的時候,可以將數據寫入session中。當用戶訪問其他程序的時候,就可以直接從session中取值。值得一提的是sesion是建立在cookie的基礎上創建的。

2.1 session實現原理
session的實現原理是建立在給瀏覽器回寫cookie,并且是以JSESSIONID為鍵,但是這個cookie是沒有時間的,也就是說,當你關閉瀏覽器時,代表一個會話結束了,也就是說你的session會被刪除,當你再次訪問服務器的時候,服務器會為你重新創建一個session。

2.2 session的使用

2.2.1 客戶端不禁用cookie的情況

HttpSession session = request.getSession();//客戶端訪問服務器的時候,服務器會自動創建一個session,如果客戶端沒有禁用cookie的話。
String sessionId = session.getId();
Cookie cookie = new Cookie("JSESSIONID",sessionId);
cookie.setPaht("/");
cookie.setMaxAge(30*60);//注意在tomcat的web.xml文件中,設置了session的生命周期最長為30分鐘。
response.addCookie(cookie);
session.setAttribute("key","value");

2.2.2 客戶端禁用cookie的情況

如果客戶端禁用cookie,那么需要調用response的encodeURL("轉發的地址")
HttpSession session = request.getSession();
String url1 = response.encodeURL("xxxx");//注意,調用這個方法之前,必須要先獲取session,(在該方法的API描述得很清楚)
PrintWriter pw = response.getWriter();
pw.write(url1);

2.3 session的一些細節

設置session的生命周期

可以通過設置配置文件的形式,設置session的生命周期;在web.xml文件中添加如下代碼


    30//備注這里是以分鐘為單位


參考以下2篇博文:
https://my.oschina.net/kevina... 深入源碼剖析了session和cookie
http://blog.csdn.net/fangaoxi... 介紹了一些基本的知識

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69841.html

相關文章

  • CookieSession詳解

    摘要:例如要想在多個二級域名中共享,需要設置為頂級域名,這樣就可以在所有二級域名里面或者到這個的值了。頂級域名只能獲取到設置為頂級域名的,設置為其他子級域名的無法獲取。 Cookie和Session詳解 Cookie Cookie只存儲在客服端 Cookie是什么:Cookies是web服務器存放在用戶硬盤的一段文本,Cookies允許一個wen站點在用戶的機器存放一些文本的信息,并可以在以...

    Little_XM 評論0 收藏0
  • 詳解 Cookie Session 關系區別

    摘要:目前大多數的應用都是用實現跟蹤的。的安全性一般,他人可通過分析存放在本地的并進行欺騙。在安全性第一的前提下,選擇更優。考慮到減輕服務器性能方面,應當適時使用。因此,維持一個會話的核心就是客戶端的唯一標識,即。 showImg(https://segmentfault.com/img/bV8riL?w=800&h=444); 在技術面試中,經常被問到說說Cookie和Session的區別...

    microelec 評論0 收藏0
  • cookiesession的使用(詳解

    摘要:什么是用來存儲客戶端的一小段文本是一門客戶端的技術因為是存儲在客戶端瀏覽器中的是為了實現客戶端與服務器端之間的狀態的保持技術,不安全,不要使用存儲敏感信息比如登錄狀態和登錄信息一些敏感的數據應該存儲在服務器端的值從哪里來的當你訪問一個網站這 什么是cookie, 用來存儲客戶端的一小段文本是一門客戶端的技術 因為cookie是存儲在客戶端瀏覽器中的是為了實現 客戶端與服務器端之間的狀態...

    liujs 評論0 收藏0
  • cookiesession詳解

    摘要:所謂的無連接就是服務器收到了客戶端的請求之后,響應完成并收到客戶端的應答之后,即斷開連接。從而節省傳輸時間。協議對事務的處理沒有記憶能力。這種方式某種方面上講解放了服務器,但是卻不利于客戶端與服務器的連接。 session與cookie是什么? session與cookie屬于一種會話控制技術.常用在身份識別,登錄驗證,數據傳輸等.舉個例子,就像我們去超市買東西結賬的時候,我們要拿出我...

    SwordFly 評論0 收藏0
  • 詳解 CookieSession,Token

    摘要:由于是存在客戶端上的,所以瀏覽器加入了一些限制確保不會被惡意使用,同時不會占據太多磁盤空間。簽名是對前兩部分的簽名,防止數據被篡改。的作用最開始的初衷是為了實現授權和身份認證作用的,可以實現無狀態,分布式的應用授權。 前言 無狀態的HTTP協議 很久很久之前, Web基本都是文檔的瀏覽而已。既然是瀏覽, 作為服務器, 不需要記錄在某一段時間里都瀏覽了什么文檔, 每次請求都是一個新的HT...

    Allen 評論0 收藏0

發表評論

0條評論

wow_worktile

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<