浏览器抓取网页(存储将数据存储到Cookie会话的技术管理技术技术 )
优采云 发布时间: 2022-04-06 15:04浏览器抓取网页(存储将数据存储到Cookie会话的技术管理技术技术
)
一、会话管理1、概述:
两方之间的通信或交互,同样在计算机中,浏览器与服务器之间的交互称为会话。(版本1)
一个会话收录多个请求和响应(浏览器第一次向服务器资源发送请求,会话建立,直到一方断开连接。)(版本 2)
例:张三给李四打电话,李四接听电话,通话建立,双方挂断通话结束。
2、特点:
在会话范围内的多个请求之间共享数据
限制页面访问(不登录无法访问后台页面)
临时存储数据并在多个请求之间共享数据
记住密码、自动登录、7天免费登录等。
3、生命周期
开始:会话在浏览器访问服务器时开始
结束:浏览器或服务器端中断时结束
注意:服务器一般是连续运行的,所以会话结束通常是浏览器关闭造成的。
4、会话技术:
最常见的场景:数据库存储
在 cookie 中存储数据:数据由浏览器保存
将数据存储到会话:数据由服务器保存
二、Cookies 1、概述:
(1)一小段文字用来存放客户端
(2) 是一种客户端技术,将数据保存到客户端;因为 cookie 存储在客户端浏览器中
(3) 是维护客户端和服务器之间的状态
(4)cookie技术,不安全,请勿使用cookie存储敏感信息!如登录状态和登录信息;
(5)一些敏感数据应该存储在服务器端
功能:跟踪特定对象、统计页面浏览量、简化登录
2、常用方法:
void setMaxAge(int e):设置cookie的有效期,以秒为单位,正数为过了多少秒就会过期;负数表示浏览器关闭时cookie会被删除(有争议);零表示清除 cookie
int getMaxAge():获取cookie的有效时间,以秒为单位
void setValue(String value):创建cookie后给cookie赋值
String getValue():获取cookie的值
String getName():获取cookie的名称
Cookie[] getCookies():获取cookie中的所有属性名
3、使用方法:
(1)创建Cookie对象并绑定数据(获取服务器上的指定数据并通过cookie保存)
Cookie cookie = 新 Cookie(key,value);
(2)写入 Cookie 对象(来自服务器 ---> 客户端)
response.addCookie(cookie)
(3)获取cookie,获取数据
Cookies[] Cookies = request.getCookies()
4、注意事项:
编码 URLEncoder.encode("string","utf-8");
解码 URLDecoder.decode("string","utf-8");
新闻详情页面
三、Session内置对象1、概述:session是jsp9内置对象之一(out、request、response、session、applicationconfig、page、pageContext、exception)
(1)服务器端会话技术,一个会话中多个请求之间共享数据,数据存储在服务器端对象中。jsp:session servlet:HttpSession
(2)可以通过Session在应用程序的WEB页面之间跳转时保存用户的状态,这样整个用户会话会一直存在,直到浏览器关闭。(即用户浏览网站的时间花费。)
注意:如果客户端长时间不向服务器发送请求,Session对象会自动消失。这个时间取决于服务器,例如Tomcat服务器默认为30分钟。
2、常用方法
(1)public void setAttribute(String name,String value);
设置具有指定名称的属性的值并将其添加到会话会话范围,或者如果该属性存在于会话范围内,则更改该属性的值。
(2)public Object getAttribute(String name);
获取会话范围内具有指定名称的属性的值,返回值类型为object,如果该属性不存在,则返回null。
(3)public void removeAttribute(String name);
删除具有指定名称的会话属性。如果该属性不存在,则会发生异常。
(4)公共无效无效();
使会话无效。当前会话可以立即失效,并且所有存储在原创会话中的对象都不能再被访问。
(5)public String getId();
获取当前会话 ID。每个会话在服务器端都有一个唯一的标识 sessionID,而会话对象发送给浏览器的唯一数据就是 sessionID,一般存储在一个 cookie 中。
(6)public void setMaxInactiveInterval(int interval);
设置会话的最大持续时间,以秒为单位,负数表示会话永不过期。
(7)public int getMaxInActiveInterval();
获取会话的最大时长,使用时需要进行一些处理
3、session和window的关系
(1)每个会话对象都与浏览器一一对应。重新打开浏览器相当于重新创建会话对象。
(2)通过超链接打开的新窗口,新窗口的会话与其父窗口的会话相同
四、Session和Cookie的区别
(1)session 将数据存储在服务器上,cookies 存储在客户端
(2)session是一个内置对象,它的属性可以是任意类型,而Cookie对象只能设置字符串
(3)Session没有数据大小限制,Cookie有数据大小限制
(4)会话数据是安全的,cookies相对不安全
自动登录
7天内自动登录