缓存总结

cookie和session都是用来跟踪浏览器用户身份的会话方式。

一、cookie

  1. 定义:简单来说,cookie其实是个存储在浏览器中的文本文件,是服务器保存在客户端的数据。它是HTTP协议的规范之一,主要内容包括:名字、值、过期时间、路径和域。(详解可参考百度百科或维基百科,看起来好复杂...)
  2. cookie规范:服务器通过响应头把cookie传给客户端,客户端将其保存起来;客户端再次请求同一服务器时,该cookie将添加在请求头中发送给服务器。规定一个服务器在一个客户端最多保存20个cookie,一个浏览器最多保存300个cookie,一个cookie最大为4KB。
  3. cookie机制:如果不在浏览器中设置过期时间,cookie的生命周期将一直到浏览器关闭时结束,此前将保存在内存中。如果设置了过期时间,即使关闭了浏览器,cookie也将一直存在直到设置时间时结束,此前将保存在硬盘中。
  4. 保存位置:cookie保存在浏览器端
  5. 存储内容:只能存储字符串类型
  6. 存储大小:单个cookie保存的数据大小不超过4KB
  7. 安全性:不安全,存在cookie欺骗和cookie截获
  8. 应用场景:实现登录时自动登录或记录上次登录信息、保存上次查看的页面
  9. 缺点:大小受限、功能受限(可以禁用)、安全性低、每次访问都需要传送cookie给服务器、可以限制cookie只属于某个路径下
  10. cookie支持跨域名访问,是同源的
  11. 使用操作:

* 获取:request.cookies.get(key, " ")

* 设置:resp.set_cookie(key, value, max_age = 整数)

* 删除:resp.delete_cookie(key)

二、session

  1. 定义:服务器为浏览器创建的一个对象。
  2. session原理:当用户第一次请求服务器时,服务器会同时创建一个session和一个cookie,并在cookie中保存sessionid发送给客户端。当用户再次请求服务器时,会将sessionid加在请求头中发送给服务器,服务器通过该sessionid查找session对象。当浏览器关闭后再打开重新访问或长时间未操作页面时,会重新创建一个session会话
  3. session机制:当服务器收到请求需要创建session对象时,首先检查客户端请求中是否包含sessionid,如果有,将根据该id返回一个session对象,如果无,则创建一个新的session对象并返回sessionid给客户端。而sessionid一般是通过cookie方式存储到客户端的。如果客户端禁用cookie,则使用response.encodeURL(url)重写URL。
  4. 保存位置:session保存在服务器端
  5. 存储内容:支持对象类型
  6. 存储大小:无限制
  7. 安全性:比cookie安全。原因主要有如下几点:sessionid存储在cookie中,要得到sessionid必须先攻破cookie;sessionid只会在登录或启动session_start时才会出现;第二次启动session_start后,前一次的sessionid失效,session过期后,sessionid也随之失效;sessionid是加密的。
  8. 应用:将某些数据放入session中以便同一用户在不同页面中使用、保存用户的登录信息
  9. 缺点:占用服务器内存、依赖于cookie、过度使用会使代码难以维护、同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到
  10. session只支持仅在它所在的域名内有效
  11. 使用操作:

* 获取:session.get(key, "默认值")

* 设置:session.permanent = True 、 session[key] = value

* 删除:session.pop(key,None)、session.clear()

三、webStorage:localStorage和sessionStorage(HTML5离线缓存)

webStorage的基本特点如下:

1.可以存储大小为5MB的数据

2.存储内容为字符串类型

3.存储在浏览器端,不与服务器进行交互

4.使用window.localStorage和window.sessionStorage来获取

5.不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的 localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。这里需要注意的是,页面及标签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。

6.具备的方法有:

保存数据:setItem(key, value)

获取数据:getItem(key)

删除单个数据:removeItem(key)

删除所有数据:clear()

获取index对应的key:key(index)

   而这两种HTML5离线存储的方式又有所不同:

  • 生命周期不同:前者始终存在,除非手动清除;后者仅在当前浏览器窗口关闭前有效。
  • 作用域不同:前者在所有同源窗口中共享;后者不在不同的浏览器窗口中共享,即使是同一个页面。
  • 应用场景不同

sessionStorage是在同源的窗口中始终存在的数据。只要这个浏览器窗口没有关闭,即使刷新页面或者进入同源另一个页面,数据依然存在。但是sessionStorage在关闭了浏览器窗口后就会被销毁。同时独立的打开同一个窗口同一个页面,sessionStorage也是不一样的。

webStorage的好处有:减少了不必要的数据请求、可以快速显示页面、临时存储、提供了可以大量存储的跨会话的数据存储机制、数据使用操作优于cookie

四、离线存储

1、什么是离线存储?

用户未与网络连接时,可正常访问站点或应用;用户与网络连接时,更新用户机器上的缓存文件。

2、离线存储的原理?

离线存储是基于一个新建的Appcache文件的缓存机制。通过这个文件上的清单解析离线存储资源,这些资源会像cookie一样被存储下来。当网络离线时,浏览器直接使用被离线存储的数据。

3、如何使用离线存储?

在线时,浏览器发现html头部有mainfest属性,会请求mainfest文件。如果是第一次访问App,则浏览器根据mainfest文件的内容下载相应的资源并进行离线存储;如果已访问过App且资源已离线存储,则浏览器会使用离线存储的资源加载页面并对比新旧mainfest文件。如果文件未发生改变,就不再进行操作;如果文件改变了,就重新下载文件资源并离线存储。离线时,浏览器直接使用离线存储的资源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大学生就业服务平台管理系统按照操作主体分为管理员和用户。管理员的功能包括学生档案管理、字典管理、试卷管理、试卷选题管理、试题表管理、考试记录表管理、答题详情表管理、错题表管理、法律法规管理、法律法规收藏管理、法律法规留言管理、就业分析管理、论坛管理、企业管理、简历管理、老师管理、简历投递管理、新闻资讯管理、新闻资讯收藏管理、新闻资讯留言管理、学生信息管理、宣传管理、学生管理、职位招聘管理、职位收藏管理、招聘咨询管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 大学生就业服务平台管理系统可以提高大学生就业服务平台信息管理问题的解决效率,优化大学生就业服务平台信息处理流程,保证大学生就业服务平台信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理新闻信息,管理大学生就业服务平台信息,包括考试管理,培训管理,投递管理,薪资管理等,可以管理新闻信息。 考试管理界面,管理员在考试管理界面中可以对界面中显示,可以对考试信息的考试状态进行查看,可以添加新的考试信息等。投递管理界面,管理员在投递管理界面中查看投递类信息,投递描述信息,新增投递信息等。新闻信息管理界面,管理员在新闻信息管理界面中新增新闻信息,可以删除新闻信息。新闻信息类型管理界面,管理员在新闻信息类型管理界面查看新闻信息的工作状态,可以对新闻信息的数据进行导出,可以添加新新闻信息的信息,可以编辑新闻信息信息,删除新闻信息信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值