- 浏览: 284847 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (204)
- Ubuntu (8)
- Maven (1)
- JVM (12)
- Shell (11)
- WEB (24)
- 数据库 (1)
- Linux (24)
- ibatis源码 (8)
- 乱七八糟 (6)
- memcache (2)
- 数据结构 (1)
- mongoDb (3)
- WebService (1)
- 装机 (1)
- zookeeper (0)
- Hbase (4)
- mysql (6)
- nginx (3)
- SSDB (0)
- kafka消息 (3)
- Rust语言学习 (2)
- Tair学习 (0)
- ES (7)
- freeMarker (2)
- 分布式任务调度学习 (0)
- Apache Camel翻译 (1)
- Storm (1)
- Netty (3)
- NodeJs (1)
- BootStrap (1)
- 读书计划 (0)
- databus (1)
- Socket编程 (1)
- Redis (5)
- Hystrix (2)
- JDK (2)
- JMeter测试 (1)
- Idea (8)
- JProfile学习 (9)
- springBoot (6)
- httpClient (1)
- Docker学习 (1)
- 微信小程序学习 (1)
- beanstalkd (0)
- gradle (1)
- 硬盘学习 (0)
- activiti-engine (1)
- 算法 (3)
- thrfit学习 (1)
- serviceMesh (2)
- 流控 (0)
- TCP (0)
最新评论
-
k_kid9157:
亲测可用 特来感谢LZ分享!
the namespace on the "definitions" element, is not atorChain doIntercept Interce -
fair_jm:
归纳得很好 还有G1 学习了
java的垃圾收集算法和垃圾收集器 -
zhouchaofei2010:
有理想 赞一个
ibatis源码 -
code_cj:
好像在哪里看过,有点熟眼...
jvm如何判断对象已死? -
ansjsun:
不错不错..就是有点粗略..希望能介绍下.标记整理和标记删除. ...
jvm如何判断对象已死?
具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上它还有其他选择。
Cookie机制
正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie。然而纯粹的客户端脚本如JavaScript或者VBScript也可以生成cookie。而cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器的。浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。 cookie的内容主要包括:名字,值,过期时间,路径和域。路径与域一起构成cookie的作用范围。若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。这种生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式
Session机制
session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。 当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。 保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发挥给服务器。一般这个cookie的名字都是类似于SEEESIONID。但cookie可以被人为的禁止,则必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。 经常被使用的一种技术叫做URL重写,就是把session id直接附加在URL路径的后面。还有一种技术叫做表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。
比如:
1 <form name="testform" action="/xxx">
2 <input type="hidden" name="jsessionid" value="ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLe rjQ99zWpBng!-145788764"> <input type="text">
3 </form>
实际上这种技术可以简单的用对action应用URL重写来代替。
总结:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE
4、单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。
注:发现社区里关于这一主题的内容很多,大家可以多参考他们的总结,比我这个转的好多了!
摘自:http://my.oschina.net/hanzhankang/blog/84986
Cookie机制
正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie。然而纯粹的客户端脚本如JavaScript或者VBScript也可以生成cookie。而cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器的。浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。 cookie的内容主要包括:名字,值,过期时间,路径和域。路径与域一起构成cookie的作用范围。若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。这种生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式
Session机制
session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。 当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。 保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发挥给服务器。一般这个cookie的名字都是类似于SEEESIONID。但cookie可以被人为的禁止,则必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。 经常被使用的一种技术叫做URL重写,就是把session id直接附加在URL路径的后面。还有一种技术叫做表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。
比如:
1 <form name="testform" action="/xxx">
2 <input type="hidden" name="jsessionid" value="ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLe rjQ99zWpBng!-145788764"> <input type="text">
3 </form>
实际上这种技术可以简单的用对action应用URL重写来代替。
总结:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE
4、单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。
注:发现社区里关于这一主题的内容很多,大家可以多参考他们的总结,比我这个转的好多了!
摘自:http://my.oschina.net/hanzhankang/blog/84986
发表评论
-
四层、七层负载均衡的区别(转)
2019-04-18 03:06 426简介 区别 Nginx、LVS及HAP ... -
OSI七层协议图解(转)
2019-04-18 02:38 586图解 转自: https://www.cnblogs.co ... -
AES加密时抛出java.security.InvalidKeyException: Illegal key size or default parameter
2017-08-22 11:50 655使用AES加密时,当密钥大于128时,代码会抛出java.s ... -
springMVC支持jsonp
2017-06-29 14:39 621@RequestMapping("directive ... -
Spring Batch学习
2017-02-14 16:17 715https://www.ibm.com/developerwo ... -
guava缓存
2016-09-18 09:57 495http://outofmemory.cn/java/guav ... -
java毫秒和微秒区别
2016-08-02 09:59 0http://blog.csdn.net/dliyuedong ... -
gcc查看当前的版本并升级
2016-03-19 18:45 34601.gcc查看版本:gcc -v MacBook-Pro:$ ... -
java发送邮件附件乱码的解决
2016-03-17 13:17 961import javax.mail.internet.Mime ... -
Error finishing response
2015-02-13 19:02 1181https://issues.apache.org/bugzi ... -
Missing artifact com.sun:tools:jar:1.5.0
2015-01-28 14:30 758当导入maven项目时出现: Missing artifac ... -
velocity1.6.3导致cpu过高
2014-09-06 22:00 796velocity1.6.3的bug导致cpu过大。 https ... -
doc 编码 GBK 的不可映射字符
2014-03-31 20:16 869如果提示:编码 GBK 的不可映射字符 eclipse 生成 ... -
Cannot find the declaration of element 'beans'. 的解决方法
2013-12-05 09:47 2411org.xml.sax.SAXParseException: ... -
Tomcat日志处理(包括catalina.out切分)
2013-11-07 09:57 20311 Tomcat 日志信息分为两类 : 一是运行中的日志,它 ... -
TortoiseSVN更改账号的方法 (转)
2013-10-14 13:46 1201在copy其它用户check的项目到本地后,把账号信息也带过 ... -
tomcat下域名的配置,ROOT.xml的作用
2012-12-13 11:36 1784以下小结使用tomcat5.0.28测试通过,tomcat安装 ... -
在布署Tomcat时,出现The scratchDir you specified is unusable
2012-12-10 12:53 7852布署Tomcat报错 ....... 2007-12-22 ... -
tomcat报BAD packet signature 18245错误的原因
2012-12-03 10:14 2071最近把项目部署到windows服务器上面,通过tomcat跑 ... -
validateJarFile jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending
2012-12-01 10:02 1048把那个 jsp-api.jar servlet-api.jar ...
相关推荐
### Session与Cookie的区别和联系 #### 一、概念解析 - **Cookie**:Cookie是一种小型的数据文件,由服务器端生成并发送给用户浏览器,浏览器在本地(如用户的硬盘)保存该文件,然后每一次请求同一网站时都会把该...
session与cookie区别精选,session与cookie区别精选,session与cookie区别精选,session与cookie区别精选session与cookie区别精选session与cookie区别精选session与cookie区别精选session与cookie区别精选session与...
标题与描述中的关键词“session和cookie区别”指向了两种在Web开发中常用的状态...总之,session和cookie在Web开发中扮演着重要角色,了解它们的区别和使用场景对于构建安全、高效、用户友好的Web应用程序至关重要。
#### 四、Cookie与Session的区别 - **存储位置**: - Cookie: 存储在客户端浏览器。 - Session: 存储在服务器端。 - **安全性**: - Cookie: 较低,容易被截取和伪造。 - Session: 较高,因为数据存储在服务器端。...
session与cookie的区别?
#### Cookie与Session的关系 Cookie和Session并不是相互独立的,它们之间存在紧密的联系。实际上,Session机制往往依赖于Cookie来实现会话的跟踪。当服务器创建一个Session时,会生成一个Session ID并将其存储在...
这是一份关于cookie和session的知识文档,有关于cookie是什么,图解,cookie对比session有哪些不好,session是什么图解
#### 二、Cookie与Session简介及区别 **Cookie** 是一种简单的文本文件,用于在客户端存储少量数据。它允许网站保存用户的信息以便后续访问时能够快速获取。例如,网站可以通过Cookie来记住用户的登录状态。 **...
session与cookie区别课件,可以下载根据自己的需求改动,节省整理的时间
Session和Cookie是两种常见的Web应用程序中用于管理用户会话的技术,它们主要的区别在于存储位置、生命周期和安全性。 **Session** 1. **存储位置**:Session是服务器端存储机制,它在服务器上为每个用户开辟一块...
标题“flask-session-cookie-manager”指的是一个Python应用,它专门针对Flask框架,用于管理和操作session cookie。在Web开发中,session cookie是服务器用来跟踪用户状态的一种方式,特别是在无状态的HTTP协议上...
session和cookie的区别!session和cookie的区别!session和cookie的区别!
### Session与Cookie的区别详解 #### 一、存储位置的不同 - **Cookie**:Cookie是一种小型文本文件,由服务器端生成并发送给客户端浏览器,浏览器将其保存在本地(通常是用户的计算机或移动设备上)。每当浏览器向...
#### 五、Cookie与Session的区别 尽管 Cookie 和 Session 都用于跟踪用户状态,但它们有着本质的区别: 1. **存储位置**:Cookie 存储在客户端,而 Session 存储在服务器端。 2. **安全性**:由于 Cookie 存储在...
cookie 机制和 session 机制的区别 cookie 机制和 session 机制是两种常用的Web会话跟踪机制,虽然它们都可以实现会话跟踪,但它们的实现机制和应用场景却有所...了解它们的区别和特点,可以更好地应用于实际项目中。
【Session与Cookie原理简述】 Session和Cookie是两种在Web开发中常见的用户状态管理机制,它们主要用于在HTTP协议无状态的特性下跟踪用户状态。理解它们的原理对于编写高效的Web应用至关重要。 **Cookie原理** ...
本文将深入探讨SpringSession如何支持Cookie和header策略,并解析`CookieHeaderHttpSessionStrategy.java`这个文件中的关键概念和技术细节。 首先,我们来看标题提及的“SpringSession同时支持Cookie和header策略”...
通过以上内容,我们可以清楚地了解到Cookie与Session的基本概念及其区别,同时对于会话Cookie与持久Cookie的不同也有了更深入的理解。在实际应用中,合理选择和使用这两种机制可以帮助开发者更好地管理用户的会话...