浏览器抓取网页(会话管理技术技术最常见的方案-上海怡健医学 )

优采云 发布时间: 2022-04-06 15:03

  浏览器抓取网页(会话管理技术技术最常见的方案-上海怡健医学

)

  会话管理

  会话概述

  两方之间的通信或交互,同样在计算机中,浏览器与服务器之间的交互称为会话。

  一个会话中的多个请求和响应

  对话功能

  在会话范围内的多个请求之间共享数据

  功能:

  限制页面访问(不登录无法访问后台页面)

  临时存储数据并在多个请求之间共享数据

  记住密码、自动登录、7天免费登录等。

  生命周期

  开始

  会话在浏览器访问服务器的那一刻开始

  结尾

  当浏览器或服务器端中断时结束

  注意:服务器一般是连续运行的,所以会话结束通常是浏览器关闭造成的。

  会话技术

  最常见的场景:数据库存储

  在 cookie 中存储数据:数据由浏览器保存

  将数据存储到会话:数据由服务器保存

  一、 Cookie

  翻译:饼干

  概述

  (1)一小段文字用来存放客户端

  (2) 是一种客户端技术,将数据保存到客户端;因为 cookie 存储在客户端浏览器中

  (3) 是维护客户端和服务器之间的状态

  (4)cookie技术,不安全,请勿使用cookie存储敏感信息!如登录状态和登录信息;

  (5)一些敏感数据应该存储在服务器端

  常用方法

  无效 setMaxAge(int e);

  ** 设置cookie的有效期,以秒为单位,正数为秒数后过期;负数表示浏览器关闭时cookie会被删除(有争议);零表示清除 cookie

  int getMaxAge();

  ** 获取cookie的有效时间,以秒为单位

  无效 setValue(字符串值);

  ** 创建cookie后,给cookie赋值

  字符串 getValue();

  ** 获取cookie的值

  字符串 getName();

  ** 获取 cookie 的名称

  饼干[] getCookies();

  ** 获取cookie中的所有属性名

  如何使用

  (1)创建Cookie对象并绑定数据(获取服务器上的指定数据并通过cookie保存)

  **Cookie cookie = new Cookie(key,value);

  (2)发送 Cookie 对象(来自服务器 ---> 客户端)

  ** response.addCookie(cookie)

  (3)获取cookies,获取数据

  **Cookie[]cookies = request.getCookies()

  防范措施

  编码 URLEncoder.encode("string","utf-8");

  解码 URLDecoder.decode("string","utf-8");

  使用 Cookie

  1.介绍

  1.1 案例:张三和李四的会面(从头到尾)====》Client and Server

  2.会话

  2.1 概述:一个会话中的多个请求和响应

  一次会话:浏览器第一次向服务器资源发送请求,会话建立,直到一方断开。

  2.2 功能:一个会话范围内的多个请求之间共享数据

  2.3 种方式:

  (1)客户端会话技术:Cookies

  (2)服务器端会话技术:session

  3.Cookie

  3.1 概述

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

  3.2 快速入门

  使用步骤:

  (1)创建Cookie对象并绑定数据

  新 Cookie(键,值);

  (2)发送 Cookie 对象(来自服务器 ---> 客户端)

  request.addCookie(cookie)

  (3)获取cookies,获取数据

  request.getCookies()

  4.Cookie 详细信息

  4.1 可以同时发送多个cookie吗?

  ** 能

  ** 可以创建多个 Cookie 对象,并使用响应多次调用 addCookie 方法发送 cookie。

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

  (1)默认在关闭浏览器时销毁cookie数据

  (2)持久存储

  ** setMaxAge(int 秒); 秒

  ** 参数:

  正数---》将cookie数据写入硬盘文件。持久化存储[cookie生命周期]

  ** 负数:

  默认值

  ** 零:

  删除cookie信息

  4.3 cookie 可以存储中文吗?

  ** 在tomcat8.0之前,中文数据不能直接存入cookies。

  ** 中文数据需要转码---》一般使用URL编码

  ** tomcat8.0后,cookies支持中文数据,但仍不支持特殊字符。建议使用 URL 编码存储

  使用 URL 解码解析

  * 编码 URLEncoder.encode("string","utf-8");

  * 解码 URLDecoder.decode("string","utf-8");

  5.cookies的特性和功能

  特征:

  (1)cookies 将数据存储在客户端浏览器中

  (2)浏览器有单个cookie大小限制(4KB)和同域名下cookie总数限制(20个)

  影响:

  (1)cookies 通常用于存储少量不太敏感的数据

  (2)无需登录即可完成服务端对客户端的识别

  二、 会话

  概述

  session 是属于 jsp9 的大型内置对象之一

  (1)服务器端会话技术,一个会话中多个请求共享数据,数据存储在服务器端对象中。jsp:session servlet:HttpSession

  (2)在应用程序的WEB页面之间跳转时可以通过Session保存用户的状态,这样整个用户会话会一直存在,直到浏览器关闭。

  注意:如果客户端长时间不向服务器发送请求,Session对象会自动消失。这个时间取决于服务器,例如Tomcat服务器默认为30分钟。

  常用方法

  公共无效setAttribute(字符串名称,字符串值);

  ** 设置具有指定名称的属性的值并将其添加到会话范围。如果该属性存在于会话范围内,请更改该属性的值。

  公共对象getAttribute(字符串名称);

  ** 获取会话范围内具有指定名称的属性的值,返回值类型为object,如果该属性不存在则为null。

  公共无效removeAttribute(字符串名称);

  ** 删除指定名称的会话属性。如果该属性不存在,则会发生异常。

  公共无效无效();

  ** 使会话无效。当前会话可以立即失效,并且所有存储在原创会话中的对象都不能再被访问。

  公共字符串 getId();

  ** 获取当前会话 ID。每个会话在服务器端都有一个唯一的标识 sessionID,而会话对象发送给浏览器的唯一数据就是 sessionID,一般存储在一个 cookie 中。

  公共无效 setMaxInactiveInterval(int 间隔);

  ** 以秒为单位设置会话的最大持续时间,负数表示会话永不过期。

  公共 int getMaxInActiveInterval();

  ** 获取会话的最大时长,使用时需要进行一些处理

  session和cookie的区别

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

  (2)session是一个内置对象,它的属性可以是任意类型,而Cookie对象只能设置字符串

  (3)Session没有数据大小限制,Cookie有数据大小限制

  (4)会话数据是安全的,cookies相对不安全

  会话的使用

  会话->内置对象

  1.概览

  服务器端会话技术,它在一个会话中的多个请求之间共享数据,并将数据保存在服务器端对象中。jsp:会话小服务程序:HttpSession

  2.快速入门

  (1)getAttribute(字符串名称);

  (2)setAttribute(字符串名称,对象值)

  (3)removeAattribute(字符串名称)

  3.详情

  1.客户端关闭时,服务端没有关闭,两次获取的session是一样的吗?

  * 默认情况下,不

  * 如果需要的话,可以创建一个cookie,key是JSESSIONID,设置最大存活时间,让cookie持久化。

  Cookie c = new Cookie("JSESSIONID",session.getId());

  c.setMaxAge(60*60);

  response.addCookie(c);

  2.客户端没有关闭。服务器关闭后,两次获得的session是一样的吗?

  * 不是同一个,但请确保没有数据丢失。tomcat 会自动执行以下操作。

  ** 会话钝化:

  在服务器正常关闭之前将会话对象序列化到磁盘

  ** 会话激活:

  服务器启动后,可以将会话文件转换为内存中的会话对象。

  3.会话何时销毁?

  (1) 服务器宕机

  (2) 会话对象调用 invalidate() 方法

  (3)会话默认过期时间为 30 分钟 => web.xml

  4.会话功能

  Session 用于存储一个会话的多个请求的数据,存储在服务器端

  会话可以存储任何类型和大小的数据

  session和cookie的区别

  1.session 将数据存储在服务端,cookies 存储在客户端

  Cookie存储的数据只能是文本,Session---Object

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

  3.session数据安全,cookies比较不安全

  包括指令

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线