Cookies在JSP中如何工作?

Cookie通常是在HTTP标头中设置的(尽管JavaScript也可以直接在浏览器中设置Cookie)。设置cookie的JSP可能会发送类似于以下内容的标头-

HTTP/1.1 200 OK
Date: Fri, 04 Feb 2000 21:03:38 GMT
Server: Apache/1.3.9 (UNIX) PHP/4.0b3
Set-Cookie: name = xyz; expires = Friday, 04-Feb-07 22:03:38 GMT;
path = /; domain = nhooo.com
Connection: close
Content-Type: text/html

如您所见,Set-Cookie标头包含名称值对,GMT日期,路径domain。名称和值将进行URL编码。在到期字段是浏览器的指令,以“忘记”给定的时间和日期后的饼干。

如果将浏览器配置为存储cookie,则它将保留此信息直到到期日期。如果用户将浏览器指向与cookie的路径和域匹配的任何页面,它将把cookie重新发送到服务器。浏览器的标题可能看起来像这样-

GET / HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc)
Host: zink.demon.co.uk:1126
Accept: image/gif, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Cookie: name = xyz

然后,JSP脚本将通过请求方法request.getCookies()来访问cookie,该方法返回一个cookie对象数组。