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

    ##### cookie 通过在客户端记录信息确定用户身份,Session通过在服务记录信息确定用户身份

    http信息是无状态的协议。一旦数据交换完毕,客户端与服务器的链接就会关闭,再次交换数据需要建立新的链接。这就意味者服务器无法在链接上跟踪会话。
    cookie就是这样的一种机制,它可以弥补http无状态的不足。
    - 通过request.getCookie()获取客户端提交的所有的Cookie(Cookie[])数组形式返回。
    - response.addCookie(Cookie cookie) 向
    客户端设置Cookie.

    - cookie的不可夸域名性

    Cookie在客户端是由浏览器来管理的
    不同的域名的客户端是不能相互操作的
    - cookie 的删除与修改
    Cookie如果要修改某个Cookie,只需要新建一个同名的Cookie,添加到response中覆盖原来的Cookie。

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

    ##
    Session是服务器端使用的一种记录客户端状态的
    机制,使用上比Cookie简单些,相应的增加服务的存储压力。
    - session保存在服务器端,为了获得更高的存取速度,服务器一帮把Session放在内存里;每个用户都会有独立的session。
    session在用户定一次访问的时候自动创建。

    - session在用户第一次访问服务器的时候自动创建。需要注意只要访问jsp servlet等程序才会创建session,只访问html image等静态资源并不会创建session.
    session 生成后,只要用户继续访问,服务器
    就会更新session的最后访问时间,并维护该session。用户没访问服务器一次,无论是否读写session,服务器都认为该用户的session"活跃 (active)"了一次
    -- session对浏览器的要求
    虽然session保存在服务器,对客户端是透明的,它的正常运行仍然需要客户端支持。这是因为session需要使用cookie作为识别标志。http协议是无状态的,session不能依据http协议来判断是否为同一用户,因此服务器向客户端浏览器发送一个名为jsessionid的cookie,它的值为该session的id(也就是HttpSession.getId()返回的值)。session依据该cookie来识别

    是否为同一用户。该cookie为服务器自动生成的,它的maxAge属性一般为-1,表示仅当前浏览器内有效,并且各浏览器口间共享,关闭浏览器就会失效。因此同一机器的两个浏览器窗口访问服务器时,会生成两个不同的Session.

    但是由浏览器窗口内的链接、脚本等(打开的新窗口也就是说不是双击桌面浏览器图标等打开的窗口)除外。这类子窗口会共享父窗口的Cookie,因此会共享一个Session。

    注意:新开的浏览器窗口会生成新的Session,但子窗口除外。子窗口会共用父窗口的Session。例如,在链接上右击,在弹出的快捷菜单中选择“在新窗口中打开”时,子窗口便可以访问父窗口的Session。

    如果客户端浏览器将Cookie功能禁用,或者不支持Cookie怎么办?例如,绝大多数的手机浏览器都不支持Cookie。Java Web提供了另一种解决方案:URL地址重写。

  • 相关阅读:
    算术操作、张量转换、矩阵运算、归约计算
    CNN与RNN
    基本使用与常用函数
    RNN与LSTM
    CNN训练算法与正则化
    CNN的层级结构
    激活函数
    反向传播与参数更新
    Pipline
    模型存储
  • 原文地址:https://www.cnblogs.com/caibixiang123/p/10191327.html
Copyright © 2011-2022 走看看