31--Cookie
在上面一个章节我们提到了Cookie的作用可用于存储会话的ID,可用于帮助和支持会话状态的。我们可以称这种Cookie类型为Session方式的Cookie。当然Cookie还有一种方式存在:persistent方式的cookie。实际上Cookie最大的作用是可以存储客户端和服务端用于交换的数据。服务端把Cookie发给客户,客户做出一个请求时再把Cookie发给服务端。Cookie的交换都是自动完成的,实际中Cookie和会话的生命周期是一样的,但是我们可以通过配置或编码的方式让我们Cookie的生命周期会延长些,那就是在关闭浏览器后还能够存活。
Cookie相当于也是一个名/值对的存储方式。一般服务器把Cookie发给客户端,客户端再发请求中都会发回这个Cookie。一般来说,Cookie的生命期是随着浏览器退出而结束,但是可以有属性的设置让cookie在客户端上持续得更久一些了甚至在浏览器关闭之后都能永久的保存。一般来讲Session我们用于服务端,Cookie则用于客户端。cookie分发基本上通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie。在Servlet中有三个类都有Cookie的使用的方法,分别是HttpServletRequest,HttpServletResponse,Cookie。三个类尽管属性不同方法不同,但是有些方法的独特性是体现了Cookie的生存方式。像在HttpServletRequest上的getCookies,这个就可以让客户端从服务端请求到多个Cookies。而HttpServletResponse上的addCookie及时一种把cookie发到客户端的方法。存在于客户端硬盘上的Cookie虽然是加密的,但还是可能会遭到cookie欺骗、cookie的跨站脚本攻击。
关于Cookie就说到这里了,下一个章节我们聊聊过滤器.............