Java Web 学习笔记之四:Cookie介绍及使用
简介
Http协议是无状态的协议,但是很多情况下web应用都需要跟踪用户的状态,
比如网购平台需要知道请求发送方的登录状态等等。因此需要一种机制来实现无状态的Http协议下的有状态传输。
这种机制就叫做Cookie机制。
Cookie 在计算机中是个存储在浏览器目录中的文本文件,当浏览器运行时,存储在 RAM 中发挥作用
(此种 Cookies 称作 Session Cookies),一旦用户从该网站或服务器退出,
Cookie 可存储在用户本地的硬盘上,此种Cookies称作Persistent Cookies。
通常情况下,当用户结束浏览器会话时,系统将终止所有的 Cookie。当 Web 服务器创建了Cookies 后,
只要在其有效期内,当用户访问同一个 Web 服务器时,浏览器首先要检查本地的Cookies,
并将其原样发送给 Web 服务器。这种状态信息称作“Persistent Client State HTTP Cookie” ,简称为 Cookies。
格式
Cookie实际上是一段文本信息。
服务端向客户端发送cookie在响应头部上的名字叫做Set-Cookie,其包含的内容有:
1 | name 必需,规定cookie值的名称 |
其中需要注意的是,属性是不需要返回给服务器的。
即如果需要带上cookie返回给服务器已达到保持会话等作用,只需要将cookie值返回即可。
而Cookie属性,是给浏览器用来对cookie进行一系列判断操作的依据,比如说失效时间判断等。
Cookie由 web 服务端响应头部的 Set-Cookie 定义,由 键-值 对组成,其格式为:
1 | Set-Cookie : customer=xxxxxxx; path=/xx/xx; domain=ccc.ccc; expires=Wednesday, 19-OCT-05 23:12:40 GMT; [secure] |
Java封装
在Java web请求发送工具中添加cookie支持,可以实现工具的会话保持功能,
下面是封装的cookie类:
1 | import java.util.HashMap; |
定义好cookie的封装类之后,可以通过:
1 | Cookie cookie; |
来获取服务器响应的cookie。
以及通过:
1 | URL url = new URL(actionURL); |
来发送cookie给服务端。