cookie与会话session

会话概述

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

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

客户端技术Cookie

  • 1、HTTP协议的消息头

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

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

  • 2、Cookie详解:

    • 属性:

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

      • 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重写

你可能感兴趣的:(session,cookie)