Cookie简单介绍

简介:

  • Cookie是HTTP协议制定的,先由服务器保存Cookie到浏览器,在下次浏览器请求服务器时把上一次请求得到的Cookie在归还给服务器

  • 由服务器创建保存到客户端浏览器的一个键值对,服务器保存Cookie的响应头:Set-Cookie: aaa=AAA set-Cookie:bbb =BBB
    response.addHeader(“Set-Cookie”,"aaa=AAA);response.addHeader(“Set-Cookie”,"aaa=AAA);

  • 当浏览器请求服务器时,会把该服务器保存的Cookie随请求发送给服务器,浏览器归还Cookie的请求头:Cookie: aaa=AAA;bbb=BBB

  • Cookie是不能跨浏览器的.

Http协议规定(为不给浏览器太大压力)

  • 一个Cookie最大4K
  • 一个服务器最多向一个浏览器保存20个Cookie
  • 一个浏览器最多可以保存300个Cookie
  • 但是由于各种浏览器竞争很激烈,所以很多浏览器都在一定范围内违反了Http协议规定,但也不会超过4G

Cookie的用途

  • 服务器使用Cookie来跟踪客户端状态
  • 保存购物车(因为它是一个用户向服务器发送的多个请求.)
  • 显示上一次登陆名(不要保存密码,不安全)

JavaWeb中使用Cookie

  • 原始方式:(了解,不常用)
    使用response发送Set-Cookie响应头
    response.addHeader(“Set-Cookie”,“ccc=CCC”);
    使用request获取Cookie请求头
    request.getHeader(“Cookie”),返回所有Cookie键值对字符串,以;隔开

  • 便捷方式:(常用)
    使用response.addCookie()向浏览器保存Cookie
    Cookie cookieB=new Cookie(“aaa”,“AAA”);
    response.addCookie(cookieA);
    使用request.getCookes()从浏览器获取Cookie
    Cookie[] cookies=request.getCookies();

Cookie详解

  • Cookie不只有name和value两个属性

  • Cookie的maxAge属性(掌握):即Cookie的最大保存时间,单位秒,以cookie.setMaxAge(60)来设置maxAge属性
    maxAge>0:浏览器会把Cookie保存到硬盘上,有效时间由maxAge值决定
    maxAge=0:浏览器会马上删除该Cookie
    maxAge<0:Cookie只会在浏览器内存中存在,浏览器关闭则消失,默认效果

  • Cookie的path属性(理解):设置cookie的path属性,当浏览器访问的路径包含了path路径时浏览器会自动将该cookie传给服务器,否则不传.
    path属性由服务器创建cookie时创建,默认是当前访问路径的父路径
    浏览器访问服务器的路径中如果包含某个cookie的路径,name就会归还这个cookie
    例如:aCookie.path=/learn/;bCookie.path=/learn/jsps/;cCookie.path=/learn/jsps/cookie/;
    访问:/learn/index.jsp可以得到aCookie
    访问:/learn/jsps/a.jsp可以得到aCookie和bCookie
    访问:/learn/jsps/cookie/cookie.jsp可以得到aCookie和bCookie和cCookie;

  • Cookie的domain属性(了解):domain用来指定Cookie的域名,当多个二级域共享Cookie时才使用
    例如www.baidu.com,zhidao.baidu.ocm,tieba.baidu.com之间共享Cookie时可以使用domain
    设置domain:cookie.setDomain(".baidu.com");
    设置path:cookie.stPath("/");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值