Cookie与Session2[简洁版]
发布日期:2021-05-07 23:14:28 浏览次数:26 分类:原创文章

本文共 2381 字,大约阅读时间需要 7 分钟。

Cookie与Session2

会话:

一次会话中包含多次请求和响应。

  1. —次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断幵为止

  2. 功能:在一次会活的范围内的多次请求间,共享数据

  3. 方式:

  4. 客户端会话技术:Cookie (储存在浏览器)

  5. 服务器端会话技术:Session (储存在服务器)

Cookie:

使用步骤

  1. 创建Cookie对象,绑定数据

​ new Cookie(String name. String value)

  1. 发送Cookie对象

​ response.addCookie(Cookie cookie)

  1. 获取cookie,拿到数据

​ Cookie[] request.getCookies()

原理图:

基于响应头set-cookie与请求头cookie的实现:

在这里插入图片描述

cookie的細节

  1. 一次可不可以发送多个cookie?

可以

可以创建多个cookie对象,使用response调用多次addcookie方法发送cookie即可.

  1. cookieS浏览器中保存多长时间?

  2. 默认情况下,当浏览器关闭后,Cookie数据被销毀

  3. 持久化存储:

    setMaxAge(int seconds)

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

    2.负数:默认値

    3.零:删除Cookie信息

  4. cookie能不储存中文?

    在tomcat 8之前cookie中不能原接存储中文数据., 要将中文数据转玛===>一般采用URL编码(%XE3)	•在tomcat 8之后,cookie支持中文数据。	
  5. 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 可以共享

Cookie的特点和作用

  1. cookie存储数据在客户端浏览器
    2.浏览器对于单个cookie的大小有限制(4kb)以及对同一个域名下的总cookie数置也有限制(20个)
    作用
  2. cookie—般用于存出少量的不太敏感的数据
  3. 在不登录的情况下,完成服务器对客户端的身份识别

Session的工作原理

Session

(终于画好了图😁😁😁)

Session :

  1. 概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中。Httpsession

  2. 快速入门:

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(“JSESSIONlD”,session.getId());

C. setMaxAge(60*60);

response.addCookie©;

  1. 客户端不关闭,服务器关闭后,两次获取的session是同一个吗?

不是同一个,但是要确保数据不丢失

*session的钝化

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

session的活化:

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

失效

例如:默认打开没有网站30 min没有任何操作session失效

session什么时候被销毁?

  1. 服务器关闭

  2. session对象调用invalidate。

  3. session默认失效时间30分钟
    选择性配置修改
    < session-config>
    < session-timeout>30</ session-tiomout>
    </ session-config>

session的特点

  1. session用于存储一次会话的多次请求的数据,存在服务器端
  2. session可以存储任意类型,任意大小的数据
  3. 缺点:对服务器压力大

session与Cookie的区别:

  1. session存储数据在服务器端,Cookie在客户端

  2. session没有数据大小限制,Cookie有

  3. session数据安全,Cookie相对于不安全

  4. 别人可以分析存放在本地的COOKIE并进行COOKIE欺骗

    考虑到安全应当使用session。

    session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能

    考虑到减轻服务器性能方面,应当使用COOKIE。

    单个cookie保存的数据不能超过4K,(减轻Cookie在浏览器与服务器之间传输对服务器造成的压力)很多浏览器都限制一个站点最多保存20个cookie。

将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中

上一篇:二叉树的创建遍历应用删除
下一篇:请求转发、重定向、路径

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年03月29日 00时18分14秒