Cookie概述
1 什么叫Cookie
Cookie翻译成中文是小甜点,小饼干的意思。在HTTP中它表示服务器送给客户端浏览器的小甜点。其实Cookie就是一个键和一个值构成的,随着服务器端的响应发送给客户端浏览器。然后客户端浏览器会把Cookie保存起来,当下一次再访问服务器时把Cookie再发送给服务器。
2 Cookie规范
你大可以放心,Cookie不会占满你的硬盘。因为一个Cookie最多只有4KB,一个服务器最多只能发送到客户端20个Cookie,并且浏览器最多可以保存300个Cookie。当然,在浏览器大战的今天,一些浏览器为了打败对手,可能对Cookie规范“扩展”了一些,例如每个Cookie的大小为8KB,最多可保存500个Cookie等!但也不会出现把你硬盘占满的可能!
不同的浏览器之间不能共享Cookie!!!
3 Cookie的作用
Cookie的作用可大了,但无论怎么夸大Cookie的作用都离不开“跟踪客户端状态”这句话。我们知道Cookie是服务器保存在客户端的信息,然后客户端会在下次请求时把Cookie在还给服务器,这样服务器就可以通过信息来识别客户端了。
就好比你去医院看病,第一次去需要买卡片,然后你去任何科室都需要你出示卡片。只要你出示卡片,医生就会知道你去过哪些科室,看了哪些病!卡片上只有一个ID,它就是Cooke,而你本人就是客户端,而医生就是服务器了。
4 Cookie的属性
Cookie最重要的4个属性:
- 名字(name);
- 值(value);
- 路径(path);
- 域(domain)。
现在我们只需要关心name和value,而path和domain可以先不去了解!但后面也会去讲解它们的用法。
javax.servlet.http.Cookie类只有一个构造器:Cookie(String name, String value)。你应该知道怎么去创建一个Cookie对象吧:Cookie c = new Cookie(“id”, “HZ_001”);
5 保存Cookie到客户端
保存Cookie到客户端,这是响应工作的一部分,所以这个方法是response对象的。并且Cookie是HTTP协议中的内容,所以保存Cookie是HttpServletResponse类的方法。
void addCookie(Cookie c):添加Cookie对象到当前response对象中,这个方法可以被调用多次,从而完成添加多个Cookie对象到response中。
使用浏览器访问http://localhost/day07_03/AServlet,然后通过HttpWatch查看响应头信息中是否存在Set-Cookie这个头信息。
当再交方法http://localhost/day07_03/AServlet时,查看请求头信息中是否存在Cookie这个头信息。当然也可以尝试访问http://localhost/day07_03/BServlet是否在请求头中存在Cookie这个头信息。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/253147.html