session和cookie区别&它们的用法

(一)、区别1、cookie数据存放在客户的浏览器上,session数据放在服务器上。2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗   考虑到安全应当使用session。3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能   考虑到减轻服务器性能方面,应当使用COOKIE。4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

cookie 和session 的联系:session是通过cookie来工作的session和cookie之间是通过$_COOKIE[‘PHPSESSID‘]来联系的,通过$_COOKIE[‘PHPSESSID‘]可以知道session的id,从而获取到其他的信息。在购物网站中通常将用户加入购物车的商品联通session_id记录到数据库中,当用户再次访问是,通过sessionid就可以查找到用户上次加入购物车的商品。因为sessionid是唯一的,记录到数据库中就可以根据这个查找了。(二)、区别

1、cookie数据存放在客户的浏览器上,session数据放在服务器上.

简单的说,当你登录一个网站的时候,如果web服务器端使用的是session,那么所有的数据都保存在服务器上面,

客户端每次请求服务器的时候会发送 当前会话的session_id,服务器根据当前session_id判断相应的用户数据标志,以确定用户是否登录,或具有某种权限。

由于数据是存储在服务器 上面,所以你不能伪造,但是如果你能够获取某个登录用户的session_id,用特殊的浏览器伪造该用户的请求也是能够成功的。

session_id是服务 器和客户端链接时候随机分配的,一般来说是不会有重复,但如果有大量的并发请求,也不是没有重复的可能性,我曾经就遇到过一次。

登录某个网站,开始显示的 是自己的信息,等一段时间超时了,一刷新,居然显示了别人的信息。

Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户端,用Cookie保存的,用户提交页面时,会将这一 SessionID提交到服务器端,来存取Session数据。这一过程,是不用开发人员干预的。所以一旦客户端禁用Cookie,那么Session也会失效。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。(Session对象没有对存储的数据量的限制,其中可以保存更为复杂的数据类型)

注意:

session很容易失效,用户体验很差;

虽然cookie不安全,但是可以加密 ;

cookie也分为永久 和暂时 存在的;

浏览器 有禁止cookie功能 ,但一般用户都不会设置;

一定要设置失效时间,要不然浏览器关闭就消失了;

例如:

记住密码功能就是使用永久cookie写在客户端电脑,下次登录时,自动将cookie信息附加发送给服务端。

application是全局性信息,是所有用户共享的信息,如可以记录有多少用户现在登录过本网站,并把该信息展示个所有用户。

两者最大的区别在于生存周期,一个是IE启动到IE关闭.(浏览器页面一关 ,session就消失了)

一个是预先设置的生存周期,或永久的保存于本地的文件。(cookie)

一、cookie可以设置值和获取值,删除等一些其他功能
//设置cookie
  function set(name,value,iDay){
  if(iDay){
  var oDate=new Date();//初始化时间
  oDate.setDate(oDate.getDate()+iDay);//时间
  document.cookie=name+‘=‘+value+‘;path=/;expires=‘+oDate;//用户写时间
  }else{
  document.cookie=name+‘=‘+value+‘;path=/;‘////如果用户没写时间则执行这个
  //时间可以不要,但路径(path)必须要填写,因为JS的默认路径是当前页,如果不填,此cookie只在当前页面生效!
  }
  }
 //获取cookie  
  function get(name){
  var arr=document.cookie.split("; ");
  for (var i=0;i<arr.length;i++) {
  var arr1=arr[i].split(‘=‘);
  if(arr1[0]==name){
  return arr1[1];
  }
  }
  return ‘‘;
 
//删除cookie
  function remove(name){
  set(name,‘aaaa‘,-1);
  }
  remove(‘jack‘);
  alert(get(‘jack‘));
  // set(‘jack‘,‘1234‘,5); 

二、session

    设置session

      java里面,可以给session添加自定义key,value(HttpServletRequest request 作为方法的输入参数)

      HttpSession session = request.getSession();
      session.setAttribute("usrid", userid);

    取得session

      jsp里面可以   这段来源自CSDN一个讨论贴,自己时间后并没有成功,报错是session is undifiened,后来又找了资料说 javascript不提供访问session的功                      能。session只能通过动态程序操作,可以使用ajax给javascript返回值。

      session.getAttribute("username");

      java里面可以 (HttpServletRequest request 作为方法的输入参数)

      HttpSession session = request.getSession();

      session.getAttribute("usrname");
时间: 2024-12-29 13:39:30

session和cookie区别&它们的用法的相关文章

简述Session与Cookie区别,注意SessionID 的作用

Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间.而SessionID这一数据则是保存到客户端,用CookieSession是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间.而SessionID这一数据则是保存到客户端,用Co

session和cookie区别,多台WEB服务器如何共享session,禁用COOKIE后SESSION是否可用,为什么?

答:session的运行机制: 用户A访问站点Y,如果站点Y指定了session_start();(以下假设session_start()总是存在)那么会产生一个session_id,这个session_id一般会以COOKIE的形式保存到用户A(我们可以通过在php.ini里设置session.use_only_cookies为1,强制SESSIONID必须以COOKIE专递.).这时候SESSIONID表现为$_COOKIE[‘PHPSESSID’];(PHPSESSID可用session_

session 与 cookie 区别

cookie是什么呢?session又是什么? 先来了解几个概念. 1.无状态的HTTP协议: 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器. HTTP协议是无状态的协议.一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接.这就意味着服务器无法从连接上跟踪会话. 2.会话(Session)跟踪: 会话,指用户登录网站后的一系列

session 与 cookie 区别-----https://segmentfault.com/a/1190000013447750?utm_source=tag-newest

cookie数据存放在客户的浏览器上,session数据放在服务器上. cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session. session会在一定时间内保存在服务器上.当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE. 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie. 所以个人建议:将登陆信息等重要信息存放为SESSION其他信息如果需要保留,可以放在C

SESSION和cookie的使用和区别

PHP中SESSION和cookie的使用和区别 cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制. PHP在http协议的头信息里发送cookie, 因此 setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对 header() 函数的限制类似. 1.1 设置cookie: 可以用 setcookie() 或 setrawcookie() 函数来设置 cookie.也可以通过向客户端直接发送http头来设置. 1.1.1 使用setcookie()函数设置

浅谈Session与Cookie的区别与联系

一.Session的概念 Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标识这个Session,并将其通过响应发送到浏览器.当浏览器第二次发送请求,会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存的所有Session ID进行对比,找到这个用户对应的Session. 一般情况下,服务器会在一定时间

详解Session和cookie

1.cookie 1.1. 为什么会有cookie? 由于HTTP是无状态的,服务端并不记得你之前的状态.这种设计是为了HTTP协议的方便,但是也存在一些问题.比如我们登录一个购物网站,我们需要用户登录后才能进行物品的购买,但是由于HTTP无状态性,在你向服务端发起下一次请求的时候服务端并不会记得你之前登录过,所以服务端会要求客户再次登录:显然这样的用户体验是非常不好的,这个例子在我之前做购物网站的时候也遇见过.于是就引入了cookie来保存你的用户名.密码.浏览的网页等信息.当客户端要发送ht

session 与 cookie的区别用法

//设置cookie方法 setcookie("name",'zhangsan'); setcookie("name",'zhangsan',time()+60);//设置cookie有效时间为60秒 //setcookie("visittime",date("y-m-d H:i:s"),time()+60);//设置保存cookie失效时间的变量 //读取cokie方法 $name=$_COOKIE["name&q

Session和Cookie的用法及区别

Session.Cookie概念 1.1概念理解 1.1.1 无状态的HTTP协议 协议:是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则. 超文本传输协议(HTTP):是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器. HTTP协议是无状态的协议.一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接.这就意味着服务器无法从连接上跟踪会话. 1.1.2 会话(Session)跟踪 会话:指用户登录网站后的一系列