Cookie是浏览网站时由网络服务器创建并由网页浏览器存放在用户计算机或其他设备的小文本文件。
Cookie使Web服务器能在用户的设备存储状态信息(如添加到在线商店购物车中的商品)或跟踪用户的浏览活动(如点击特定按钮、登录或记录历史)https://zh.wikipedia.org/wiki/CookieCookie的基本结构包括:
1. 名
2. 值
3. 各种属性
Cookie可能有Domain、Path、Expires、Max-Age、Secure、HttpOnly等多种属性
Domain和Path属性定义了cookie的范围。它们告诉浏览器cookie属于什么网站。Cookies只能设置在当前资源的顶级域及其子域上。如果服务器未指定cookie的Domain和Path,则它们默认为所请求资源的域和路径。
Expires和Max-Age
Expires属性定义了浏览器应删除cookie的时间,格式为Wdy, DD Mon YYYY HH:MM:SS GMT或Wdy, DD Mon YY HH:MM:SS GMT(YY大于或等于0并且小于等于69)。
此外也可用Max-Age将cookie的过期时间设置为某一段时间之后(相对于浏览器接收cookie的时间而言)。但Internet Explorer等浏览器可能不支持Max-Age。
Secure和HttpOnly
Secure属性旨在将cookie加密,使浏览器仅通过安全/加密连接使用cookie。
HttpOnly要求浏览器不要通过HTTP(和HTTPS)以外的渠道使用cookie。这意味着无法通过客户端脚本语言(尤其是JavaScript)访问cookie,因此无法通过跨站点脚本攻击轻易窃取。
创建一个空的ASP.NET Core应用程序,我们在服务器端创建一个cookie输出的客户端,然后再将其删除。添加如下代码:
https://github.com/bingbing-gui/AspNetCore-Skill/tree/master/src/aspnetcore-knowledge-point/cookies