首页IT科技my cookie cans(Cookie)

my cookie cans(Cookie)

时间2025-06-15 17:58:38分类IT科技浏览4152
导读:Cookie session的实现原理中,每一个session对象会关联一个sessionid。例如...

Cookie

session的实现原理中             ,每一个session对象会关联一个sessionid             。例如

JSESSIONID=xxxxxxxxxxxxxx 以上的这个键值对其实就是cookie对象 这个cookie保存在浏览器的运行内存                  ,在浏览器不关闭的情况下      ,用户再次发送请求的时候会自动将内存的cookie发送给服务器       ,服务器通过cookie中的的jsessionid的值找到对应的session对象

cookie最终是保存在浏览器客户端上的

可以保存在运行内存中(浏览器只要关闭cookie就消失了) 也可以保存在硬盘文件中                  。(永久保存) 例如:某些网站实现十天内免登录的机制                  ,是在你第一次登录成功时            ,服务器创建了一个cookie对象然后传给浏览器       ,浏览器保存在客户端上                   ,这个cookie对象保存了用户名和密码等信息            ,这个cookie是保存在硬盘文件上的,十天内每次你再次登录时                   ,浏览器都会自动发送一个关联的cookie给服务器                  ,服务器然后获取用户名和密码      。

cookie作用:

cookie进而session机制其实都是保存会话状态 cookie是将会话的状态保存在浏览器上(对象存在客户端) session是将会话状态保存在服务器上(对象存在服务器) cookie其实session的作用差不多,都是将用户第一次登录的信息保存在一个对象当中             ,这个登录其实准确来说是一次请求                  ,发出一次请求后      ,后端创建一个cookie对象             ,或者session对象                  ,或者这些对象本来就存在      ,然后在这个对象中存入一些数据       ,在cookie中是以键值对的方式                  ,在session中是以attribute的方式            ,其实也类似于键值对       。为什么要用这些对象存储数据       ,就是为了保存会话状态                  。因为HTTP协议是无连接的            。那么cookie和session之间有什么区别呢?最主要的区别就是                   ,session的生死是由服务器决定的            ,而cookie不由服务器管理       。

可以这样理解cookie

首先cookie是在浏览器上的,可以把它看成用户的一个入场券                   ,拥有该证书可以登录与该证书关联的网站

HTTP协议规定:任何一个cookie都是有name和value组成                   。name和value都是由字符串类型            。

在HTTP协议中是这样规定的:当浏览器发送请求的时候                  ,会自动携带该path下的cookie数据给服务器。(URL)

关于cookie的有效时间

怎么用java设置cookie的有效时间 cookie.setMaxAge(60 * 60); 设置cookie在一小时之后失效                   。 没有设置有效时间:默认保存在浏览器的运行内存中,浏览器关闭则cookie消失                  。 只要设置cookie的有效时间 > 0             ,这个cookie一定会存储到硬盘文件当中。 设置cookie的有效时间 = 0 呢? cookie被删除                  ,同名cookie被删除             。 设置cookie的有效时间 < 0 呢? 保存在运行内存中                  。和不设置一样      。

在java的servlet中      ,对cookie提供了哪些支持呢?

提供了一个Cookie类来专门表示cookie数据             。jakarta.servlet.http.Cookie; java程序怎么把cookie数据发送给浏览器呢?response.addCookie(cookie);

关于cookie的path             ,cookie关联的路径:

假设现在发送的请求路径是“http://localhost:8080/servlet13/cookie/generate             ”生成的cookie                  ,如果cookie没有设置path      ,默认的path是什么?

默认的path是:http://localhost:8080/servlet13/cookie 以及它的子路径                  。

也就是说       ,以后只要浏览器的请求路径是http://localhost:8080/servlet13/cookie 这个路径以及这个路径下的子路径                  ,cookie都会被发送到服务器      。

手动设置cookie的path

cookie.setPath(“/servlet13                  ”);

表示只要是这个servlet13项目的请求路径            ,都会提交这个cookie给服务器       。

浏览器发送cookie给服务器了       ,服务器中的java程序怎么接收? Cookie[] cookies = request.getCookies(); // 这个方法可能返回null if(cookies != null){ for(Cookie cookie : cookies){ // 获取cookie的name String name = cookie.getName(); // 获取cookie的value String value = cookie.getValue(); } }

注意:以上方法获得的cookie数组空的话返回值是null                   ,反正返回值肯定不是0.

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
提升网站排名的技巧(从优化到内容营销) okhttp3源码(OK源码中国提醒大家,禁止关闭主题的api功能,严重影响网站运行各种功能)