`
mywebcode
  • 浏览: 1004080 次
文章分类
社区版块
存档分类
最新评论

会话管理——cookie

 
阅读更多

会话

什么是会话?

在日常生活中,从拨通电话到挂断电话之间的一连串的你问我答的过程就是一个会话。
会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。

会话过程中要解决的一些问题?

每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,服务器要想办法为每个用户保存这些数据。
例如:多个用户点击超链接通过一个servlet各自购买了一个商品,服务器应该想办法把每一个用户购买的商品保存在各自的地方,以便于这些用户点结帐servlet时,结帐servlet可以得到用户各自购买的商品为用户结帐。

保存会话数据的两种技术

Cookie

Cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。


Session

Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。

Cookie技术


什么是Cookie

Cookie是一种在客户端保持HTTP状态信息的技术,它好比商场发放的优惠卡。
Cookie是在浏览器访问WEB服务器的某个资源时,由WEB服务器在HTTP响应消息头中附带传送给浏览器的一片数据,WEB服务器传送给各个客户端浏览器的数据是可以各不相同的。
一旦WEB浏览器保存了某个Cookie,那么它在以后每次访问该WEB服务器时,都应在HTTP请求头中将这个Cookie回传给WEB服务器。
WEB服务器通过在HTTP响应消息中增加Set-Cookie响应头字段将Cookie信息发送给浏览器,浏览器则通过在HTTP请求消息中增加Cookie请求头字段将Cookie回传给WEB服务器。

Cookie的传送过程示意图

Cookie API

javax.servlet.http.Cookie类用于创建一个Cookie,response接口也中定义了一个addCookie方法,它用于在其响应头中增加一个相应的Set-Cookie头字段。 同样,request接口中也定义了一个getCookies方法,它用于获取客户端提交的Cookie。Cookie类的方法:
public Cookie(String name,String value)
setValue与getValue方法
setMaxAge与getMaxAge方法
setPath与getPath方法
setDomain与getDomain方法
getName方法
Set-Cookie:username=qiujy;Domain=localhost;path=/
Cookie:username=qiujy;$Path=/jsp_04_servlet

Cookie应用

显示用户上次访问时间

显示用户上次浏览过的商品


Cookie细节

一个Cookie只能标识一种信息,它至少含有一个标识该信息的名称(NAME)和设置值(VALUE)。
一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie。
浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
如果创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。
注意,删除cookie时,path必须一致,否则不会删除

显示上次浏览商品的实现过程




分享到:
评论

相关推荐

    Cookie与Session的介绍即使用————Cookie

    作用: Cookie是一种会话技术,用来将会话过程中的数据保存到用户的浏览器中,从而使浏览器和服务器更好的实现数据交互。 原理: 用户通过浏览器访问web服务器时,服务器会给客户端发一些信息,这些信息保存在Cookie中...

    webgoat——Session Management Flaws会话管理缺陷

    会话管理: 因为HTTP是没有状态的,之前认证缺陷的也会涉及到类似的知识点,由于每次请求完成后链接就会断开,当客户端再次发起请求的时候,服务端就识别不了客户端的状态,而会话管理就是解决这一问题的,其中一种...

    JavaWeb12-文件上传.rar

    JavaWeb03-会话跟踪cookie与session.rar JavaWeb04-内置对象与include指令.rar JavaWeb05-购物车.rar JavaWeb06-Servlet.rar JavaWeb07-javaWeb模式.rar JavaWeb08-DBUtil.rar JavaWeb09-EL与JSTL.rar JavaWeb10-...

    beaker:用于会话和缓存的WSGI中间件

    缓存和会话库 关于 Beaker是一个Web会话和常规缓存库,其中包括用于Web应用程序的WSGI中间件。 ...仅限Cookie的会话,无需数据库或文件后端(适用于集群系统) 可扩展容器对象以支持新的后端 缓存

    Java架构直通车——用Redis实现分布式会话

    文章目录什么是会话无状态会话有状态会话会话架构单Tomcat会话动静分离会话集群分布式系统会话Redis实现会话 什么是会话 会话Session代表的是客户端与服务器的一次交互过程,这个过程可以是连续也可以是时断时续的。...

    用django设置session过期时间的方法解析

    SESSION_EXPIRE_AT_BROWSER_CLOSE False:会话cookie可以在用户浏览器中保持有效期。True:关闭浏览器,则Cookie失效。 SESSION_COOKIE_DOMAIN 生效站点 SESSION_COOKIE_NAME cookie中保存session的名称 Session...

    asp.net中session的原理及应用详解

    Session简介丶特性 ——————————————————————————– 1.Session是一种Web会话中的常用状态之一。 2.Session提供了一种把信息保存在服务器内存中的方式。他能储存任何数据类型,包含自定义...

    饼干ACL经理「Cookie ACL Manager」-crx插件

    它可以:-在Chrome工具栏上放置一个图标,以显示当前页面是否允许/允许会话/拒绝当前页面-提供对弹出窗口的快速访问,该窗口允许用户在允许/允许会话/拒绝之间切换cookie设置。当前页面通过此扩展名修改的设置将保存...

    Python之渗透测试笔记(五) ——Requests模块

    Requests模块Requests模块简介Request模块的7个主要参数Response响应内容定制请求头POST请求cookiesession会话请求与响应 Requests模块简介 request模块是python的第三方库,主要功能如下: Keep-Alive & 连接池 ...

    session-watch:客户端跨窗口检测会话变化

    会话观察 概述 这是一个概念验证,用于检测共享 cookie 会话的浏览器窗口之间的会话更改。 这是通过 cookie 轮询来完成的——不需要服务器轮询或网络套接字。

    PHP动态网页设计与制作案例教程

    5.6 cookie与会话管理 5.6.1 数据传递概述 5.6.2 cookie 5.6.3 会话管理 第6章 网上社区设计与PHP数据库访问 6.1 网上社区概述 6.2 留言板的设计 6.2.1 留言板的架构 6.2.2 留言板的设计描述 6.3 留言板的...

    LocalStorage Manager-crx插件

    可从https://github.com/gabrielbarros/localstorage-manager获得源代码和错误跟踪器———————————————————添加,编辑,删除,导出和导入本地存储和会话存储数据。 ------------------------------...

    [完整][中文][WEB安全测试].(美)霍普.扫描版.pdf

    6.13 在Nikto中使用特定的会话Cookie 131 6.14 使用WSFuzzer测试Web服务 132 6.15 理解WSFuzzer的输出结果 134 第7章 使用cURL实现特定任务的自动化 137 7.1 使用cURL获取页面 138 7.2 获取URL的许多变体 139 7.3 ...

    忘记我——干净的历史,饼干等等。「Forget Me - Clean History, Cookies & more」-crx插件

    单击该图标,所有内容都消失了……不仅是cookie,还包括历史记录和html5客户端存储(本地存储和会话存储)。 我也在努力删除鲜为人知的Flash Cookie,但似乎有一些淘气的工作要做。 只需单击该图标,就不会有人知道...

    PHP永久登录、记住我功能实现方法和安全做法

    永久登录指的是在浏览器会话间进行持续验证的机制。换句话说,今天已登录的用户明天依然是处于登录状态,即使在多次访问之间的用户会话过期的情况下也是这样。永久登录的存在降低了你的验证机制的安全性,但它增加了...

    深入体验Java Web开发内幕

    6.7 获取请求消息的实体内容  6.8 利用请求域属性传递信息  6.9 请求参数的中文读取问题  6.10 思考与实践 第7章 会话与状态管理  7.1 Web应用中的会话与会话状态  7.2 Cookie  7.3 在...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例048 判断用户是否具有后台管理权限 79 实例049 打印随机组合生日祝福语 80 实例050 打印2000~2020年的所有闰年 81 实例051 前置运算符和后置运算符的区别 82 实例052 使用位运算对数字进行加密和解密 83 2.3 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例048 判断用户是否具有后台管理权限 79 实例049 打印随机组合生日祝福语 80 实例050 打印2000~2020年的所有闰年 81 实例051 前置运算符和后置运算符的区别 82 实例052 使用位运算对数字进行加密和解密 83 2.3 ...

Global site tag (gtag.js) - Google Analytics