cookie是什么意思(一文带你超详细了解Cookie)cookie 简介,什么是 cookie,cookie,有时我们也用其复数形式 cookies,是服务端保存在浏览器端的数据片段。以 key/value的形式进行保存。每次请求的时候,请求头会自动包含本网站此目录下的 cookie 数据。网站经常使用这个技术来识别用户是否登陆等功能。,简单的说,cookie 就是服务端留给计算机用户浏览器端的小文件。,Cookie 做为请求或响应报文发送,无形中增加了网络流量。,Cookie 是明文传送的安全性差。,Cookie 中保存数据是不稳定的,用户可以随时清理 cookie,各个浏览器对 Cookie 有限制,使用上有局限,庐山真面目,chrome 的 cookie 位置:,C:\Users\lfy\AppData\Local\Google\Chrome\User Data\Default\Cookies,ie 中 cookie 位 置 : C:\Users\lfy\AppData\Local\Microsoft\Windows\InetCache 点击设置->查看对象即可,chrome 中查看 cookie,
,cookie 如上图所示,从上图可以看出 cookie 是键值对的形式,有过期时间(Max-Age,session 表示在这个会话期内有效)。,cookie 原理,1)总的来看 Cookie 像是服务器发给浏览器的一张“会员卡”,浏览器每次向服务器发送请求时都会带着这张“会员卡”,当服务器看到这张“会员卡”时就可以识别浏览器的身份。实际上这个所谓的“会员卡”就是服务器发送的一个响应头:,
,2)如图 Set-Cookie 这个响应头就是服务器在向服务器发“会员卡”,这个响应头的名字是 Set-Cookie , 后 边 JSESSIONID=95A92EC1D7CCB4ADFC24584CB316382E 和 Path=/Test_cookie,是两组键值对的结构就是服务器为这个“会员卡”设置的信息。浏览器收到该信息后就会将它保存到内存或硬盘中。,3)当浏览器再次向服务器发送请求时就会携带这个 Cookie 信息:,
,
,回到顶部,Cookie 的使用,创建对象,cookie 是由服务端创建的,由浏览器端保存的。所以创建对象我们应该在服务端创建 cookie,cookie 的创建方法:,1)创建一个 CookieServlet,在 Servlet 的 doPost()方法中编写如下代码:,2)在浏览器中访问该 Servlet,会发现响应头中出现如下内容: Set-Cookie: username=zhangsan,如此就成功的向浏览器设置了一个 Cookie,当我们在刷新页面时会发现浏览器的请求头中出现如下代码:,Cookie: username=zhangsan,3)同样我们还可以同时设置多个 Cookie:,浏览器会按以下形式发送 Cookie:,Cookie: username=zhangsan; password=123456; age=20,4)设置 Cookie 就是两个步骤: 创建 Cookie 对象,将 Cookie 对象加入到 response 中,设置 cookie,cookie 的有效时间,1)经过上边的介绍我们已经知道 Cookie 是存储在浏览器中的,但是可想而知一般情况下浏览器不可能永远保存一个Cookie,一来是占用硬盘空间,再来一个 Cookie 可能只在某一时刻有用没必要长久保存。,2) 所以我们还需要为 Cookie 设置一个有效时间。,3)通过 Cookie 对象的 setMaxAge()可以设置 Cookie 的有效时间。,其中 setMaxAge()接收一个 int 型的参数,来设置有效时间。参数主要有一下四种情况:,Cookie 立即失效,下次浏览器发送请求将不会在携带该 Cooki百思特网e,表示有效的秒数 60 就代表 60 秒即 1 分钟,也就是 Cookie 在 1 分钟后失效。,设置为负数表示当前会话有效。也就是关闭浏览器后 Cookie 失效,如果不设置失效时间,则默认当前会话有效。,cookie 的路径,1) Cookie 的路径指告诉浏览器访问那些地址时该携带该 Cookie,我们知道浏览器会保存很多不同网站的 Cookie,比如百度的 Cookie,新浪的 Cookie,腾讯的 Cookie 等等。那我们不可能访问百度的时候携带新浪的 Cookie,也不可能访问每个网站时都带上所有的 Cookie 这是不现实的,所以往往我们还需要为 Cookie 设置一个 Path 属性,来告诉浏览器何时携带该Cookie。,2)我们同过 Cookie 的 setPath()来设置路径,这个路径是由浏览器来解析的所以/代表服务器的根目录。,如:设置为 /项目名/路径 cookie.setPath(“/项目名/路径”),这样设置只有访问“/项目名/路径”下的的资源才会携带 Cookie,如:/项目名/路径/1.jsp 、/项目名/路径/hello/2.jsp 等,如果不设置,默认会在访问“/项目名”下的资源时携带如:“/项目名/index.jsp” 、 “/项目名/hello/index.jsp”,推荐博客,程序员写代码之外,如何再赚一份工资?,读取 cookie,通过以上步骤,我们将 cookie 保存到了浏览器端。那么我们如何读取 cookie 中的值呢。分析:,cookie 被设置进入浏览器后,每次请求都会携带 cookie 的值,所以我们需要从 request 中取出 cookie 进行解析。,
cookie是什么意思(一文带你超详细了解Cookie)
2021-11-28 00:11 浏览:0