精华内容
下载资源
问答
  • Cookie Session Cache

    千次阅读 2013-02-25 10:34:54
    Cookiecookie Session:会话 Cache:高速缓冲存储器 工作机制 Cookie: 采用的是客户端保存信息的方案。 Session:采用服务器端保存信息的方案。 Cache: 保存写入信息的方案。 cookie  1. ...

    Cookie: cookie
    Session:会话
    Cache:高速缓冲存储器

    工作机制
    Cookie:  采用的是客户端保存信息的方案。
    Session:采用服务器端保存信息的方案。
    Cache:   保存写入信息的方案。

    cookie

        1. Cookie客户端的机制就是用户访问站点时,Web服务器发送给该用户的不仅仅是一个页面,还有一个包含日期和时间的 Cookie。用户的浏览器在获得页面的同时还得到了这个 Cookie,并且将它保存在用户硬盘上的某个文件夹中。
    Cookie是一段文本信息,你可以在你的电脑硬盘中找到许多这种文件,它们通常存放在C:\Documents and Settings\用户名\Cookies。
    那么Web服务器通过Cookie究竟写下了些什么呢?它们用有什么作用呢?
    这些就要看Web服务器的code如何写的了,不过你可以不必担心,服务器在Cookie里写下的信息只是为了你下次访问该站点时节约时间或提供一些特定的服务。而且某些信息数据是加密的(例如密码等),当然也可以通过设置浏览器让它不记录下Cookie。
    应用举例:一些要求用户登录的站点则可以通过 Cookie 来确定您是否已经登录过,这样您就不必每次都输入登录信息;一些站点的投票功能可以简单地利用 Cookie 作为布尔值,表示您的浏览器是否已经参与了投票,从而避免您重复投票。

    但是,我门想下,如果我知道一个网站的用户a和用户b的信息,现在cookie中是a的信息,我通过某些方式把cookie修改为b的信息,如果通过的化,那我不是有b的管理权限了?

    还有,投票的时候,我如果修改cookie为flase,那我岂不是仍然可以投票?

    session

    2. Session服务端的机制是将用户的请求信息放在服务器端来保存信息,服务器使用一种类似于散列表的结构来保存信息。当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为session id,如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用。
    保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。由于cookie可以被人为的禁止,必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。经常被使用的一种技术叫做URL重写,就是把session id直接附加在URL路径的后面。
    这就好像是我们去某些商店去买东西,如果你已是该店的会员,那么商店会给你一张会员卡,下次你再次光顾这家店时只要出示你的会员卡就可以享受订制的服务了。
    由于session只认id不认人,因此不同的浏览器,不同的窗口打开方式以及不同的cookie存储方式都会对它的识别产生影响,这时就容易出现了我们常说的session混乱了。
    还是以上面会员店为例,如忘带会员卡或是会员卡上的照片已经是你好几年前的样子店员无法辨认,商店会重新给你办理一张会员卡。而此时其实你已经有两张会员卡了(session id)正好这两张卡的服务范围不一样(一张是普通卡,一张是VIP卡),当你再次去商店你任意的给了商店一张卡,这样你得到的服务有可能根本不是你想要的,比如你给商店一张普通卡,但是你想享受vip服务。

    当然如果程序写的好是可以避免这种混乱的情况,有时还可以是跨应用程序的session共享。


    cache

    3. 这里说下ie缓存。为了提高访问网页的速率,InternetExplorer浏览器会采用累积式加速的方法,将曾经访问的网页内容(包括图片以及cookie文件等)存放在电脑里。这个存放空间,就称它为IE缓存。以后每次访问网站时,IE会首先搜索这个目录,其中已经有访问过的内容,那IE就不必从网上下载,而直接从缓存中调出来,从而提高了访问网站的速率。

    生命周期区别
    Cookie
    如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。
  如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。有些论坛在你登录时有记住登录信息1个月这类的时间选择,这就是为Cookie设置了过期时间。这时我们就算关闭了浏览器,再次打开访问这个论坛时仍然会是在线状态不需要再次登录。
    Session
    和Cookie不一样,用户关闭浏览器Session仍然保存在服务器端,只要程序发出指令去删除session,服务器会一直保留这个会话对象直到它处于非活动状态超过设定的间隔为止。
    我们有时会误解当用户关闭浏览器时Session已经被删除,是由于大部分session机制都使用cookie来保存session id,而关闭浏览器后这个session id就消失了,再次连接到服务器时也就无法找到原来的session。
    Cache
    由于Cache的机制我们很明显的可以看出,只有清理Cache或是让程序重写Cache。不然这个Cache将会一直存在。


    展开全文
  • 摘要:本文不再介绍cookie session的基本原理,主要介绍它们的代码操作规范 和 运行流程/机制。

      摘要:本文不再介绍cookie session的基本原理,主要介绍它们的代码操作规范 和 运行流程/机制。

    一 . Cookie

      setcookie()函数有6个参数,这里我只列举最常用的前四个参数:

    bool setcookie(string $name[,string $value[,int $expire[,string $path]]]);
    

    参数说明:
    $name
      类型:字符串
      说明:cookie的识别名字
    $value
      类型:字符串
      说明:cookie的值
    $expire
      类型:整形(时间戳)
      说明:cookie的生存期限,为UNIX时间戳,如果没有设定,该cookie在会话结束被删除
    $path
      类型:字符串
      默认值:不设定或设定为空字符串,为设定cookie的当前目录
      说明:服务器端的指定路径,设定后,只有该目录及子目录的脚本可以存取此cookie

    需要注意的问题:

    • cookie是HTTP标头的一部分,因此setcookie()函数要在其他信息被输出到浏览器之前调用;
    • $expire如果要设定,通常是这样 time()+5*60 ,即5分钟后失效;
    • $path通常可以设定为’/’,表示在整个服务器目录下的脚本都可以存取此cookie;

    删除cookie

    <?php
        //第一种方法,只设定cookie的名字
        //cookie值默认为空,则将该cookie的值置为空字符串,isset($_COOKIE['isLogin'])为true
        //生存时间默认为空,那么cookie会在浏览器关闭的时候被删除
        setcookie('isLogin');
        //第二种方法,设定过期时间为历史时间,那么cookie会被立即删除
        //isset($_COOKIE['isLogin'])为false
        setcookie('idLogin','',time()-1);
    ?>

    二 . Session

      写在前面:可以看到cookie的配置项都在setcookie()函数里面指定,而session的配置是提前在PHP的配置文件里面进行配置,注册和销毁session的时候都不会涉及到过期时间、使用路径的问题。

    2.1 配置session

      session的配置项都在PHP的配置文件php.ini中,重要的几个配置项如:session.name/session.use_cookies,因PHP运行环境不同,php.ini的位置也不同,这里不进行详述,网上有很多。
      而且通常这么都不同再配置了,使用默认值就蛮好的了
      我的运行环境是raspberry pi(基于debian的Raspbian版本),记住session文件的位置是/var/lib/php5/sess_*,需要root权限才可以查看session文件。

    2.2 注册一个session变量

      代码太简单就不说了。
      但是注册一个session会话就不简单了,当给一个session变量赋值的时候发生了一下这些事情:

    1. session变量的变量名和值被保存在服务器端的session文件中;
    2. 这个session文件命名为sess_SESSIONID,这个SESSIONID是由32位16进制数字组成的字符串;
    3. 服务器的响应报头里面会有这一行Set-Cookie
      PHPSESSID=qielh3lr31aptftavsnj6qfms7; path=/
    4. 这样就在浏览器端注册了SESSION_ID,以后浏览器请求服务器端脚本都会带上这个SESSION_ID

    2.3 注销session变量与销毁session

      销毁session的代码如下:

    <?php
        //第一步:开启session
        session_start();
        //第二步:删除所有session变量,同时也会删除session文件里面的对应数据
        $_SESSION = array();
        //第三步:如果使用基于cookie的session,则删除浏览器端的cookie
        if(isset($_COOKIE[session_name()])){
            setcookie(session_name(),'',time()-1);
        }
        //第四步:彻底销毁session,其实这里是把session文件删除了
        session_destory();
    ?>

    三 . ThinkPHP使用session

      访问ThinkPHP的应用,默认开启了session,所以cookie里面就已经有SESSION_ID了,服务器端也已经创建了session存储文件,只是文件是空的。
      ThinkPHP使用session()函数来简化session操作。
      具体用法可以见官方文档



    <完>

    展开全文
  • 007:Django Cookie Session

    千次阅读 2019-01-07 17:21:41
    Cookiesession的认识 Cookiesession cookiesession装饰器 1、Cookiesession的认识 Cookie(曲奇):用户识别。 西游记: 李世民 通关文牒 唐僧 通关文牒 女儿国 通关文牒 比丘国 http请求实际是无...

    本章知识点

    1. Cookie和session的认识
    2. Cookie与session
    3. cookie、session装饰器
      在这里插入图片描述
      1、Cookie和session的认识
      Cookie(曲奇):用户识别。
      西游记:
      李世民 通关文牒 唐僧 通关文牒 女儿国 通关文牒 比丘国
      http请求实际是无状态
      用户向服务器发起请求,服务器下发cookie到本地,下次请求,用户携带cookie进行请求,
      Cookie解决用户身份问题
      但是cookie不安全

    Session是为了解决cookie的安全问题
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    2、Cookie与session
    Cookie下发
    cookie是从响应发的。
    Session:在计算机中,尤其是在网络应用中,称为"会话控制"。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
    在这里插入图片描述
    response = HttpResponseRedirect("/index/")
    response.set_cookie() #设置cookie
    #key 键
    #value = ''值
    #max_age = None,寿命 秒
    #expires = None, 过期时间,和寿命时候冲突的
    #path = ‘/’, cookie起作用的路径,整个网站 /student/
    #domain = None, cookie起作用的域名 www.baidu.com
    #secure = False, True用https协议传输cookie
    #httponly = False, 只用http协议传输,通常情况下,js也可以拿到cookie,但是配置httponly为True,就http可以拿到
    请求登录,
    第一次请求登录页面 get
    在这里插入图片描述
    第二次请求登录接口 post Form表单
    在这里插入图片描述
    Cookie 识别
    在这里插入图片描述
    3、cookie、session装饰器
    #装饰器:
    #共性
    #个性
    #给个性的函数添加共性的功能
    def money(fun):
    def inner():
    print(“xxx 用心制造快乐”)
    fun()
    return inner
    @money
    def python_intruce():
    print(“we are python”)
    @money
    def UI_intruce():
    print(“we are ui”)
    @money
    def java_intruce():
    print(“we are java”)
    python_intruce()
    在视图views里添加:
    在这里插入图片描述
    def loginValid(fun):
    def inner(request,*args,**kwargs):
    cookie = request.COOKIES
    email = cookie.get(“email”)
    if email:
    return fun(request,*args,**kwargs)
    else:
    return HttpResponseRedirect("/login/")
    return inner

    Csdn登录逻辑
    1、在请求登录页面的时候,就开始下发cookie
    2、在请求登录接口的时候,会校验第一步的cookie
    3、Form表单当中添加隐藏域

    本章总结
    Cookie和session的认识
    Cookie与session
    cookie、session装饰器

    展开全文
  • cookie session的共同点和区别

    千次阅读 2017-06-08 20:40:16
    cookie session的共同点和区别

    由于HTTP协议是无状态的,在WEB系统中,怎么识别请求来自于哪里呢?是哪一个用户发起的请求呢?

    为了解决这一个问题,

    HTTP协议引入了cookie和session这两个概念

    cookie是服务器传递到浏览器,保存在浏览器中的数据,然后浏览器每次请求都带上cookie,这样就可以标识用哪一个用户发起的请求, 比如说把用户登录的用户名和密码保存在cookie中, 只要cookie没有过期,以后用户每次登录都可以自动登录了,不需要在此输入用户名和密码, 因为浏览器在发起请求的时候已经把cookie中的用户名和密码传递给服务器了。


    session是什么呢?session把用户的信息保存在服务器上面, 浏览器第一次访问的时候服务器把sessionID传递到浏览器,然后浏览器把Session_id保存在cookie中, 每次访问把session_id带上,服务器就可以标识这个请求来自于那个用户,然后根据session_id查这个这个用户的seesion里面记录了哪些数据


    session和cookie的共同点: 记录用户状态

    cookie是记录在浏览器上面

    session是记录在服务器


    http的cookie和session都可以被伪造


    看到一个cookie, 至少要知道cookie这6个字段分别是什么?

    name:cookie的名字

    value: cookie的值

    domain:cookie 的作用域

    path:cookie适用的路径

    secure:cookie 的安全策略

    expire:cookie的过期时间



    展开全文
  • rack cookie session

    2013-10-02 21:54:56
    Rack::Session::Cookie provides simple cookie based session management. The session is a Ruby Hash stored as base64 encoded marshalled data set to :key (default: rack.session). When the secret key ...
  • Cookie Session会话管理
  • 浅析cookie session token

    千次阅读 2019-08-28 17:34:10
    cookie:又称为“小甜饼”。类型为“小型文本文件”,指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密) session:(会话)是一种持久网络协议,在用户(或用户代理)端和...
  • JavaWeb拾遗(6)Cookie Session

    万次阅读 2020-04-02 17:36:02
    Cookie cookie:服务端在客户端上暂时或永久...cookie不是内置对象(session才是) 定义于javax.servlet.http.Cookie 主要方法: public Cookie(String key,String value) 构造方法,cookie是一组键值对,key------v...
  • ASP.NET 的 ViewState Cookie Session 等的比较
  • java-cookie session

    千次阅读 2018-09-06 16:16:26
    参考:https://blog.csdn.net/gaoyong_stone/article/details/79524321 https://blog.csdn.net/qq_35257397/article/details/52967241
  • express 4.X cookie session

    2016-08-26 18:32:30
    1、cookie req.cookies.XX 获取 res.cookie(name,value,{maxAge:0}) //设置cookie 2、session req.session 获取 req.session.XX = 设置session app.use(session({ secret: 'keyboard cat', resave: true, saveUni
  • cookie session的本质

    千次阅读 2013-01-11 11:23:06
    三、理解cookie机制 四、理解session机制 五、理解javax.servlet.http.HttpSession 六、HttpSession常见问题 七、跨应用程序的session共享 八、总结 一、术语session 在我的经验里,session这个词被滥用的...
  • php cookie session

    千次阅读 2012-11-22 00:03:59
    <!-- p.c {line-height:30px; font-size:14px} table.tab {background-color:#000; color:#333} table.tab td {background-color:#FFF; line-height:22px; padding:5px} ...cookie co
  • Yii cookie session 操作

    千次阅读 2014-12-15 13:39:30
    设置cookie: $cookie = new CHttpCookie('mycookie','this is my cookie'); $cookie->expire = time()+60*60*24*30; //有限期30天 Yii::app()->request->cookies['mycookie']=$cookie; 读取cookie:
  • 1, 请求并携带SessionId, 代码如下:   //当请求成共后调用如下代码, 保存Cookie NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL: [NSURL URLWithString:kServerAddress]]...
  • Http会话cookie session

    千次阅读 2016-04-13 00:56:17
    HTTP本身时无状态通信协议,要进行会话管理的基本原理,就是将需要维持的状态回应给浏览器,有浏览器在...Cookie是保存在浏览器上的一个小文件, 可设定存活期限,在浏览器请求Web应用程序时,会一并将属于网站的Coo
  • PHP cookie session

    千次阅读 2012-07-30 17:58:11
    session是保存在服务器端,而sessionid则是保存在客户端,通常也是一个cookie小文件,由于这个小文件除了sessionid(好比卡号)外什么也没有,因此比cookie安全多了。 3、cookiesession有什么用?  常见的...
  • 通过页面访问访问Internal error,通过tail -f @redmine_dir/log/production_log,看到请求处理时发生错误如下:ArgumentError (A secret is required to generate an integrity hash for cookie session data....
  • 如果验证通过,就会创建session来存储相关信息,并且生成一个cookie字符串,把sessionID放在cookie里面。然后返回给浏览器。 当用户下一次发起请求时,浏览器会自动携带cookie去请求服务器,服务器...
  • Cookie Session Token 的区别和用法

    千次阅读 2018-06-06 22:04:17
    Cookie: 特性: 1.客户端会话技术(数据存储在客户端), 2.以key-value的形式进行存储, 3.cookie的操作都是通过Response来实现的 4.典型场景:购物车、登录信息 5.支持过期信息 6.清除策略:默认关闭浏览器是...
  • PHP自学之路----会话技术(cookie session)

    千次阅读 2013-07-23 22:23:07
    会话技术 l 什么是会话 打开浏览器,访问某个网站的很多资源(页面=)通过超链接),当你关闭浏览器后,一个会话结束。 l 思考一个问题 在意个会话中,用户会产生一些数据,比如购物车...会话技术-cookie session Ø
  • cookie session 保存用户登录信息

    千次阅读 2012-10-24 21:12:31
    设置了sessioncookie后用户信息就会保存在上面,登陆后,都会有一个标示,带着这个标示就可以访问每个页面,不用一个一个的发送请求 1、db.class.php //封装数据库类 class db{  private
  • Java Web之五 会话Cookie Session

    千次阅读 2014-11-21 14:54:14
    1.浏览器开始访问网站到访问网站结束期间产生的多次请求响应组合在... Session:服务器端技术  2.Cookie Cookie是基于set-Cookie响应头和Cookie请求头工作的,服务器可以发送set-Cookie请求头命令浏览器保存一个c
  • 虽然后端设置了可以跨域请求,但是后台设置到cookie中的session取不到!这时候mac电脑自己设置nginx代理! mac电脑系统重装了,记录一下安装nginx的过程: 1、打开终端(cmd) 2、安装Command Line tools ...
  • 服务器收到cookie后解析出sessionId,再去session列表中查找,才能找到相应session。依赖cookie cookie类似一个令牌,装有sessionId,存储在客户端,浏览器通常会自动添加。 token也类似一个令牌,无状态,...
  • CookieOptions { Expires = DateTime . Now . AddMinutes ( minutes ) } ) ; } public static void DeleteCookies ( this HttpContext httpContext , string key ) { httpContext ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 55,329
精华内容 22,131
关键字:

cookiesession