Cookies【ASP.NET】 待我称王封你为后i 2022-03-07 15:10 186阅读 0赞 ## 前言 ## 我们都知道HTTP协议是无状态的,无论客户端还是服务端都没有必要记录彼此过去的行为。但是很快人们发现,有些请求记录一下,会更加方便我们,于是就出现了这种客户端和服务器端的状态保持机制。 -------------------- ## 状态保持机制 ## **客户端保持机制** 发给顾客一张卡片,上面记录着消费的数量,一般还有个有效期限。每次消费时,如果顾客出示这张卡片,则此次消费就会与以前或以后的消费相联系起来。这种做法就是在客户端保持状态。 **服务端保持机制** 发给顾客一张会员卡,除了卡号之外什么信息也不纪录,每次消费时,如果顾客出示该卡片,则店员在店里的纪录本上找到这个卡号对应的纪录添加一些消费信息。这种做法就是在服务器端保持状态。 ![在这里插入图片描述][20190317100413179.png] Application:就像银行的单人公共卫生间,谁进去都行,但一次去一个,进去了就锁上门,出来再把锁打开; -------------------- ## Cookie ## Cookie:一小段文本,明文。存储在客户端的浏览器内存里面或者磁盘。cookie是跟网站相关,百度可以往客户端写cookie,但是百度只能读取跟百度有关的cookie。 -------------------- ## Cookie创建 ## **方法一** //创建Cookie //Domain设置主域的 //设置一个path来限制某个路径下面的页面才会把cookie发送到后台 // Expires制定过期时间 Response.Cookies["cp3"].Value = "laowang"; Response.Cookies["cp3"].Domain = "xxx.com"; Response.Cookies["cps"].Path = "/2015-5-31"; Response.Cookies["cp3"].Expires = DateTime.Now.AddDays(3); **方法二** HttpCookie cookie1 = new HttpCookie("cp4", "ssss"); cookie1.Expires = DateTime.Now.AddDays(3); Response.Cookies.Add(cookie1); -------------------- ## Cookie 相关 ## **path路径**:cookie可以设置一个path来限制某个路径下面的页面才会把cookie发送到后台,比如:请求图片,请求一个css,js,为了提高性能,path设置页面所在路径,来控制cookie的发送 **cookie域**:浏览器往后台发送数据的时候,要把cookie放到请求报文中,发送到后台,那么有个问题:请求是子域的网页,那么主域的cookie会不会发送到后台呢? 答案:是的,一块发送,如果请求时主域页面,子域的cookie是不会发送到后台的,如果子域想让请求主域页面的时候也一块发送到后台,设置当前cookie的域为主域就可以了。 **Expires过期时间**:cookie的存储方式有两种,如果不指定过期时间,那么存储在客户端浏览器内存中;如果指定了过期时间,那么存储在客户端的磁盘上。cookie 是与网站相关的,如果我们将cookie设置了过期时间,那么当用户在指定时间内访问我们的网站,属于我们网站的cookie数据会放在请求报文中发送过来,其他网站的cookie不会发送。 **cookie的限制** * 大多数浏览器支持最大为4096字节的cookie * 大多数浏览器只允许每个站点存储20个cookie * 有些浏览器会对它们接收的所有站点cookie总数限制300个 **cookie的安全性** cookie很容易从客户端获取,所以千万不要在cookie中存储 敏感信息,如用户名,密码,信用卡号等等。 -------------------- ![SouthEast][] [20190317100413179.png]: /images/20220307/8d7913f71f204e9ba2f3d88b606bf683.png [SouthEast]: /images/20220307/ef205504ee934e1388ff853c88d2dcec.png
还没有评论,来说两句吧...