cookie中的secure的研究

 但凡做web項目的,或多或少的會接觸cookie。做j2ee也不例外。本人也一直使用,不能說不熟,但今天有人問.setSecure();方法的作用時,還真不敢說出一二來。因爲我沒使用過。只是看書時,有這樣的一句話:
  1.      Set-Cookie 的 secure 屬性就是處理這方面的情況用的,它表示創建的 cookie 只能在 HTTPS 連接中被瀏覽器傳遞到服務器端進行會話驗證,如果是 HTTP 連接則不會傳遞該信息,所以絕對不會被竊聽到

也很好理解:setSecure(true); 的情況下,只有https才傳遞到服務器端。http是不會傳遞的。

做j2ee的人都知道servlet的接口中也定義了Cookie對象,也有其方法setSecue(false);

現在我提出問題:在http連接下
  1.   當setSecure(true)時,瀏覽器端的cookie會不會傳遞到服務器端?
  2.   當setSecure(true)時,服務器端的cookie會不會傳遞到瀏覽器端?
  3. 答案:1)不會 ; 2)會

原理:服務器端的Cookie對象是java中的對象,請不要和瀏覽器端的cookie文件混淆了。服務器端的Cookie對象是方便java程序員包裝 一個瀏覽器端的cookie文件。一但包裝好,就放到response對象中,在轉換成http頭文件。在傳遞到瀏覽器端。這時就會在瀏覽器的臨時文件中 創建一個cookie文件。
         但我們再次訪問網頁時,才查看瀏覽器端的cookie文件中的secure值,如果是true,但是http連接。這個cookie就不會傳到服務器端。當然這個過程對瀏覽器是透明的。其他人是不會知道的。

總結如下:secure值爲true時,在http中是無效的;在https中才有效。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章