zoukankan      html  css  js  c++  java
  • cookie和Session产生的背景及使用(上)

    前言

      WEB应用程序使用HTTP协议通信,而HTTP协议是"无状态"协议,即服务器一旦响应完客户的请求之后,就断开连接,而同一个客户的下一次请求将重新建立网络连接,服务器应用程序有时是需要判断是否为同一个客户发出的请求,比如客户的多次选购商品,,因此,有必要跟踪同一个客户发出的请求

    状态管理

      将客户端(浏览器)与服务器之间多次交互(一次请求,一次响应)当做一个整体来看待,并且将多次交互所涉及的数据即状态保存下来              状态指的是数据                  管理指得是多次交互时对数据的修改

    由此产生了两种状态管理的常见模式

      客户端状态管理技术:      将状态保存在客户端,.代表性的是Cookie技术

           服务器端状态管理技术:   将状态保存在服务器端,代表性的是Session技术

    什么是cookie

      因为http协议是一种无状态协议,,服务器一旦响应完客户端的请求后就会断开连接,同一个客户的下一次请求将重新建立网络连接,而服务器应用程序有时候是需要判断是否为同一个客户发出的请求,,这时候就需要将客户端与服务端之间的交互当做整体记录下来进行管理

      具体:

          浏览器向WEB服务器发送请求时,服务器会将少量的数据以set_Cookie消息头的方式发送给浏览器,浏览器将这些数据保存下来;

    客户端发送请求:

    服务端处理:

     key只能自己定义用来区分不同的Cookie的名字

           

          当浏览器再次访问服务器时,会将这些数据以Cookie消息头的方式发送给服务器

     服务器的处理

     修改Cookie

      

    Cookie的生存空间

      默认情况下,浏览器会将Cookie保存在内存中,只要浏览器不关闭,Cookie就一直存在

     如果希望关闭浏览器后Cookie仍在,可以通过设置过期时间

      void Cookie.setMaxAge(int seconds);     注seconds单位是秒,精度不是很高

    Cookie的生存时间

      seconds>0:

            浏览器要保存Cookie的最长时间为设置的参数值,如果超过指定的时间,浏览器会删除这个Cookie.此时Cookie保存早硬盘上.

      seconds=0:

            删除Cookie,在修改Cookie的生存时间为0后,随着response发送回客户端,替换原有Cookie,因生命周期到了即将该Cookie删除

          seconds<0:

            缺省值,浏览器会将Cookie保存到内存中

     Cookie编码

          

    Cookie解码

    Cookie的路径

    发送Cookie的条件

    可以修改Cookie的路径

     

    Cookie的限制

  • 相关阅读:
    hibernate set的3个属性
    我的Android进阶之旅------&gt;Android无第三方Jar包的源代报错:The current class path entry belongs to container ...的解决方法
    SAN,NAS,DAS的差别
    SSDT表概念具体解释
    《COM本质论》COM是一个更好的C++心得分享
    Hadoop学习小结
    出来混,是否应该吹牛皮
    出来混,是否应该吹牛皮
    创业的关键:顺势而为
    创业的关键:顺势而为
  • 原文地址:https://www.cnblogs.com/daemonzd47/p/11205954.html
Copyright © 2011-2022 走看看