ASP.NET---Cookie

为什么要用Cookie:

在Web发展中,我们知道浏览器与服务器之间采用的时http协议,而这种协议是无状态的,所以这就导致了服务器无法知道是谁在浏览网页,但很明显,一些网页需要知道用户的状态,例如登录,购物车等。

Cookie:

  1. 是一个客户端状态保持机制,(网站的数据是存在客户端),Cookie中存储的是关于网站相关的文本字符串数据。
  2. 是浏览器保存在用户电脑上的一小段文本。
  3. 是服务器传给客户端并保存在客户端的一段信息
  4. 有大小和数量限制
  5. 如果设置Domain属性:如果域名A和域名B同是一域名下的子域名,A,B都可以获取Cookie,如果在A设置之后,在B中在设置,会覆盖,也可以指定页面路径下获得Cookie
  6. 如果不指定过期时间,那么存储在客户端浏览器内存中,如果指定了过期时间,那么存储在客户端的磁盘上。
  7. Cookie是与具体的网站有关的,如果我们将Cookie设置了过期时间,那么当用户在指定时间内访问我们的网站,那么属于我们网站的Cookie数据会放在请求报文中发送过来,其它网站的Cookie不会发送。

两种存储方式

  • 会话级别Cookie:所谓会话级别Cookie,就是在浏览器关闭之后Cookie就会失效
  • 持久级别Cookie:保存在硬盘的Cookie,只要设置了过期时间就是硬盘级别Cookie,会保存到你指定的时间

发送方式:

一次可以发送多个 Cookie 

解决的问题:

  •       保持上次的结果

应用场景

  1. 不登录购物(没有账号就可以添加购物车,或者保留你的浏览记录)
  2. 保持上次的计算结果,浏览结果、登录账户

调用逻辑:

第一次浏览器向服务器发送get请求,找到页面,执行页面中的代码,执行到创建cookie代码时,会在响应头中加一个set-cookie:cp1=username;path=/,返回给浏览器,根据是否设置了过期时间,保存到浏览器的内存中或硬盘中,再次访问时,会将Cookie中的数据放在请求报文中传递到服务器,格式为:Cookie:cp1=username,服务器接收到之后,在进行在返回的响应报文的响应头中加上set-cookie:cp1=username;path=/返回给浏览器,登录之后,就会跳转界面,响应头中就没有set-cookie了

发布了108 篇原创文章 · 获赞 13 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/lclcsdnblink/article/details/103808001