问题描述 1 什么是Cookie Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。就相当于我们在银行办理的银行卡,以后再去银行的时候,银行就直接能够通过银行卡辨别我们的身份。 解决方案 2 Cookie的设置与获取 我们可以通过以下方式设置Cookie:
在浏览器中可以查看到我们设置了number=12、Max-Age=60,还可以看见设置的时间: 在这里我们设置了MaxAge,这是Cookie的有效期,单位为秒。Cookie中通过getMaxAge()和setMaxAge(int maxAge)来读写该属性。maxAge有3种值,分别为正数,负数和0。 如果maxAge属性为正数,则表示该Cookie会在maxAge秒之后自动失效。浏览器会将maxAge为正数的Cookie持久化,即写到对应的Cookie文件中。无论客户关闭了浏览器还是电脑,只要还在maxAge秒之前,登录网站时该Cookie仍然有效。当maxAge属性为负数,则表示该Cookie只是一个临时Cookie,不会被持久化,仅在本浏览器窗口或者本窗口打开的子窗口中有效,关闭浏览器后该Cookie立即失效。当maxAge为0时,表示立即删除Cookie 我们再通过以下方式获取Cookie:
结语 我们设置cookie用response,获取cookie用request,还有需要注意的是cookie是不能跨浏览器的。如果服务器端向客户端发送重复的Cookie那么客户端原有的Cookie会被覆盖,例如客户端第一次请求服务器端,服务器端发送的Cookie是Set-Cookie:a=A,第二次请求发送的Cookie是Set-Cookie:a=AA,那么客户端只会留下后发送的Cookie,即a=AA。这也是一个修改Cookie的方法。还需要将MaxAge设置为0。新建的Cookie。除了value、maxAge之外的属性,比如name、path、domain都必须与原来的一致才能达到修改或者删除的效果。否则,浏览器将视为两个不同的Cookie不予覆盖。 实习编辑 | 王文星 责 编 | 刘玉江 where2go 团队 |
|