cookie与session的区别

wjq2017 wjq2017     2022-10-08     787

关键词:

  由于HTTP是一种无状态协议,当客户端的一次访问请求结束后,服务器无法知道下次来访问的还是不是上次访问的客户端。

  Cookie与Session的作用都是保持客户端与服务器的交互状态。但是它们的优点和它们的使用场景是矛盾的。当使用Cookie来传递信息时,随着访问量的增加,Cookie个数越来越多,它占用的网络带宽会很大。面对大访问量的情况,可以用Session,但是Session的致命弱点是不容易在多台服务器之间共享,这限制了Session的使用。

 

  理解Cookie

  Cookie是HTTP头中的一个字段。当客户端通过HTTP访问服务端时,服务端会将一些Key/Value键值对返回给客户端,并加上一些限制条件,在条件符合后该客户端再次访问服务端时,数据又被完整地带回给服务端。也就是说,当请求某个URL路径时,浏览器会根据这个URL路径将符合条件的Cookie放在Request请求头中传回给服务端,服务端通过request对象的getCookies方法来取得所有Cookie。‘

  Cookie存储在浏览器里,不同的浏览器对Cookie的存储在大小和数量方面有一些限制。

 

  理解Session

  同一个客户端每次和服务端交互时,不需要传回所有的Cookie值,只需传回一个SessionID。这个SessionID是客户端第一次访问服务端时生成的,对于每个客户端而言是唯一的,通常是NANE为JSESIONID的一个Cookie。

  有了SessionID,服务端就可以创建HttpSession对象了,第一次触发是通过request对象的getSession方法。

  有3种方式可以让Session正常工作:

  1 基于URL路径参数,默认支持。

  2 基于Cookie,默认支持。

  3 基于SSL,默认不支持,只有connector.getAttribute("SSLEnabled")为TRUE时才支持。

  每个Session对象都有一个有效时间,超过这个时间后Session对象会被清除。在Tomcat中这个有效时间是60s(通过maxInactiveInterval属性控制)。检查Session是否失效是在Tomcat的一个后台线程(backgroundProcess方法中)中完成的。同时,调用request对象的getSession方法时也会检查该Session是否过期,如果Session过期了则会创建新的Session对象。如果不想自动创建Session对象,可以通过request.getSession(boolean create)方法来判断Session是否过期。

 

  Cookie安全问题

  Cookie与Session工作方式不同。Cookie把数据通过HTTP头部从客户端传递给服务端,又从服务端传回给客户端,最终数据都存储在客户端的浏览器里,所以这些Cookie数据可以被访问,通过插件可以修改Cookie,因此Cookie是不安全的。而Session是将数据保存在服务端,只是通过Cookie传递一个SessionID,所以Session适合存储隐私数据。

 

  参考资料

  《深入分析Java Web技术内幕》 P263-274

详解cookie与session的区别,新手必看!

cookie与session的区别:  1、cookie数据存放在客户的浏览器上,session数据放在服务器上。  2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗  考虑到安全应当使用session。  3、session会在一定时间内保... 查看详情

cookie与session的区别?

一、cookie机制和session机制的区别具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于才服务器端保持状态的方案在客户端也需要保存一个标识,所以sess... 查看详情

session与cookie的区别?

session:存储在服务器上的php指定的目录中的(session_dir)的位置cookie:存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。①cookie数据存放在客户的浏览器上,session数据放在服务器上②cookie不是很安全,别人可以分析... 查看详情

session与cookie的区别

①Cookie存储在本地浏览器上,可以被伪造,安全性低;Session存储在服务器上,过多的Session会消耗服务器资源②每个Session都有一个sessionID,当服务器生成一个session时,就会往客户端发送一个cookie,这个cookie里面存储的就是sessionI... 查看详情

cookie与session区别

session与Cookie的区别此文章来自乌龟运维wuguiyunwei.comQQ群:602183872主要区别:Cookie,也称为HTTPcookie,Webcookie或浏览器cookie,是从网站发送到服务器并存储在用户的Web浏览器中的一小部分数据。Cookie用于向网站创建者发送关于上次访... 查看详情

cookie与session区别

session与Cookie的区别此文章来自乌龟运维wuguiyunwei.comQQ群:602183872主要区别:Cookie,也称为HTTPcookie,Webcookie或浏览器cookie,是从网站发送到服务器并存储在用户的Web浏览器中的一小部分数据。Cookie用于向网站创建者发送关于上次访... 查看详情

session与cookie的区别

1、cookie数据存放在第三方应用的浏览器上,session数据放在服务器上。2、cookie不是很安全,别人可以分析存放在本地的COOKIE,进行COOKIE欺骗  考虑到安全应当使用session。3、session会在一定时间内保存在服务器上。当访问增... 查看详情

session与cookie的区别

Cookie与session的区别此文章来自乌龟运维wuguiyunwei.comQQ群:602183872主要区别:Cookie,也称为HTTPcookie,Webcookie或浏览器cookie,是从网站发送到服务器并存储在用户的Web浏览器中的一小部分数据。Cookie用于向网站创建者发送关于上次访... 查看详情

cookie与session的区别

本文分别对Cookie与Session做一个介绍和总结,并分别对两个知识点进行对比分析,让大家对Cookie和Session有一个更深入的了解,并对自己的开发工作中灵活运用带来启示。 cookie机制 Cookies是服务器在本地机器上存储的小段文... 查看详情

session与cookie的区别

...乎著作权归作者所有,转载请联系作者获得授权。COOKIE和SESSION有什么区别?cookie保存在客户端,session保存在服务器端,cookie目的可以跟踪会话,也可以保存用户喜好或者保存用户名密码session用来跟踪会话①当我们登录网站勾选... 查看详情

session与cookie的区别

    1.session:储存用户访问的全局唯一变量,存储在服务器上指定的目录中的(session_dir)的位置进行存放.   2.cookie:用来存储连续访问一个页面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的.  ... 查看详情

cookie与session的区别与联系

...以两者没有直接的关系,禁用cookie后seesion依然可以用。session的运行依赖于sessionid,而sessionid是存在cookie中的。也即,如果客户端禁用了cookie(每次HTTP请求的时候,客户端都会发送相应的Cookie信息到服务端。实际上大多数的应用... 查看详情

cookie与session的区别与联系

...以两者没有直接的关系,禁用cookie后seesion依然可以用。session的运行依赖于sessionid,而sessionid是存在cookie中的。也即,如果客户端禁用了cookie(每次HTTP请求的时候,客户端都会发送相应的Cookie信息到服务端。实际上大多数的应用... 查看详情

cookie与session的区别?

Cookie与Session的区别?1.Cookie与Session都是会话技术,Cookie是运行在客户端,Session运行在服务端。2.Cookie有大小限制,以及浏览器在存Cookie的个数也有限制,Session是没有大小限制和服务器的内存大小有关。3.Cookie有安全隐患,通过... 查看详情

cookie与session的区别

cookie和session的区别相同点:都是用来做会话跟踪的区别:区别cookiesession数据存放位置客户端服务器存储类型只能存储文本类型可以存储object类型是否安全不安全,别人可以分析存放在本地的cookie并进行cookie欺骗session相对来说更... 查看详情

cookie与session的区别

...道下次来访问的还是不是上次访问的客户端。  Cookie与Session的作用都是保持客户端与服务器的交互状态。但是它们的优点和它们的使用场景是矛盾的。当使用Cookie来传递信息时,随着访问量的增加,Cookie个数越来越多,它占... 查看详情

cookie与session的区别与联系

...上的网页和你之前打开这个网页之间没有联系。2.cookie和session原理:cookie和session是一种会话跟踪技术。cookie在客户端(浏览器)保存状态,session在服务器端保存状态。cookie:客户端浏览器发送一个http请求给web服务器。web服务器... 查看详情

session与cookie的区别用法

//设置cookie方法setcookie("name",‘zhangsan‘);setcookie("name",‘zhangsan‘,time()+60);//设置cookie有效时间为60秒//setcookie("visittime",date("y-m-dH:i:s"),time()+60);//设置保存cookie失效时间的变量//读取cookie方法$name=$_COOKIE["n 查看详情