Cookie的工作原理:
Cookie是最常用的客户会话跟踪技术。Cookie是将会话数据保存在客户端来维护会话状态的一种方式。它是服务器发送给浏览器的体积很小的纯文本信息,用户以后在访问同一个Web服务器时,浏览器会把Cookie原样发送给服务器。通过这种方式,保存了用户的会话状态。
Cookie分为两类:持久的和暂时的。持久的Cookie会被存储在客户端文件中;暂时的Cookie存储在内存中,一旦浏览器关闭Cookie就消失了。一般来说,客户端浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4kb,因此Cookie不会占用太大的硬盘空间。虽然Cookie很好用而且持久性高,但是由于有些用户担心Cookie对个人隐私有威胁,会关闭Cookie。一旦这样,便无法利用Cookie来达到会话追踪的功能了。下面看看Cookie具体怎么使用:
SetCookies.java(写入)
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
public class SetCookies extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Cookie c1 = new Cookie("password", "123");
response.addCookie(c1);
Cookie c2 = new Cookie("client_ip", request.getRemoteAddr());
//设置cookie的生命周期为一个小时,单位为秒
c2.setMaxAge(60*60);
response.addCookie(c2);
response.getWriter().println("SetCookies OK!");
}
}
ShowCookies.java(读取)
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
public class ShowCookies extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Cookie[] Cookies = request.getCookies();
for (int i=0; i<Cookies.length; i++) {
Cookie c = Cookies[i];
response.getWriter().println(c.getName() + ", " + c.getValue());
}
}
}
Session的工作原理:
HttpSession对象自动为开发者提供一个可以方便地存储会话信息的地方,HttpSession的会话机制是基于Cookie和URL重写(URL重写就是利用GET方法,在URL的尾部添加一些额外的参数来达到会话追踪的目的)技术,融合了这两种技术的优点。当客户端允许使用Cookie时,HttpSession对象使用Cookie进行会话追踪,如果客户端禁用Cookie,则选择使用URL重写。
session与Cookie一样拥有特定的生命周期。一个session可以利用isNew方法来得知是否为一个新的session。所谓“新”的session就是说,他已经被Server产生,但是Client尚未被告知。
一般来说,session在一段时间内没有起作用就会自动失效,也就是Server会自动控管session失效的时间,不过时间的长短通常因容器而异,也可以自己手动设定session的失效时间。下面看看session具体怎么使用:
SetSessionServlet.java(写入)
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
public class SetSessionServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession(true);
session.setAttribute("ip", request.getRemoteAddr());
response.getWriter().println("SetSession OK!");
}
}
ShowSessionServlet.java(读出)
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
public class ShowSessionServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession(true);
String ip = (String)session.getAttribute("ip");
response.getWriter().println("ip=" + ip);
}
}
简单的总结了一下,正在学习中... ...
分享到:
相关推荐
cookie-session, 基于简单cookie的会话中间件 cookie会话 基于简单cookie的会话中间件。用户会话可以通过 Cookies 以两种主要方式存储: 在服务器上... 这个模块在cookie中存储会话数据,而像 express会话的模块在cook
cookie会话 简单的基于cookie的会话中间件。 用户会话可以用cookie的两种主要方式存储:在服务器上或在客户端上。... cookie-session可用于存储“轻量”会话,并包含一个标识符以查找数据库支持的辅助存储
cookie 机制和 session 机制的区别 ...cookie 机制和 session 机制都是实现 Web 会话跟踪的重要手段,但它们的实现机制和应用场景却有所不同。了解它们的区别和特点,可以更好地应用于实际项目中。
在Servlet技术中,提供了两个用于保存会话数据的对象,分别是Cookie和Session。Cookie是保存在客户端的文本文件,用于存储少量的会话数据,而Session则是保存在服务器端的对象,用于存储大量的会话数据。 会话技术...
一、属性说明: 1 secure属性 ...也就是说两个属性,并不能解决cookie在本机出现的信息泄漏的问题(FireFox的插件FireBug能直接看到cookie的相关信息)。 二、实例 项目架构环境:jsp+servlet+applet
会话控制是网站中非常重要的一部分,通过 cookie 和 session 机制来实现。cookie 和 session 都可以暂时保存在多个页面中使用的变量,但是它们有本质的差别。会话控制可以使网站更好地支持用户,并根据授权和用户...
cookie即是传统的会话控制,由于要存储的信息是保存在客户端的,所以安全系数较低,而session会话控制是将要存储的信息保存在服务器上的,所以相对于cookie安全系数较高. 不论是在使用cookie方式存储,还是session...
基于 Cookie 的会话保持有两个模式:Cookie 插入模式和 Cookie 重写模式。Cookie 插入模式是指 BIGIP 负责插入 Cookie,后端服务器无需作出任何修改。Cookie 重写模式是指在客户进行第一次请求时,客户 HTTP 请求...
JavaWebServlet JavaWeb 是基于 Java 语言的 Web 应用程序开发技术,Servlet 是 ...在 JavaWeb 应用程序中,Servlet、JSP、EL 表达式、Cookie 和 Session 是紧密相关的技术,共同组成了 JavaWeb 应用程序的核心组件。
首先下载两个模块包 session模块包:用于保持登录状态或保持会话状态等。 npm install express-session --save-dev cookie模块包:用于解析cookie。 npm install cookie-parser --save-dev 接着在app.js(我在node....
提供了两个会话存储: Cookie和Memory 。 Session提供4个基本功能: create , get , set和destroy 。 create需要一个SessionStore和您的会话数据,并返回代表您的新会话的 。 get使用SessionStore和Cookie并返回您...
正对java Web项目,同浏览器同时打开两个登录窗口(不同Tag),用不同用户登录,为避免使用同一个Session,需要使用这段代码。否则先登录的用户的Session会变成后登录用户的Session.相关系统使用权限也会变。
当客户端发出请求时,Servlet引擎传递给Servlet一个ServletRequest对象和一个ServletResponse对象,这两个对象作为参数传递到service()方法中。 Servlet也可以执行ServletRequest接口和ServletResponse接口。...
Session 对象有两个大事可用于在 Session 对象启动和释放是运行过程。 1. Session_OnStart:Session_OnStart 大事在服务器创建新会话时发生。服务器在执行恳求的页之前先处理该脚本Session_OnStart 大事是设置会话...
很早之前写过一篇关于Cookie和Session的文章,那是2017年的事咯,当时还是个学生,技术也菜,对知识理解的也不深。恰巧有机会重新学习Java Web,今天就再次来简单的聊一聊Cookie与Session。 1.会话与会话技术 在...
我们通常使用cookie和session来确定会话双方的身份。 cookie cookie 是从服务器端发送的,服务器给不同的用户发送不同的标识,这个标识表示用户的身份,服务器通过客户端发送的这个标识来识别用户的身份,从而查询...
除此之外,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》还提供了两个完整的实例来讲解开发SSH的详细步骤和方法。通过对这两个实例的学习,读者可以对SSH开发模式有更透彻地理解和认识。SSH是...
首先发现sessionID不一致,导致每一次都是新的会话,当然不可能存在用户了。然后发现cookie浏览器不能自动保存,服务器响应set-cookie了 搜索问题,发现跨域,服务器响应的setCookie浏览器无法保存,而且就算保存了...
我们都知道当在session 会话有基于cookie和基于url两种传递SESSIONID的方法。为了实现客户端禁止cookie发送的情况也不影响客户登陆网站,可以设置 php.ini中 session.use_trans_sid=1 ,表示当客户端浏览器禁止...
在前面我们学习了Cookie和Session两种会话技术,这个也是比较主流的两种会话技术。除了Cookie、Session,会话技术还有重写Url、隐藏表单域两种,不过使用起来比较不方便,因此就不进行介绍了。 那理论学完了,我们...