配置apache使之支持浏览器端的缓存
当直接在浏览器中输入一个URL,或者点击一个链接的时候,那么浏览器缓存就会起作用,如果缓存没有过期,那么浏览器会从本地读取资源,不会发起HTTP请求,如果缓存过期,那么浏览器会发起新的浏览器请求。
一、适用直接访问,非F5刷新页面的情况下
Expires是HTTP/1.0的缓存头, Cache-Control: max-age
是HTTP/1.1是用来进行HTTP缓存的头。Expires指定了资源过期的绝对时间,GMT格式,Cache-Control:
max-age指定了资源过期的相对时间,单位是秒。在支持HTTP/1.1的浏览器上,如果发送两个头,那么Cache-Control:
max-age会覆盖掉Expires;在支持HTTP/1.0的浏览器上,即使发送了两个头,但是只有Expires会起作用,所以为了兼容老的浏览
器,还是要同时发送这两个头。设置HTTP缓存,需要安装expires_module,其会发送Expires和Cache-Control:
max-age两个HTTP头。
配置apache:
可以直接配置在httpd.conf文件中
ExpiresActive On
ExpiresByType application/x-javascript "access plus 20 minutes"
ExpiresByType text/css "access plus 20 minutes"
ExpiresByType image/gif "access plus 20 minutes"
ExpiresByType image/jpeg "access plus 20 minutes"
ExpiresByType image/png "access plus 20 minutes"
ExpiresByType
application/x-javascript "access plus 20 minutes"
表示对js资源设置Expires和Cache-Control:
max-age头,其中Expires的值是以客户端访问资源的时间为基准的后20分钟,Cache-Control:
max-age的值是60x20秒。
ExpiresByType application/x-javascript "modification plus 20 minutes"和上面效果一样,只是Expires的时间是以资源最后修改的时间作为计算的基准。
二、适用F5刷新页面的情况下
关于ETage及Last-Modified
Last-Modified与ETag是同样的功能,都是用来标识一个资源是否更改过,Last-Modified的值是资源的时间戳,如果按F5或者刷
新按钮则If-Modified-Since头会带着时间戳发送到服务器,如果服务器上资源的最后修改时间<=这个时间,那么返回304 Not
Modified,否则返回200 OK
以及新的资源;ETag的值是通过资源的信息(一般为inode,大小,时间戳)而计算出来的一个字符串,如果按F5或者刷新按钮则If-None-
Match头会带着这个值发送到服务器,服务器用这个值来和当前资源的值进行比对,如果相等,则返回304 Not Modified,否则返回200
OK 以及新的资源。默认情况下Apache对静态资源会发送Last-Modified和ETage
视浏览器支持情况,较老的浏览器支持Last-Modified,较新的浏览器支持ETage,所以为了兼容,可以两个都开启,不过,当两者都开启的情况
下,apache会验证同时验证两者是否符合缓存条件,也就是即使Last-Modified符合缓存条件而ETage不符合,apache会重新返回内
容,即返回200状态码而不是304
apache默认情况下同时开启这两项功能的
如果关闭ETage
配置这两行即可
FileETag None
Header unsets ETag
如果只是部分关闭Last-Modified,如只对gif|jpg|png文件关闭
配置如下:
LoadModule headers_module modules/mod_headers.so
<FilesMatch "\.(gif|jpg|png)">
Header unset Last-Modified
</FilesMatch>
参照Apache官网文档:http://httpd.apache.org/docs/2.2/zh-cn/mod/mod_expires.html
配置apache使之支持浏览器端的缓存的更多相关文章
- 全部用startssl生成的证书,配置Apache使其支持SSL
Apache的编译安装见这篇: http://www.cnblogs.com/yjken/p/3921840.html 网上查阅了一大批资料,得知自己生成的证书是会被浏览器提示“证书不安全”的,我也就 ...
- Apache下开启SSI配置,使html支持include包含
有的时候,我们的页面有公共的导航栏navbar,公共的脚注footer,那么我们就想把这些公共部分独立成一个html文件,在要引用的地方像引用js,css一样,给包含进来. Apache下开启SSI配 ...
- Windows下配置Apache服务器并支持php
php环境的配置相对来说比较繁琐,网上教程大部分都是放一起说,总体感觉比较乱,其实Apache是一款通用的服务器软件,可以用来配置支持静态页面,php.Python.Java甚至asp等服务端语言,要 ...
- 配置Apache控制浏览器端的缓存的有效期
这个非常有用的优化,mod_expires可以减少20-30%左右的重复请求,让重复的用户对指定的页面请求结果都CACHE在本地,根本不向服务器发出请求.但要注意更新快的文件不要这么做.这个模块控制服 ...
- wamp配置apache虚拟主机支持多域名访问localhost
1.背景: 在进行网站开发的时候,通常需要以http://localhost或者127.0.0.1等地址来访问本地环境的网站.不过随着开发项目的增多,需要每次先访问localhost然后再选项目,显得 ...
- CentOS linux下安装和配置Apache+SVN(用浏览器http方式访问SVN目录)
在CentOS linux下安装SVN,我们可以进行以下步骤: 第一步:安装CentOS Linux操作系统,并在CentOS安装进行的同时,自定义安装这一步,一定要勾选Subversion(在“开发 ...
- 安装篇八:配置 Nginx 使其支持 MySQL 应用
配置说明 (让nginx MySQL(中间件)之间建立关系) 第一个里程: 编写nginx.php首页文件 第二个里程:重启nginx 第三个里程:访问网页测试 打开浏览器访问:http://47. ...
- 安装篇七:配置 Nginx 使其支持 PHP 应用
配置说明(NGINX-PHP) (让nginx php(中间件)之间建立关系):nginx--php建立关系---fastcgi---cgi 第一个里程: 编写nginx虚拟主机配置文件 第二个里程 ...
- 使用CDN后如何配置Apache使其记录访客真实IP
今天想看看哪些地区的人访问过我的网站,于是打开Apache网站响应日志,把访客IP复制到百度,发现搜到的全部都是我是用的CDN的节点IP,真实的访客IP并没有被记录. 如图所示,上面的103.45.7 ...
随机推荐
- cs231n spring 2017 lecture2 Image Classification 听课笔记
1. 相比于传统的人工提取特征(边.角等),深度学习是一种Data-Driven Approach.深度学习有统一的框架,喂不同的数据集,可以训练识别不同的物体.而人工提取特征的方式很脆弱,换一个物体 ...
- COGS 2482. Franky的胡子【二分,高精度】
2482. Franky的胡子 ☆ 输入文件:beard.in 输出文件:beard.out 简单对比 时间限制:1 s 内存限制:128 MB [题目描述] Franky很苦恼他一直 ...
- Codeforces 626E Simple Skewness(暴力枚举+二分)
E. Simple Skewness time limit per test:3 seconds memory limit per test:256 megabytes input:standard ...
- SG 函数 S-Nim
http://poj.org/problem?id=2960 S-Nim Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 34 ...
- hbmy周赛1--B
B - 改革春风吹满地 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit ...
- HDU--2024
C语言合法标识符 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- c#简单操作MongoDB_2.4
一.MongoDB的安装 MongoDb在windows下的安装与以auth方式启用服务 二.下载驱动 使用nuget搜索“mongodb”,下载“MongoDB.Driver”(这是官方推荐的一个驱 ...
- Windows下MYSQL读取文件为NULL
只记录解决问题的方法. mysql 版本: 5.7.18 问题: 在执行mysql 函数load_file时,该函数将加载指定文件的内容,存储至相应字段.如: SELECT LOAD_FILE(&qu ...
- 使用vue-axios请求geoJson数据报错的问题
最近的项目用到了echarts一个带有散点地图的图表,按照正常jquery写法应该使用ajax请求geojson的数据动态去切换地图,就像下面这样 $.get('Js/map/' + cityData ...
- [国嵌攻略][179][OpenSSL加密系统]
未加密传输的安全弊端 如果在网络传输中没有加密,就是以明文传输.传输的数据可以被抓包软件直接截获,并能读取里面的数据. 加密基本原理 1.对称加密 2.非对称加密 2.1.公钥私钥 公钥和私密要配对. ...