Java Web读书笔记之Cookie入门

1.Http协议与Cookie(了解)

  1. Cookie是Http协议制定的。先有服务器保存Cookie到浏览器,再下次浏览器请求服务器时把上一次请求得到的Cookie归还给服务器。
  2. 由服务器创建保存到客户端的一个键值对。服务器保存Cookie的响应头,使用response发送响应头:Set-Cookie:aaa=AAA;Set-Cookie:bbb=BBB;例如:

    response.addHeader("Set-Cookie","aaa=AAA");
    response.addHeader("Set-Cookie","bbb=BBB");
    
  1. 当浏览器请求服务器时,会把该服务器保存的Cookie随请求发送给服务器。浏览器归还Cookie的请求头:Cookie:aaa=AAA;bbb=BBB。多个键值对间用分号隔开。
  2. Http协议规定(为了不给浏览器太大压力)
    • 1个Cookie最大4KB
    • 1个服务器最多向1个浏览器保存20个Cookie
    • 1个浏览器最多可以保存300个Cookie

2.Cookie的用途

  • 服务器使用Cookie来跟踪客户端状态。
  • 保存购物车(购物车中的商品不能使用request域来保存,因为它是一个用户向服务器发送的多个请求信息)
  • 显示上次登录用户名(并记住密码)

3.Java Web中使用Cookie

  • 原始的方式:
    • 使用response发送Set-Cookie响应头。
    • 使用request获取请求头。
  • 便捷方式:
    • 使用response.addCookie()方法向浏览器保存Cookie。
    • 使用request.getCookies()方法获取浏览器归还的Cookie,返回的对象为Cookie数组。若没有Cookie则返回NULL。

4.Cookie详解

  1. Cookie不只有name和value两个属性。
  2. Cookie的maxAge:指Cookie的最大生命,即Cookie可保存在客户端中的最大时长,以秒为单位。
    • maxAge>0:浏览器会把Cookie保存到客户端硬盘上,有效时长为maxAge的值决定,例如:cookie.setMaxAge(60)表示这个Cookie会被浏览器保存到硬盘上60秒。
    • maxAge<0:Cookie只会在浏览器内存中存在,当用户关闭浏览器时浏览器进程结束,同时Cookie也就死亡了。
    • maxAge=0:浏览器会马上删除这个Cookie。

2018.3.19更

欢迎加入我的Java交流1群:659957958。

2018.4.21更:如果群1已满或者无法加入,请加Java学习交流2群:305335626


5.联系

If you have some questions after you see this article,you can tell your doubts in the comments area or you can find some info by clicking these links.

记得扫一扫领一下红包再走哦