cookie、session、localStorage 和 ETag 小结

1. Cookie 和 Session 的区别?

  • 内容及给予方式不同: cookie是服务器通过 Set-Cookie头给客户端的一串字符串。sessionID是浏览器通过 cookie 发送给客户端的一段随机数(安全性好)
  • 存储位置不同:cookie 存储在客户端的硬盘中,每次访问相同域名的网页时就带上这个字符串。session 保存在服务器端,客户端访问服务器时,服务器读取sessionID,服务器端所有 session 存在于一处
  • 大小不同:cookie 大小在4kb 左右,session 大小没有限制
  • 存储内容:cookie 只能保存字符串,以文本的方式。session 能支持任何类型的对象

2. Cookie 和 LocalStorage 的区别?

  • HTTP: cookie 依赖 HTTP协议,而 localstorage 与 HTTP 无关,HTTP 不会带上 localstorage 的值
  • 大小不同:cookie 在4KB 左右,localstorage 在5M 左右(每个浏览器不一样)
  • 有效期不同:Cookie 默认在用户关闭页面后就失效,后台代码可以任意设置 Cookie 的过期时间。localstorage 永久有效,除非用户清理缓存。

3. LocalStorage 和 SessionStorage 的区别?

  • 两者大体相同,只是在关闭页面时体现不同处:localStorage 在页面关闭时不会丢失,sessionStorage在关闭页面时会丢失。

4. Cookie 如何设置过期时间?如何删除 Cookie?

设置 cookie 过期时间:

 //指定cookie保存时间
Response.Cookies("user_name").Expires=Date+1 '

//保留COOKIES一个小时
Response.Cookies("MyCookie").Expires= (now()+1/24) 
Response.Cookies("MyCookie").Expires = DateAdd("h", 1, Now())

删除 cookie:

document.cookie = ''

5. Cache-Control: max-age=1000 缓存 与 ETag 的「缓存」有什么区别?

区别在于:cache-control的max-age=1000是指在1000秒以内,客户端不能向指定域名发送请求获取数据,而应该在内存中取数据。ETag是可以先请求,但不许下载,响应体是空的

你可能感兴趣的:(cookie、session、localStorage 和 ETag 小结)