美文网首页
从前端的角度看cookie

从前端的角度看cookie

作者: 牛奶大泡芙 | 来源:发表于2021-05-11 16:11 被阅读0次

    cookie是前端经常涉及到的一个工具,本身是小甜饼的意思,很可爱的叫法,下面是浏览到的一些关于cookie的特性和用法,分享一下:
    1、js中的cookie是document的一个属性,字符串形式的,内容以键值对的形式存在:

    document.cookie = "key=value; key=value; key=value"
    

    或者使用更友好的cookieStore接口:

    CookieStore.set()
    CookieStore.get()
    CookieStore.getAll()
    CookieStore.delete()
    CookieStore.onChange()
    

    (只是仅用于https,且有一部分的浏览器不支持,兼容性需要考虑)
    2、cookie是一个存储机制,可以在内存中或者是本地(加上过期时间 就会生成一个文件存储在本机),存储的内容可以是SESSIONID,token等等的。
    3、cookie的出现是为了弥补http请求无状态的缺陷,session的概念出现之前使用cookie跟踪会话。
    4、和cookie有关的header有:请求头 cookie,响应头 set-cookie, set-cookie可以添加、修改、删除cookie,举例说明:

    set-cookie: <name>=<value>[; expires=<date>][; domain=<domain_name>][; path=<some_path>][; secure][; httponly]
    set-cookie: KLBRSID=0a401b23e8a71b70de2f4b37f5b4e379|1620719465|1620719456; Path=/
    cookie: _zap=045f9128-159a-4802-8ca1-a2fe797fdeaf; d_c0="AADe0Knh_xKPTsoWnOPF_p0Tgwe35HgK5rk=|1619189561";  SESSIONID=yjD4PQ49DxIUoi1C71fbjJfo7EsV1rIIIKHqq4pCDw0; 
    

    5、查看网站的cookie,在地址栏使用语句:

    javascript:alert(dociment.cookie)
    

    6、cookie功能需要浏览器支持,浏览器的设置中可以禁用cookie。
    7、cookie是不可跨域的,具体表现在:浏览器访问A网站就携带A网站的cookie(根据域名区分不同网站的cookie),A网站不能操作B网站的cookie。
    8、大多数浏览器每一个域可以对应50个左右的cookie,存储的内容4kb左右,超过这个值,浏览器会自动删除。
    9、同域内浏览器发出的任何一个请求都携带cookie,但是资源类型的请求携带的cookie对服务端一般没有意义,所以可以另外存储在一个域名下。
    10、secure cookie:仅在https而不是http的请求中被携带,具有secure标志。
    11、httpOnly的cookie:只能通过http的方式访问,其它方式比如跨域的脚本就不能读取或者操作cookie。
    12、不允许cookie跨域-samesite:
    从a.com网站向b.com发起的请求不允许携带cookie

    Set-Cookie: CookieName = CookieValue; SameSite = Lax;
    Set-Cookie: CookieName = CookieValue; SameSite = Strict;
    

    13、本地cookie和内存cookie区别在于本地cookie被加上了过期时间,以文本的形式存储,过期了就被删除。
    部分内容参考自:https://link.zhihu.com/?target=http%3A//www.imooc.com/article/286531

    相关文章

      网友评论

          本文标题:从前端的角度看cookie

          本文链接:https://www.haomeiwen.com/subject/emngdltx.html