资讯专栏INFORMATION COLUMN

Cookie学习

Bamboy / 1655人阅读

摘要:服务器检查该,以此来辨认用户状态。该值会在浏览器再次发起请求时,传递给服务器失效的时间,单位秒。如果为,表示删除该。该值可以在服务器运行时动态设置该是否仅被使用安全协议传输。安全协议有,等,在网络上传输数据之前先将数据加密。

什么是Cookie?

    Cookie是由W3C组织提出,最早由NetScape社区发展的一种机制。

    Cookie是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个cookie。

    Cookie的作用就是用于解决"如何记录客户端的用户信息":

        ①当用户访问web页面时,他的名字可以记录在Cookie中。

        ②在用户下一次访问该页面时,可以在Cookie中读取用户访问记录。

    Cookie实际上是一小段文本信息(上限为4kb)。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器可以把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务还可以根据需要修改Cookie的内容。

Cookie的属性

这是笔者着重注意讲述的点

属性名 说明
name Cookie的名称,Cookie一旦创建,名称便不可更改
value Cookie的值,如果值为Unicode字符,需要为字符编码。如果为二进制数据,则需要使用BASE64编码。该值会在浏览器再次发起请求时,传递给服务器
maxAge Cookie失效的时间,单位秒。如果为整数,则该Cookie在maxAge秒后失效。如果为负数,该Cookie为临时Cookie,关闭浏览器即失效,浏览器也不会以任何形式保存该Cookie。如果为0,表示删除该Cookie。默认为-1。 该值可以在服务器运行时动态设置
secure 该Cookie是否仅被使用安全协议传输。安全协议。安全协议有HTTPS,SSL等,在网络上传输数据之前先将数据加密。默认为false。 可以在服务器运行时动态设置
path Cookie的使用路径。如果设置为“/sessionWeb/”,则只有contextPath为“/sessionWeb”的程序可以访问该Cookie。如果设置为“/”,则本域名下contextPath都可以访问该Cookie。注意最后一个字符必须为“/”。该值只有在生成cookie的时候设置有效,后面设置无效。如果需要动态设置path,可以先利用maxAge属性设置为0,把cookie删除了,然后在重新生成cookie的时候,设置path(这时候记得把maxAge=0去掉)
domain 可以访问该Cookie的域名。如果设置为“.google.com”,则所有以“google.com”结尾的域名都可以访问该Cookie。设置规则同path属性
comment 该Cookie的用处说明,浏览器显示Cookie信息的时候显示该说明。
version Cookie使用的版本号。0表示遵循Netscape的Cookie规范,1表示遵循W3C的RFC 2109规范
Cookie的Domain属性

我们重点说一下这个Domain属性。一般在实现单点登录的时候会经常用到这个属性,通过在父级域设置Cookie,然后在各个子级域拿到存在父级域中的Cookie值。比如刚才设置的username属性,在blog.csdn.net下同样可以访问到,用户不用重新登录就可以拿到第一次登录进来时候的用户信息,因为这些用户信息都是存在父级域".csdn.net"下面,其他页面也可以拿到。

当在"blog.csdn.net"这个域名下存入一个Cookie;如:
document.cookie = "blogCookie=blog;path=/;domain=.blog.csdn.net";
然后你会发现在mp.csdn.net下看不到blogCookie这个属性。这个就是所谓的Cookie跨域的问题。

总结:
domain表示的是cookie所在的域,默认为请求的地址,如网址为www.study.com/study,那么domain默认为www.study.com。而跨域访问,如域A为t1.study.com,域B为t2.study.com,那么在域A生产一个令域A和域B都能访问的cookie就要将该cookie的domain设置为.study.com;如果要在域A生产一个令域A不能访问而域B能访问的cookie就要将该cookie的domain设置为t2.study.com。注意:一般在域名前是需要加一个"."的,如"domain=.study.com"。

参考:https://blog.csdn.net/longgeg...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72231.html

相关文章

  • JS学习笔记 - 封装 Cookie 应用接口

    摘要:本文章记录本人在学习中看书理解到的一些东西,加深记忆和并且整理记录下来,方便之后的复习。封装函数在默认的情况下存取是一件比较麻烦的事情。而且信息的字符串本身就令人讨厌,在经常使用信息的应用中格外的不方便。 本文章记录本人在学习 Cookie 中看书理解到的一些东西,加深记忆和并且整理记录下来,方便之后的复习。 封装函数 在默认的情况下存取Cookie是一件比较麻烦的事情。由...

    oneasp 评论0 收藏0
  • 从前后端分别学习——注册/登录流程2

    摘要:昨天研究了网站的注册流程,感兴趣的可以看下从前后端分别学习注册登录流程今天接着研究注册登录流程之登录。为解决这个问题,引入,它是由一组随机数组合的哈希表,当用户登录成功,本来发放给用户,现在变成发放给用户。 昨天研究了网站的注册流程,感兴趣的可以看下:从前后端分别学习——注册/登录流程1 今天接着研究注册/登录流程之登录。 登录 首先来看一下登陆过程:showImg(https://s...

    happyhuangjinjin 评论0 收藏0
  • 快速学习nodejs系列:十三、nodejs实现restful api、cookie、session

    摘要:在前面的节课程里面,我们已经基本学习完了的知识,达到基础入门的要求。英语的直译就是表现层状态转移。的特点不加密用户可删除可被修改依赖于用户禁用或清除时,读取出错。下节,会开始学习框架。 在前面的12节课程里面,我们已经基本学习完了nodejs的知识,达到基础入门的要求。那为什么会在这节说下使用nodejs来实现一些功能,而不继续往下讲呢?原因有2:1.前面讲地都是理论知识,码代码比较少...

    asce1885 评论0 收藏0
  • js-cookie源码学习

    这篇文章最初发表在我自己搭建的站点js-cookie库源码学习 背景 最近在做项目的时候,前端登录功能要做一个记住密码的功能。但开发用的框架中没有实现这个功能,所以我就想自己实现这个功能。实现起来其实很简单,就是每次用户在登录页面点击登录时,把用户输入的用户名和密码保存到cookie中就可以了,当用户再登录时,再从cookie中获取用户名和密码填充到表单中就可以了。当然,也可以选择保存在local...

    JellyBool 评论0 收藏0
  • [Java Web]JSP/Servlet的学习(resopnse对象与session对象)

    摘要:的学习与内置对象对象代表服务器对客户端的响应。在增加之前必须先创建对象。一次会话的含义是从客户端浏览器连接服务器开始,到客户端服务与断开为止。范围内的属性可以在多个页面的跳转之间共享。 Java Server Page的学习(resopnse与session) 内置对象 response对象 respone代表服务器对客户端的响应。如果要在JSP页面中动态生成一副位图或者输出一个...

    Flink_China 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<