文章来自于:http://blog.csdn.net/half1/article/details/21645545

一、cookie和session是什么?

 
cookie是服务器留在客户端中的小文件,常用于识别用户。
当你在浏览网站的时候,web服务器会先把一小块资料放在你的计算机上,cookie会帮你在网站上所打的文字或者一些选择都记录下来,存在客户端硬盘的文本中(通常是加密的),当你下次再浏览同一网站时,web服务器会先看看有没有它上次留下的cookie,有的话,就会依据cookie里的内容来判断使用者,送出特定的网页内容给你。
cookie的使用很普遍,许多有提供个人化服务的网站,都是利用cookie来辨认用户,以方便送出用户量身定做的内容。
 
session是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过sessionID来区分不同的客户。
session是以cookie或URL重写为基础的,默认使用cookie来实现。系统会创建一个名为SESSIONID的输出cookie,我们叫做session cookie,以区别persistent cookie(平常所说的cookie)。注意session cookie是存储于浏览器内存中的,并不是写到硬盘上的。
 

二、cookie和session是用来干什么的?

 
cookie和session是用来维持状态的。
http是无状态的协议,客户每次读取 web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,为了维持用户状态,就出现了cookie和session这两种机制。
 

三、cookie和session的原理

 
cookie机制采用的是在客户端保持状态的方案。
服务器通过在HTTP的响应头中加上一行特殊的指示一提示浏览器按照指示生成相应的cookie。
 
 
session机制采用的是在服务器端保持状态的方案。
当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含一个sessionID,如果已包含则说明以前已经为此客户端创建过session,服务器就按照sessionID把这个session检索出来使用(如果检索不到,可能会新建一个),如果客户端的请求不包含sessionID,则为此客户端创建一个session并且生成一个与此session相关联的sessionID。
sessionID的是一个既不会重复,又不容易被找到规律以仿造的字符串,这个sessionID将被本次响应中返回给客户端保存。
 

四、cookie和session的区别与联系

 
1)session保存在服务器,cookie保存在客户端。
2)session中保存的是对象,cookie中保存的是字符串。
3)session不能区分路径,同一个用户在访问义工网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。
4)session依赖于cookie,如果客户端完全禁止cookie,session将失效。

转:cookie和session(一)——原理的更多相关文章

  1. Cookie和Session的原理和异同

    Cookie和Session的原理和异同 原理: cookie: 1.创建Cookie 当用户第一次浏览某个使用Cookie的网站时,该网站的服务器就进行如下工作: ①该用户生成一个唯一的识别码(Co ...

  2. COOKIE和Session的原理及异同

    COOKIE和Session的原理及异同 1. cookie的创建和读取 cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器.当用户使用浏览器再去访问服务器中的w ...

  3. 正确理解cookie和session机制原理

    php中cookie和session是我们常用的两个变量了,一个是用户客户端的,一个用在服务器的但他们的区别与工作原理怎么样,下面我们一起来看看cookie和session机制原理吧. cookie和 ...

  4. 编写一篇博文介绍COOKIE和Session的原理及异同

    一.什么是cookie 1.概念 Cookie是存储在客户机的文本文件,它们保存了大量轨迹信息.在servlet技术基础上,JSP显然能够提供对HTTP cookie的支持. Cookie 是在 HT ...

  5. cookie和session的原理机制

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  6. cookie、Session工作原理

    一.cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案. 同时我们也看到,由于在服务器端保持状态的 ...

  7. day4(cookie与session的原理及区别)

    1.COOKIE使用和优缺点 1.1 cookie原理:用户名+密码 cookie是保存在用户浏览器端,用户名和密码等明文信息 1.2session使用原理 session是存储在服务器端的一段字符串 ...

  8. Session 的原理及最佳实践

    Http协议是基于请求和响应的一种无状态的协议,而通过session可以使得Http应用变得有状态,即可以"记住"客户端的信息.今天就来说说这个session和cookie. Se ...

  9. 浅谈cookie和session

    Cookie简介 Cookie(复数形态Cookies),中文名称为“小型文本文件”,指某些网站为了辨别用户身份或存储用户相关信息而存储在用户本地终端(Client Side) 上的数据(通常为加密数 ...

随机推荐

  1. Chapter 1. OpenGL基础回顾 - Review of OpenGL Basics

    译自<OpenGL® Shading Language, Second Edition> 本章主要回顾OpenGL应用编程接口,为后续章节中的材质铺垫基础.这并不是详尽的回顾.如果你已经 ...

  2. listview 遇到问题java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0

    开发的时候 遇到 java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0 这个异常有时候会有,有时候正常 不太好捕捉 猜测 已经 ...

  3. mongo 多条件 查询

    var query1 = Query<BaseManagerForCompanyModel>.EQ(q => q.sGuidBaseCompany, sGuidBaseCompany ...

  4. 深入理解Android 自定义attr Style styleable以及其应用

    相信每一位从事Android开发的猿都遇到过需要自己去自定义View的需求,如果想通过xml指定一些我们自己需要的参数,就需要自己声明一个styleable,并在里面自己定义一些attr属性,这个过程 ...

  5. Meth | 安装Linux Mint 18以后grub2 win10启动引导项丢失??!!

    进入mint,打开终端输入:sudo update-grub2

  6. git的一些概念和技巧

    1. 分支代表最后三个commit(即HEAD, HEAD^和HEAD~2),前一个commit,也用HEAD~1 2. 查看一个文件的改动历史git log (--pretty=oneline) - ...

  7. Android常用功能代码块(转)

    1.设置activity无标题,全屏 // 设置为无标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); // 设置为全屏模式 getWindow(). ...

  8. ansible小结

    一.Ansible的安装 1.yum源安装 以centos为例,默认在源里没有ansible,不过在fedora epel源里有ansible,配置完epel 源后,可以直接通过yum 进行安装.这里 ...

  9. Codeforces 245G Suggested Friends - 交集set_intersection()

    一些人互相是朋友(无向图连一条无向边),现在要添加一个推荐朋友的功能,如果对于x,有y,x与y不是朋友,但是y和x有共同的朋友,并且共同的朋友最多,那么y可以推荐给x.问对于每一个人,有多少人值得推荐 ...

  10. expdp 备份数据库

    操作系统层面创建目录 [root@Oracle10g ~]# mkdir -p /home/oracle/db_back/ 2. 修改目录的所属用户.所属组 [root@Oracle10g ~]# c ...