坎帕斯学院讨论日常-2
这是第二次整理讨论的内容,本次内容有点深奥,值得细嚼慢咽。
名词解释
- 高并发(High Concurrency)
- 指通过设计保证系统能够同时并行处理很多请求。
- 是互联网分布式系统架构设计中必须考虑的因素之一。
- 高性能(High performance)
- 目前理解就是提高浏览网页的速度。
- 高可用(High Availability)
- 通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。
- 高扩展性(High Extensibility)
- 通常和可伸缩性混为一谈.在软件范畴上,是软件系统本身的属性,或者进一步说是设计的属性,代码的属性。
- 高可维护性(High Maintainability)
- 是衡量一个系统的可修复(恢复)性和可改进性的难易程度。
接口的高可用性
保证这个接口在任何情况下都可以正确的取到数据。
- 方案一:每次访问的时候将a接口的数据存在本地,第二次访问的时候接口如果gg了,可以直接在本地获取数据,然后渲染出来;(前提是访问过a接口)
- 方案二:推oss或者cdn;每次访问了一个接口,然后服务器把返回的数据生成文件推送到一个静态资源服务器上去;
- 好处:比如某人访问了接口,静态资源服务器就会缓存a里面的数据,这时候gg了,其他人依然可以请求到oss上的数据;(逻辑是前端做到的,但是数据推到oss上是从后台推上去的)
- oss几乎不可能gg,原因是它只是一个静态资源存储的地方;
- 默认数据:(假数据)当接口不可用的时候,用这个自己做的数据;
目前企业的解决方案是:先走服务器接口,若是gg了;再访问本地缓存;若没有,则访问oss。
本地缓存
- 优点:
- 如果第一次没有访问对应的接口就没有本地缓存;
- 数据的时效性不够;
- 缺点:
- 快,不用通过网络请求;
缓存地点
- 缓存类型:
sessionStorage
:只在当次回话有效,不会带到每一个请求里面去;indexDB
:浏览器支持度很低,也就是说兼容问题很大;cookie
:过期时间可以设置,默认是浏览器当期回话结束失效;cookie很小;每次对应域名是会在每个请求头带过去,浪费资源,所以限制了大小,如果不限制,就会跟上传文件没有区别了,会导致特别慢;对于数据接口,我们不能保证内容有多大,而且每个接口数据都要缓存,所以不能用cookie。localstorage
:没有大小限制;
以上都属于这两种类型:
- (私有)浏览器缓存:单个用户,你浏览过的页面浏览器缓存起来。
- (共享)代理缓存:多个用户,所在公司自己架构的,减少网络拥堵与延迟。
浏览器缓存机制
浏览器请求一个资源,是怎么判断取缓存还是找服务器下载?
状态码304是怎么产生的?
- 是因为本地文件设置的信息头部过期了,去服务器拉取,然后服务器告诉我,其实你的文件还尚未过期,让你回自己本地取资源;
状态码200(from cache)是怎么产生的?
- 一定是通过了请求并且成功然后返回的状态码,方式
get
或者post
。
以上的问题只是有所了解了,但是关于浏览器的缓存机制还没有系统的了解,自己在看官方文档的时候,感觉有点困惑,所以先在这里埋个种子。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 人间一趟!
评论