zoukankan      html  css  js  c++  java
  • cookie和Session

    好文推荐:http://blog.csdn.net/fangaoxin/article/details/6952954(Cookie/Session机制详解

    Cookie的属性

    name :cookie名称,一旦创建,不可改变

    value :cookie值

    maxAge:cookie失效时间,单位:秒。正数:该cookie在maxAge秒后失效,负数:为临时cookie,关闭浏览器即失效。0:删除该cookie.默认为-1.

    secure:该cookie是否仅被使用安全协议传输。默认为false.

    path:该cookie的使用路径。

    domain:可以访问该cookie的域名。如果设置为“.google.com”,则所有以"google.com"结尾的域名都可以访问该cookie.

    comment:该cookie的用处说明。

    使用cookie的状态管理

    ---HTTP是无状态协议,它不对之前发生过的请求和响应的状态进行管理。也就是说,无法根据之前的状态进行本次的请求处理。

    ---假设要求登录认证的WEB页面本身无法进行状态的管理(不记录已登录的状态),那么每次跳转新页面不是要再次登录,就是要在每次请求报文中附加参数来管理登录状态。不可否认,无状态协议有它的优点,因为不必保存状态,自然可以减少服务器的CPU及内存资源的消耗。也正是因为HTTP协议本身是非常简单的,所以才会被应用到各个场景里。

    ---保留无状态协议这个特征的同时又要解决类似的矛盾问题,于是引入了cookie技术。Cookie技术是通过在请求和响应报文中写入cookie信息来控制客户端的状态。

    ---cookie会根据从服务器端发送的响应报文内的一个叫做Set-cookie的首部字段信息,通知客户端保存cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入cookie值后发送出去。服务器端发送客户端发送来的cookie后,会去检查究竟是从哪一个客户端发送来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

    简单来说,就是

    1.第一次请求(没有cookie信息状态下的请求)

         浏览器:保存请求

         服务器:生成cookie,记住是向谁发送的,在响应中添加cookie后返回

         浏览器:保存cookie

    2.第二次请求

        浏览器:在请求中添加cookie后发送

        服务器:检查cookie,哦,原来是刚才那家伙的请求,响应

     Session机制

           Web应用程序中另一个记录客户端状态的方式:Session。Session是服务器端使用的一种记录客户端状态的机制,会增加服务器的存储压力。

    客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是Session。浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。如果说Cookie机制是通过检查客户身上的通行证来确定客户的身份,那么Session机制就是通过检查服务器上的客户明细表来确认客户的身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要检查档案就可以了。当多个客户端执行程序时,服务器端会保存多个客户端的Session。获取Session的时候不需要声明获取谁的Session,Session机制决定了当前客户只会获取到自己的Session,而不会获取到别人的Session,各个Session彼此独立,互不相见。

    Session 对浏览器的要求

          虽然Session保存在服务器,对客户端是透明的,它的正常运作仍然需要客户端浏览器的支持。这是因为Session需要使用Cookie作为识别标志。http协议是无状态的,session不能依据http连接来判断是否为统一客户,因此服务器向浏览器发送一个名为JSESSIONID的cookie,它的值为该Session的id.Session依据该Cookie来识别是否为同一用户。

  • 相关阅读:
    EurekaLog 6 安装在XE3中
    有趣的python精短程序
    python中的map,filter,reduce,lambda (转)
    python自动下载太平洋电脑网上的壁纸
    ASP.NET MVC Preview3 bug 及期望 [集]
    中小网站在域名、服务器等选择上的一点总结
    为ASP.NET MVC开发一些常用插件(三)——Repeater
    为ASP.NET MVC开发一些常用插件(二)—— 实现无刷新文件上传
    Implementing the Singleton Pattern in C#
    [原创]开发一个适合Ajax+JSON+jQuery环境使用的多功能页码栏——jPagerBar1.1.1
  • 原文地址:https://www.cnblogs.com/xuezhi/p/5198605.html
Copyright © 2011-2022 走看看