了解Cookie

        要知道Cookie是服务器存储在客户端的数据,客户端不会使用Cookie。客户端下一次访问服务器时会带着上次保存的Cookie,供服务器读取加快任务处理。形象的理解就是徒弟需要给身为京城第一剑客的师傅拿刀,每次师傅用完帮师傅收起来,下一次要用的时候递给师傅。服务器就是师傅,客户端浏览器就是徒弟,Cookie是刀。

1.Http协议与Cookie

        *Cookie是Http协议制定的,先由服务器保存Cookie到客户端,下次请求服务器时把上次得到的Cookie带给服务器。

        *Cookie是由服务器创建,保存在客户端的一个键值对,服务器保存Cookie的响应头 set-Cookie :bbb = BBB

        >response.addHeader("set-Cookie","bbb = BBB") ; response.addHeader("set-Cookie","aaa = AAA") ;

        *当浏览器请求服务器时,会把服务器保存的Cookie随请求发送给服务器。浏览器发送Cookie的请求头是:       cookie:bbb=BBB;aaa=AAA

*http协议规定(保证不给浏览器太大压力):

        >1个Cookie最大4KB。

        >1个服务器最多可以向1个浏览器保存20个Cookie。

        >一个浏览器最多可以保存300个Cookie

2.Cookie的用途:

        *服务器通过Cookie来跟踪客户端的状态。

        *利用Cookie实现购物车功能(购物车不能使用request保存因为它是一个用户向浏览器发送的多个请求)。

        *显示用户上次登录名。

        *还用很多。

3.JavaWeb中使用Cookie:

        *原始方式:使用response发送set-cookie响应头,使用request获取Cookie请求头。

        *便捷方式!response.addCookie()向浏览器保存Cookie。request.getCookie()获取浏览器发送的Cookie。

4.Cookie的详解:

        *Cookie不知有name和value属性

        *Cookie的MaxAge:Cookie的最大生命,保存的最大时长。以秒为单位。例如 cookie.setMaxAge(60)。cookie会在硬盘中保存60秒。MaxAge>0 浏览器把Cookie保存在客户机硬盘上,时间有参数决定。MaxAge<0 Cookie 只在浏览器内存中存在,当用户关闭浏览器,浏览器进程结束,Cookie消亡。MaxAge=0 保存后立即删除。

        *Cookie的path。这里的path不是指Cookie在客户机中保存的路径,当浏览器访问服务器的某个路径时需要把哪个Cookie给服务器呢,Cookie的path属性与当前路径相等时,这个Cookie就交给服务器。


猜你喜欢

转载自blog.csdn.net/bingocoder/article/details/80636127