您的位置:首页 > Web前端 > HTML

关于浏览器缓存奥秘总结

2013-07-27 12:03 344 查看


(1)首先明白IE的缓存设置,自动为默认设置;

IE访问静态网页时:Servlet引擎调用默认Servlet返回静态网页内容,增加Last-Modified响应头字段

IE访问以GET方式访问动态网页时:根据getLastModified返回值,生成Last-Modified头字段

IE访问以POST方式访问动态网页时:不调用getLastModified方法,也不进行任何判断,每次都直接调用Servlet程序。

(2) 用浏览器的“后退”“前进”方式访问已缓存(如果没有缓冲将重新访问,例如删除IE缓存文件)的页面时,或者直接在浏览器地址栏中访问已缓存的页面时,浏览器将直接调用缓存的内容,而不向服务器发出新的访问请求。

(3)setContentType:设置mime类型和字符集产生Content-Type响应头字段;

 setCharacterEncoding:只设置mime类型的字符集,不设置Content-Type的值,优先级最高; setLocal:设置mime类型的字符集,不设置Content-Type,优先级最低。

(4) html静态文件中的字符集编码为utf-8,servlet引擎需要读取html静态文件时,需要知道此文件的字符集编码,才能正确转换成unicode字符集编码,而从html文件本身的内容上无法准确知道其所采用的字符集编码(记事本程序可以通过utf-8文件的3个字节的特征区分不同字符集编码),所以,tomcat的缺省Servlet只能去假定和猜测静态html文件的字符集编码。由于人们一般都按照操作系统本地字符集编码来编写自己的文件,所以,tomcat的缺省servlet假定所有静态html文件的字符集编码为操作系统本地字符集编码,对中文系统来说,即GB2312。在通常情况下,进行这种假定都不会出什么问题,但是,一旦静态html文件的字符集编码与本地操作系统的不一致时,就会出现问题。

(5) HttpServletRequest的getParameter方法无法读取以multipart/form-data编码的form表单中的各个字段元素信息,只能调用getInputStream或getReader方法返回的输入流对象进行读取后再提取各个字段元素的信息。

(6) 对于以application/x-www-form-urlencoded编码的form表单,所有字段按url参数的形式组合在一行,并且其中的参数值都被url编码。由于HttpServletResponse接口中定义getParameter等方法可以直接读取各个表单字段元素的信息,并且得到的参数值为url解码以后的结果,所以,在Servlet程序中一般都不用getInputStream或者getReader方法返回输入流对象的方式去读取application/x-www-form-urlencoded编码的表单字段信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  HTML 浏览器