cookie和session的区别

简介: 一.cookie和session的区别(1)cookie存储数据在客户端,session在服务器端(2)cookie有数据大小限制,session没有(3)cookie相对于不安全,session安全(4)cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,session一般失效时间较短,客户端关闭或者session 超时都会失效。




一.cookie和session的区别


(1)cookie存储数据在客户端,session在服务器端


(2)cookie有数据大小限制,session没有


(3)cookie相对于不安全,session安全


(4)cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,session一般失效时间较短,客户端关闭或者session 超时都会失效。


二.cookie的简介


1.什么是cookie?


cookie是客户端会话技术,将数据保存到客户端


2.cookie的使用


(1)创建cookie对象,绑定数据


new Cookie(String name,String value)


(2)发送cookie对象


response.addCookie(Cookie cookie)


(3)获取cookie,拿到数据


Cookie[] request.getCookies()


3.cookie的实现原理


基于响应头set-cookie和请求头cookie实现


4.cookie的细节


4.1 一次可不可以发送多个cookie?


(1)可以

(2)创建多个cookie对象,使用response调用多次addCookie方法发送cookie即可


4.2 cookie在浏览器中保存多次时间?


(1)默认情况下,当浏览器关闭后,cookie数据被销毁

(2)持久化存储:setMaxAge(int seconds)


①正数:将cookie数据写到硬盘的文件中,持久化存储;并指定cookie存活时间,时间到后,cookie文件自动失效

②负数:默认值

③零:删除cookie信息


4.3 cookie能不能存中文?


(1)在tomcat8之前,cookie中不能存储中文数据

需要将中文数据转码----一般采用URL编码


(2)在tomcat8之后,cookie支持中文数据。特殊字符还是不支持,建议使用URL编码存储,URL解码解析


4.4 cookie共享问题


(1)假设在一个tomcat服务器中,部署了多个web项目,那么在这些web项目中cookie能不能共享?

①默认情况下,cookie不能共享

②setPath(String path):设置cookie的获取范围。如果要共享,可以将path设置为“/”


(2)不同的tomcat服务器之间cookie共享问题?

setDomain(String path):如果设置一级域名相同,那么多个服务器之间cookie可以共享

setDomain(“.baidu,com”),那么tieba.baidu.com和news.baidu.com中cookie可以共享


5.cookie的特点和作用


5.1cookie特点


(1)cookie存储数据在客户端浏览器

(2)浏览器对于单个cookie的大小有限值(4kb)以及对同一个域名下的总cookie数量也有限制(20个)


5.2 cookie作用


(1)cookie一般用于存储少量的不太敏感的数据

(2)在不登录的情况下,完成服务器对客户端的身份识别


三.session的简介


1.概念


session是服务端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中


2.session的使用


(1)获取HttpSession对象:


HttpSession session = request.getSession();


(2)使用HttpSession对象


①Object getAttribute(String name)
②void setAttribute(String name,Object value)
③void removeAttribute(String name)


3.原理


session的实现是依赖于cookie的


4.使用细节


(1)当客户端关闭后,服务器不关闭,两次获取session是否为同一个?

①默认情况下,不是

②如果需要相同,则可以创建cookie,键设为JSESSIONID,设置最大存活时间,让cookie持久化保存


Cookie c = new Cookie("JESSIONID",session.getId);
c.setMaxAge(60*60);
response.addCookie(c);


(2)客户端不关闭,服务器关闭,两次获取的session是同一个吗?

不是同一个,但是要确保数据不丢失。tomcat自动完成以下工作

①session的钝化:

在服务器正常关闭之前,将session对象系列化到硬盘上

②session的活化:

在服务器启动后,将session文件转化为内存中的session对象即可


(3)session什么时候被销毁?

①服务器关闭

②session对象调用invalidate()

③session默认失效时间30分钟


5.session的特点


(1)session用于存储一次会话的多次请求的数据,存在服务端

(2)session可以存储任意类型,任意大小的数据


目录
相关文章
|
3天前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
16 4
|
6天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
1月前
|
缓存 Java Spring
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
文章比较了在Servlet和Spring Boot中获取Cookie、Session和Header的方法,并提供了相应的代码实例,展示了两种方式在实际应用中的异同。
133 3
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
|
18天前
|
存储 安全 数据安全/隐私保护
Cookie 和 Session 的区别及使用 Session 进行身份验证的方法
【10月更文挑战第12天】总之,Cookie 和 Session 各有特点,在不同的场景中发挥着不同的作用。使用 Session 进行身份验证是常见的做法,通过合理的设计和管理,可以确保用户身份的安全和可靠验证。
17 1
|
2月前
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
26天前
|
存储 JavaScript 前端开发
vuex和localstorage . cookie的区别
【10月更文挑战第8天】
47 1
|
1月前
|
存储 缓存 JavaScript
cookie和localStorage的区别特点
cookie和localStorage的区别特点
86 0
|
2月前
|
存储 前端开发 Java
JavaWeb基础7——会话技术Cookie&Session
会话技术、Cookie的发送和获取、存活时间、Session钝化与活化、销毁、用户登录注册“记住我”和“验证码”案例
JavaWeb基础7——会话技术Cookie&Session
|
2月前
|
存储 安全 NoSQL
Cookie、Session、Token 解析
Cookie、Session、Token 解析
56 0
|
2月前
|
存储 JSON 数据安全/隐私保护
Cookie + Session 的时代已经过去了?
在探讨“Cookie + Session”这一经典组合是否已经过时的议题时,我们首先需要理解它们在Web应用认证和会话管理中的历史地位与当前面临的挑战。随着Web技术的飞速发展,特别是无状态服务、OAuth、JWT(JSON Web Tokens)等技术的兴起,这一传统机制确实面临了前所未有的变革压力。但说它“完全过去”或许过于绝对,因为它在特定场景下仍发挥着重要作用。
35 0