web开发中的缓存问题的研究(一)
web开发中的缓存问题的研究(一)
web开发中的缓存问题的研究(二)
web开发中的缓存问题的研究(三)
一般情况下,浏览器都会缓存已经访问过的页面内容,关于如何禁止浏览器缓存的介绍,在网上到处都有相关的文章,但是,关于浏览器如何利用缓存,如何处理缓存的讲解,却鲜有人谈及.我一直为这个问题所困惑,这个问题也是绝大多数有经验的WEB开发人员所共同面临的问题,我有些朋友已做过几十个大大小小的WEB项目,当与他们交流这些问题时,他们虽然也在项目中遇到和解决过这些问题,但由于没有足够的时间和精力来仔细思考这些问题的原因和细节,他们对这些问题始终也是一知半解、含糊不清,而目前又很少关于这些问题的专门和详细讲解,我最近用了两天的时间,把浏览器缓存的问题透彻地研究了一翻,主要包括一下方面的细节.
1.如何禁止浏览器缓存,这是最简单的问题,本来羞于在此讲解,但是为了完整性,不妨将其列为一个知识点.
2.浏览器在访问已缓存过的资源时,它在什么情况下会向服务器发送请求?在什么情况下根本就不向服务器发送请求.这与浏览器的缓存设置有关!但是,由于几乎所有人的浏览器都是采用的默认设置,所以,重点应该放在分析浏览器的默认缓存设置的研究上.
3.当通过其他网页文档中的超链接来访问某一个已经缓存过的资源时,浏览器是否要向服务器发出访问请求?如果不发,则会出现一个问题:当销售一件商品后再回到商品库存的显示页面时,看到的还将是先前看到的内容,而不是更新的库存数据。但是,在访问一个普通的HTML文件时,如果浏览器每次都向服务器发送访问请求,效率就会相对低下,这就失去了缓存的意义和价值.所以,结论应是浏览器访问动态页面时不能使用缓存,而访问静态页面时应该使用缓存,但是,仅仅根据被访问页面的资源名称,浏览器是无法知道商品库存的显示页面是属于动态内容,还是属于静态内容。浏览器是根据什么方式来判断它缓存的资源是动态的,还是静态的呢?在什么请求下,它会对缓存的资源总是发出新的请求呢?
4.对于缓存的内容,即使浏览器向服务器发送了请求,但服务器在接收到请求后,可能不会返回内容,而是让浏览器继续使用缓存的内容,这在实际应用中有什么好处呢?如何处理其具体细节呢?
5.服务器端也有缓存,当服务器接收到浏览器的请求后,假设它返回响应内容,但返回的响应内容可能不是最新的内容,而很可能是一个旧的缓存版本,这又是怎么回事呢?
所有这些问题,在笔者的《深入体验java web开发内幕》一书中都有深刻的分析和详细的实验步骤.
以下是该书的节选(不包括服务器端缓存技术的讲解,服务器端缓存技术在其他章节有案例分析)
4.5.8 浏览器缓存内幕与getLastModified方法
在HttpServlet类中定义了一个getLastModified方法,其完整语法定义如下:
protected long getLastModified(HttpServletRequest req)
其中的返回值表示自1970年1月1日的0点0分0秒开始计算的一个毫秒数,HttpServlet类中定义的getLastModified方法总是返回一个负数,在HttpServlet子类中可以对这个方法进行覆盖,以便返回一个代表当前输出的响应内容的修改时间,HttpServlet类的service方法可以根据这个返回值在响应消息中自动生成Last-Modified头字段。
一般情况下,浏览器都会缓存已经访问过的页面内容,getLastModified方法的返回值可以影响浏览器如何处理和利用缓存内容。在详细了解getLastModified方法的应用之前,应该先对浏览器的缓存机制有所了解。单击IE浏览器的“工具”“Internet选项”菜单,打开“Internet选项”对话框,接着再单击“常规”选项卡中的“Internet临时文件”栏中的“设置”按钮,打开如图4.16所示的“设置”对话框。
图4.16
在图4.16所示的“设置”对话框的“Internet临时文件夹”栏中,可以看到浏览器保存所有缓存页面内容的文件夹的完整目录名称,对于Administrator用户来说,其默认的设置为“C:/Documents and Settings/Administrator/Local Settings/Temporary Internet Files”。单击“Internet临时文件夹”栏中的“查看文件”按钮,可以打开这个文件夹,如图4.17所示。.
图4.17
web开发中的缓存问题的研究(一)
web开发中的缓存问题的研究(二)
web开发中的缓存问题的研究(三)
转载于:https://www.cnblogs.com/spring3/archive/2006/05/14/2401809.html
web开发中的缓存问题的研究(一)相关推荐
- 幻灯片:Web开发中的缓存
这是我昨天在博文视点Open Party上海站上关于Web开发中缓存的简单讲座.原本博文视点的朋友们希望我讲一下ASP.NET MVC方面的话题(估计看我最近一直在搞这个),但是我觉得其他平台一直用的 ...
- eclipse下web开发中缓存问题
eclipse下web开发中缓存问题 原创 2016年04月06日 17:27:14 标签: eclipse / 缓存 / web开发 2351 问题描述:对web文件无论怎么修改,甚至删除,最后都会 ...
- python web开发第三方库_Python Web开发中常用的第三方库
Python Web开发中常用的第三方库 TL;DR 经常有朋友问,如果用Python来做Web开发,该选用什么框架?用 Pyramid 开发Web该选用怎样的组合等问题?在这里我将介绍一些Pytho ...
- Web 开发中应用 HTML5 技术的10个实例教程
HTML5 作为下一代网站开发技术,无论你是一个 Web 开发人员或者想探索新的平台的游戏开发者,都值得去研究.借助尖端功能,技术和 API,HTML5 允许你创建响应性.创新性.互动性以及令人惊叹的 ...
- java和Mysql数据一致性_java web开发中数据一致性的问题
在java web开发中,数据存储介质有如下几种数据库(rdms,nosql) 缓存系统(redis,memcached,ehcache) java内部数据结构(map,list) 文件存储(fast ...
- 【笔记-node】《imooc-nodejs入门到企业web开发中的应用》
目录 课程名 备注 入门必学 nodejs入门到企业web开发中的应用 框架与工具 node.js+koa2+mysql打造前后端分离精品项目<旧岛> 项目实战 20190317-2020 ...
- Web开发中的常见应用
一.文件下载 文件下载功能是web开发中经常使用到的功能,使用HttpServletResponse对象就可以实现文件的下载. 文件下载功能的实现思路: 获取要下载的文件的绝对路径 获取要下载的文件名 ...
- ASP.NET AJAX 在Web开发中的应用
摘 要 ASP.NET AJAX 实现了Web页面丰富的部分刷新效果.本文通过介绍AJAX原理,引申到ASP.NET AJAX原理,并总结了在Web 开发应用中要注意的若干问题.合理地利用ASP.NE ...
- Web开发中的图片管理:策略与实践
前言 在Web开发中,图像是无法忽视的重要组成部分.然而,随着图片数量的增加和高清图像的普及,图片管理变得越来越复杂.在这篇文章中,我们将详细探讨Web开发中的图片管理策略和实践,包括图片优化.存储. ...
最新文章
- google地图经纬度偏移修正算法完美解决方案
- 自定义msi安装包的执行过程
- HT For Web 拓扑图背景设置
- 使用ADF绑定创建视图对象行CreateInsert操作
- python-运算符-比较运算符
- jquery实现同时展示多个tab标签+左右箭头实现来回滚动
- 宝塔搭建PHP自适应懒人网址导航源码实测
- RabbitMQ03高级篇(消息可靠性投递,Consumer ACK,消费端限流,TTL, 通过代码创建队列和交换机以及绑定)
- python生成三对角矩阵_块三对角矩阵python
- linux将时间戳转换,linux时间戳转换
- 将Kali Linux中的Firefox浏览器语言设置为中文
- 《英语语法新思维 基础版2》读书笔记(一)
- NFC Forum发布NFC数据交换格式(NDEF)规范
- 2018太原理工计算机二级,太原理工大学2018年度全面绩效考核结果和发放考核绩效的通知...
- 杨辉三角与倒置杨辉三角
- 第二十三章:面向对象(3)
- docker进入容器的方法
- 视频剪辑PR各种版本
- 医院WLAN无线认证解决方案
- 论文研究记录----数据整理
热门文章
- python资源百度网盘-bypy-百度网盘Python客户端 linux
- 函数式编程语言python-Python——五分钟理解函数式编程与闭包
- 学好python可以做什么兼职-自学Python能干些什么副业
- python的工资为什么这么低-Python为什么这么火 Python岗位薪资水平如何
- python装饰器-python装饰器
- python简单编程例子-Python入门 —— 用pycharm写一个简单的小程序3
- python3下载慢-PIP 下载慢,给你Python3的pip换个源 一键换源
- python学习费用-学习老男孩python多少钱?收费贵不贵?
- python爬虫工程师-Python-爬虫工程师-面试总结
- python下载的文件放在哪里的-python实现文件下载的方法总结