首页 > 其他分享 >什么是Cookie

什么是Cookie

时间:2022-10-26 22:34:58浏览次数:49  
标签:浏览器 什么 游览器 maxAge cookie Cookie 客户端

1:会话?

  用户打开一个游览器,点击了很多链接,访问了多个web资源,然后关闭游览器,这个过程叫做一次会话。

  一个网站如何证明你访问过?

  服务端给客户端一个Cookie,每次客户端访问服务器的时候携带这个Cookie。这样服务端就能识别了。

2:Cookie是一种客户端技术(通过请求和响应实现)

  (1)从请求中获取Cookie信息

  (2)服务器响应给客户端Cookie

        Cookie[] cookies = request.getCookies();//获取客户端发过来的Cookie
        for (int i = 0; i < cookies.length; i++) {
            cookies[i].getName();//获取Cookie中的key
            cookies[i].getValue();//获取Cookie中的value
        }
        Cookie cookie = new Cookie("name", "xst");//新建一个cookie对象
        cookie.setMaxAge(24*60*60);//设置cookie的有效期
        response.addCookie(cookie);//响应给客户端cookie

  (3)使用Cookie的注意事项

    一个Cookie只能保存一个信息

    一个web站点可以给游览器发送多个cookie,最多存放20个cookie

    cookie有大小限制4kb

    删除Cookie:(1)关闭游览器,Cookie即被删除。(2)设置Cookie的有效时期为0,则Cookie立刻过期。则表示删除了。

3:Cookie的生命周期

  Cookie在生成时就会生成一个maxAge值,这就是Cookie的生命周期,在这个周期内Cookie有效,超过周期Cookie就会被清,在有些游览器或者页面中会将Cookie的生命周期设置为0或者负值,

这样在关闭游览器时,就会清除Cookie,不会记录用户信息。

  a、如果maxAge属性为正数,则表示该Cookie会在maxAge秒之后自动失效。浏览器会将maxAge为正数的Cookie持久化,即写到对应的Cookie文件中。无论客户关闭了浏览器还是电脑,只要还在maxAge秒之前,登录网站时该Cookie仍然有效。

  b、如果maxAge为负数,则表示该Cookie仅在本浏览器窗口以及本窗口打开的子窗口内有效,关闭窗口后该Cookie即失效。maxAge为负数的Cookie,为临时性Cookie,不会被持久化,不会被写到Cookie文件中。Cookie信息保存在浏览器内存中,因此关闭浏览器该Cookie就消失了。Cookie默认的maxAge值为–1。

  c、如果maxAge为0,则表示删除该Cookie。Cookie机制没有提供删除Cookie的方法,因此通过设置该Cookie即时失效实现删除Cookie的效果。失效的Cookie会被浏览器从Cookie文件或者内存中删除:

4:Cookie的缺陷?

  a、数量受到限制。一个浏览器能创建的 Cookie 数量最多为 300 个,并且每个不能超过 4KB,每个 Web 站点能设置的 Cookie 总数不能超过 20 个

  b、安全性无法得到保障。通常跨站点脚本攻击往往利用网站漏洞在网站页面中植入脚本代码或网站页面引用第三方法脚本代码,均存在跨站点脚本攻击的可能。

在受到跨站点脚本攻击时,脚本指令将会读取当前站点的所有 Cookie 内容(已不存在 Cookie 作用域限制),然后通过某种方式将 Cookie 内容提交到指定的服务器(如:AJAX)。一旦 Cookie 落入攻击者手中,它将会重现其价值。

  c、浏览器可以禁用Cookie,禁用Cookie后,也就无法享有Cookie带来的方便。

 

 

 

 

 

标签:浏览器,什么,游览器,maxAge,cookie,Cookie,客户端
From: https://www.cnblogs.com/xst0716/p/16830148.html

相关文章

  • day13 cookie
    关于对应的计算机的一些基础课程数据结构(leetcode)逻辑结构存储结构(数组,字符串,栈,队列,图,hash,树、链表...)算法(递归算法(BFS(广度优先查找),DFS(深度优先查找))、动态......
  • 内存满了,会发生什么?
    1、内存分配的过程是怎样的?应用程序通过malloc函数(全称是memoryallocation,中文叫动态内存分配)申请内存的时候,实际上申请的是虚拟内存,此时并不会分配物理内存。当应用程序......
  • 什么是测试架构师(经验总结)
    什么是测试架构师(经验总结)最近一直在招测试架构师最近一直在招测试架构师,在这段时间,对测试架构师这个工作职责以及技术要求,都有一些新的认识,同时也回顾总结了自己对测试......
  • 转 - 使用limit offset 分页时,为什么越往后翻越慢?如何解决?
    当一个数据库表过于庞大,LIMIToffset,length中的offset值过大,则SQL查询语句会非常缓慢,你需增加orderby,并且orderby字段需要建立索引。16、使用limitoffset分页时,为什......
  • 华为云CDN为什么成为企业首选?四大优势助力企业腾飞!
    随着数字经济时代的逐步推进,越来越多的企业意识到,数字化转型的重要性,也越来越多的企业了解到,云服务和CDN对于他们的重要。而在众多的云服务平台里,华为云CDN就受到了大量用......
  • C#解析Cookie字符串为CookieCollection
    C#解析Cookie字符串为CookieCollection publicstaticCookieCollectionGetAllCookiesFromHeader(stringstrHeader,stringstrHost){ArrayListal=......
  • 什么是Base64 编码,Base64 编码有哪些优缺点
    很多朋友在工作中,可能经常会用到Base64编码。Base64编码是网络上很常见的用于8Bit字节码的编码方式之一,那么,大家知道为什么要使用Base64编码,Base64编码有哪些优缺点呢?下面......
  • 什么是Base64 编码,Base64 编码有哪些优缺点
    很多朋友在工作中,可能经常会用到Base64编码。Base64编码是网络上很常见的用于8Bit字节码的编码方式之一,那么,大家知道为什么要使用Base64编码,Base64编码有哪些优缺点呢?下面......
  • 什么是Base64 编码,Base64 编码有哪些优缺点
    很多朋友在工作中,可能经常会用到Base64编码。Base64编码是网络上很常见的用于8Bit字节码的编码方式之一,那么,大家知道为什么要使用Base64编码,Base64编码有哪些优缺点呢?下面......
  • 视频融合平台EasyCVR通道播放时提示channle异常是什么原因?该如何解决?
    EasyCVR视频融合平台部署轻快、功能灵活,在视频能力上,可提供视频直播、录像、回放、检索、云存储、级联、告警等功能。平台可支持多协议、多类型设备接入,包括国标GB28181、R......