cookie与会话session

会话概述

  • 如同一次电话通话,屡次交谈就是请求和响应,一旦断开就结束了浏览器

  • 会话中要解决的问题,屡次请求数据的的保持问题缓存

客户端技术Cookie

  • 一、HTTP协议的消息头服务器

    • 请求消息头:Cookie 客户端向服务器端传递信息cookie

    • 响应消息头:Set-Cookie 服务器端向客户端传递信息session

  • 二、Cookie详解:dom

    • 属性:网站

      • name:Cookie的名称,必要的属性code

      • value:Cookie的取值(不能为中文),必要的属性对象

      • -------------------如下为可选属性内存

      • path:Cookie的路径

      • 默认值就是写cookie的那个资源的访问路径
        好比:http://localhost:8080/day09_0... path就是/day09_00_cookie/servlet/

- 注意:
- 若是一个存在浏览器缓存中的cookie的路径是/day09/servlet/,当访问http://localhost:8080/day09/CookiePathDemo1时,浏览器根本不带Cookie给服务器。浏览器比对的是cookie的路径和当前访问的资源的路径。

- 浏览器知足一下条件就会带cookie给服务器:
- 当前访问的地址的路径.startWith(已存cookie的路径)。
- 即:若是一个Cookie的路径设置为了当前应用,说明访问该网站的任何资源时浏览器都带该cookie给服务器。(开发中常常作的)

- maxAge:Cookie的最大生存时间。默认是在浏览器的内存中。
- domain:Cookie的域名(网站)。默认就是写cookie的那个资源所属的网站。http://localhost:8080/day09_00_cookie/servlet/CookieDemo1域名就是localhost

- version:版本号
- comment:注释

把Cookie写给客户端:

  • HttpServletResponse.addCookie(Cookie c):实际上就是向客户端发送了一个响应消息头。

  • 注意:客户端只能保存一个网站最多20个Cookie数据,总共最多300个。每一个Cookie的大小不能超过4kb。

服务器端获取客户端带来的Cookie:

  • Cookie [] HttpServletRequest.getCookies();

  • 注意:domain+path+name惟一肯定一个Cookie。

服务器端技术HttpSession

  • HttpSession是一个域对象

  • HttpSession的原理(借助cookie)

  • HttpSession.getSession() :先查(按照session的id来查), 没有再建立

  • 案例

    简单购物车
    用户登陆和验证码验证
    防止表单的重复提交

客户端禁用cookie后会话数据保持问题

  • URL重写

相关文章
相关标签/搜索