安全cookie setSecure详解

http://www.coin163.com/java/docs/201304/d_2775029502.html

  在cas中或其他web开发中,会碰到安全cookie的概念,因为CAS中TGT是存放在安全cookie中的。下面是安全cookie 的理解:

    Set-Cookie 的 secure 属性就是处理这方面的情况用的,它表示创建的 cookie 只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以绝对不会被窃听到。

     在setSecure(true); 的情况下,只有https才传递到服务器端。http是不会传递的。

    j2ee servlet的接口中也定义了Cookie对象,也有其方法setSecue(false);

   关于setSecure的问题,在http连接下:
  当setSecure(true)时,浏览器端的cookie会不会传递到服务器端?
  当setSecure(true)时,服务器端的cookie会不会传递到浏览器端?
   答案:1)不会 ; 2)会

    原理:服务器端的Cookie对象是java中的对象,请不要和浏览器端的cookie文件混淆了。服务器端的Cookie对象是方便java程序员包装一个浏览器端的cookie文件。一旦包装好,就放到response对象中,在转换成http头文件。在传递到浏览器端。这时就会在浏览器的临时文件中创建一个cookie文件。
     但我们再次访问网页时,才查看浏览器端的cookie文件中的secure值,如果是true,但是http连接。这个cookie就不会传到服务器端。当然这个过程对浏览器是透明的。其他人是不会知道的。

    总结如下:cookie的secure值为true时,在http中是无效的;在https中才有效。

 

你可能感兴趣的:(Servlets)