Cookie与Session的区别

cookie的简介

  • cookie是Web服务器保存在客户端的一系列文本信息
  • cookie的作用
    • 对特定对象的追踪
    • 统计网页浏览次数
    • 简化登录
  • 安全性能:容易信息泄露

Session是什么

用途

  1. Session可以记录用户的登录与行为数据,即记录下用户目前访问服务器上的那些内容,状态是什么,而考虑到这些数据用户修改的随意性很大,并没有必要直接存储在数据库中。
  2. 在用户执行刷新操作时,即再次访问服务器时,可以直接根据Session,打开用户上次访问时网页的状态(如用户输入的表单内容等等),为用户带来更优的体验,提供个性化服务。
  3. 用户的session信息非常关键,它记录了用户在进入页面、查看结果、点击结果以及后继的操作(比如翻页、加购物车等)。只有通过session信息才能把用户的行为联系起来,构建出完整的模型,因此从海量数据中把每一个用户所有session的操作都完整地挖掘出来非常重要。

Session其实就是会话变量的保存地,只要是能使用变量的地方,都能使用 Sesion 变量。比如可以用来 计数、存储临时信息、甚至还可以存储DataTable,只要你的服务器的内存足够大就行。 简单通俗的讲session就是象一个临时的容器 来存放这些临时的东西 从你登陆开始就保存在session里 当然你可以自己设置它的有效时间和页面 举个简单的例子 我们做一个购书的JSP网站 顾客买书的时候会挑选出一些书 但是在付钱之前还可以修改,所以不能存到数据库 就可以先保存在session里 等到确认了以后再放入数据库...

定义

在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。 需要注意:新开的浏览器窗口会生成新的Session,但子窗口除外。子窗口会共用父窗口的Session。例如,在链接上右击,在弹出的快捷菜单中选择"在新窗口中打开"时,子窗口便可以访问父窗口的Session。需要注意:只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session

Session和cookie的区别与联系

具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。两者存储的都是用户登录信息,操作行为等等的数据。

  • cookie是把用户的数据写在用户本地浏览器上, 其他网站也可以扫描使用你的cookie,容易泄露自己网站用户的隐私,而且一般浏览器对单个网站站点有cookie数量与大小的限制。
  • Session是把用户的数据写在用户的独占session上,存储在服务器上,一般只将session的id存储在cookie中。但将数据存储在服务器对服务器的成本会高。
  • session是由服务器创建的,开发人员可以在服务器上通过request对象的getsession方法得到session
  • 一般情况,登录信息等重要信息存储在session中,其他信息存储在cookie中

session的实现原理

服务器会为每一个访问服务器的用户创建一个session对象,并且把session对象的id保存在本地cookie上,只要用户再次访问服务器时,带着session的id,服务器就会匹配用户在服务器上的session,根据session中的数据,还原用户上次的浏览状态或提供其他人性化服务。

cookie与session的对比

  • session

    • 保存在服务器端用户信息
    • session中保存的是Object类型
    • 随会话的结束而将其存储的数据销毁
    • 保存重要的信息
  • cookie
    • 客户端保存用户信息
    • cookie保存的是 String类型
    • cookie可以长期保存在客户端
    • 保存不重要的用户信息

Cookie 与 Session 的区别的更多相关文章

  1. Cookie和Session的区别

    前言 HTTP是一种无状态的协议,为了分辨链接是谁发起的,就需要我们自己去解决这个问题.不然有些情况下即使是同一个网站我们每打开一个页面也都要登录一下.而Session和Cookie就是为解决这个问题 ...

  2. cookie 和session 的区别详解

    这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪 ...

  3. Cookie和Session的区别详解

    本文引用自:http://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一 ...

  4. cookie 和session 的区别

    假如我填好了淘宝的用户名密码,点击登录,浏览器客户端像服务器端发送请求,这时服务器端看这个用户是第一次登陆,session会让客户端这个浏览器生成个cookie,并给cookie一个session i ...

  5. Cookie与Session的区别-总结很好的文章

    Cookie与Session的区别-总结很好的文章 本文分别对Cookie与Session做一个介绍和总结,并分别对两个知识点进行对比分析,让大家对Cookie和Session有一个更深入的了解,并对 ...

  6. 【转】cookie和session的区别

    原作者:施杨(施杨's Think out)出处:http://shiyangxt.cnblogs.com ************** 本文版权归原作者和博客园共有,欢迎转载,转载请保留该申明 ** ...

  7. 认识cookie与session的区别与应用

    通常我们所说的浏览器自动保存密码,下次不用登陆,网页换皮肤,用户引导,提示一次就不再出现的内容,大部分通过cookie或者session来实现的,在这次制作用户引导中,本人就用到了cookie的内容, ...

  8. JavaWeb之Cookie和Session的区别

    Cookie和Session的区别 一.cookie机制和session机制的区别 ********************************************************** ...

  9. cookie和session的区别及在Django中应用

    Django中Cookie和session应用 什么是cookie? cookie是客户端浏览器上的一个文件,以键值对进行保存,类似于字典的 {'key' : 'value'} ,与服务器端没有关系, ...

  10. cookie 和session 的区别(转)

    二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪录下来.当下次你再光临同一个网站,WEB 服务器会先看看有 ...

随机推荐

  1. Collection、泛型

    Collection.泛型 Collection.泛型 Collection.泛型 Collection.泛型 Collection.泛型 Collection.泛型 Collection.泛型

  2. 项目经验:Glyphicons字体图标改造,制造适合自己项目的字体图标

    Bootstrap对我们来说已经不陌生了,大型的项目一定会用到它.它的DOM结构,字体图标,组件,响应式布局等,很大程度上提高了WEB开发速度. 在bootstrap刚出来的时候,它拥有丰富的组件.美 ...

  3. ECharts 上手

    一.获取 ECharts 你可以通过以下几种方式获取 ECharts. 从官网下载界面选择你需要的版本下载,根据开发者功能和体积上的需求,我们提供了不同打包的下载,如果你在体积上没有要求,可以直接下载 ...

  4. 关于after和before

    你可曾'百度一下'? 在以前的很多时候,当我断网了,或者网络出了莫名其妙的问题时,我总是第一个输入它的网址.它不仅仅是一个搜索引擎.它还是我检验网络的唯一标准(手动滑稽). CSS中的after和be ...

  5. js 设置 cookie

    function setCookie(name,value){ var Days = 30; var exp = new Date(); exp.setTime(exp.getTime() + Day ...

  6. C#常用控件的属性以及方法(转载)

    -----以前看别人的,保存了下来,但是忘了源处,望见谅. C#常用控件属性及方法介绍 目录 1.窗体(Form) 2.Label (标签)控件 3.TextBox(文本框)控件 4.RichText ...

  7. NewStar 信息分发系统设计

    目录 NewStar 信息分发系统设计 我想要怎么做 系统流程图 解释和初步的模板展示 NewStar 信息分发系统设计 我们在全世界发布网站本质就是向全世界分发我们的信息给客户/潜在客户,然后希望促 ...

  8. web.config文件executionTimeout的单位

      executionTimeout:表示允许执行请求的最大时间限制,单位为秒

  9. JavaSE_5_线程

    1.多线程中的i++线程安全吗?为什么? 不安全,因为每个线程都有自己的工作内存,每个线程需要对共享变量操作时必须把共享变量从主内存中加载到自己的工作内存,等完成操作后再保存到内存中,如果一个线程运算 ...

  10. BZOJ3798: 特殊的质数(分段打表)

    题意 题目链接 Sol 分块打表,非常好的思想. 对于这种求$[A, B]$区间内xxx的数的个数,然后$B$又不算是特别大的题,考虑分段打表 每个块的大小为$10^5$,打$3 * 10^3$个.然 ...