zoukankan      html  css  js  c++  java
  • 转:cookie和session(一)——原理

    文章来自于: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将失效。
  • 相关阅读:
    查看PL/SQL编译时的错误信息
    Oracle字符集的查看查询和Oracle字符集的设置修改
    关于数字货币 韩国似乎在下一盘大棋
    上传图片如何对图片进行压缩canvas
    socket应用(vue、node.js、M站)
    web前端学习python之第一章_基础语法(二)
    从零开始 —— Canvas(一)
    前端必备之Node+mysql+ejs模版如何写接口
    浏览器缓存机制
    前端实现数组去重,如何高效快捷?
  • 原文地址:https://www.cnblogs.com/guoyongrong/p/3685227.html
Copyright © 2011-2022 走看看