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

    创建:sessionid第一次产生是在直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建。

    删除:超时;程序调用HttpSession.invalidate();程序关闭;

    session存放在哪里:服务器端的内存中。不过session可以通过特殊的方式做持久化管理(memcache,redis)。

    session的id是从哪里来的,sessionID是如何使用的:当客户端第一次请求session对象时候,服务器会为客户端创建一个session,并将通过特殊算法算出一个session的ID,用来标识该session对象

    session会因为浏览器的关闭而删除吗?

    不会,session只会通过上面提到的方式去关闭。
    ---------------------

    Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。
    ---------------------

     Cookie的有效期

    Cookie的maxAge决定着Cookie的有效期

    Cookie的修改、删除

    Cookie并不提供修改、删除操作。如果要修改某个Cookie,只需要新建一个同名的Cookie,添加到response中覆盖原来的Cookie。

    如果要删除某个Cookie,只需要新建一个同名的Cookie,并将maxAge设置为0,并添加到response中覆盖原来的Cookie。注意是0而不是负数。负数代表其他的意义。读者可以通过上例的程序进行验证,设置不同的属性。

    注意:修改、删除Cookie时,新建的Cookie除value、maxAge之外的所有属性,例如name、path、domain等,都要与原Cookie完全一样。否则,浏览器将视为两个不同的Cookie不予覆盖,导致修改、删除失败。


    ---------------------
     案例:永久登录

    只在登录时查询一次数据库,以后访问验证登录信息时不再查询数据库。实现方式是把账号按照一定的规则加密后,连同账号一块保存到Cookie中。下次访问时只需要判断账号的加密规则是否正确即可。

  • 相关阅读:
    MongoDB-JAVA-Driver 3.2版本常用代码全整理(4)
    MongoDB-JAVA-Driver 3.2版本常用代码全整理(3)
    MongoDB-JAVA-Driver 3.2版本常用代码全整理(2)
    MongoDB-JAVA-Driver 3.2版本常用代码全整理(1)
    c++清除输入缓冲区之 sync() vs ignore()
    typedef 类型重命名 和 #define 宏定义(1)
    从gcc的__attribute__((packed))聊到结构体大小的问题
    对于volatile的理解
    把一个string串的所有小写字母转成大写字母的例子来看看看全局函数的使用
    string与char* 互相转换以及周边问题
  • 原文地址:https://www.cnblogs.com/weiikun/p/10992706.html
Copyright © 2011-2022 走看看