• 关于

    动态生成PDF文件

    的搜索结果

问题

java生成pdf格式的图表报表文件

蛮大人123 2019-12-01 19:24:44 2939 浏览量 回答数 1

回答

首先网页部分,实现动态是没问题的,网页生成PDF也没问题,所以你第一部分“服务器定时生成一个pdf格式的报表文件”,其实就是吧这个报表的网页在win服务里自动去吧这个url的页面生成pdf,所以第一部分就和第二部分“将当前的页面展示内容生成一个pdf报表”其实是一样的,最后就剩下PDF动态问题了,这个貌似Pdf本身没这功能吧(比如tips),若果有的话,你把有tips的网页转成PDF应该tips也会保留的。

蛮大人123 2019-12-02 02:19:23 0 浏览量 回答数 0

问题

仅在动态报告中在pdf第一页中设置页脚

垚tutu 2019-12-01 22:06:32 5 浏览量 回答数 0

万券齐发助力企业上云,爆款产品低至2.2折起!

限量神券最高减1000,抢完即止!云服务器ECS新用户首购低至0.95折!

问题

java下html导出pdf文件,换jar包的后如何解决出现的问题??? ?报错

爱吃鱼的程序员 2020-06-12 10:55:42 0 浏览量 回答数 1

问题

itext导出pdf jar包冲突问题??报错

爱吃鱼的程序员 2020-06-12 10:51:51 0 浏览量 回答数 1

问题

solr(windows下)如何对目录下的中文内容的docx/doc和PDF的全?报错

爱吃鱼的程序员 2020-06-09 14:42:17 0 浏览量 回答数 1

问题

Activiti 工作流项目源码 代码生成器 websocket即时通讯 springmvc SS

游客egqjd4t7mlyom 2019-12-01 19:54:26 50 浏览量 回答数 0

问题

Activiti6.0 java项目框架 spring5 SSM 工作流引擎 审批流程

游客ydre72cd7ywew 2019-12-01 20:01:08 10 浏览量 回答数 0

问题

Activiti6.0 java项目框架 spring5 SSM 工作流引擎 审批流程

游客q6uipubrszn5g 2019-12-01 19:59:18 27 浏览量 回答数 0

问题

Activiti6.0 java项目框架 spring5 SSM 工作流引擎 审批流程

游客ydre72cd7ywew 2019-12-01 19:53:06 30 浏览量 回答数 0

问题

Activiti6.0 工作流引擎 websocket即时聊天发图片文字 好友群组 SSM源码

游客q6uipubrszn5g 2019-12-01 19:57:13 37 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档过期时间控制支持三个维度,优先级依次为控制台设置——源站header设置——cache的默认策略设置cdn缓存规则参考:https://help.aliyun.com/document_detail/cdn/getting-started/set/set-cachepolicy.html?spm=5176.doccdn/getting-started/httpsdelivery.6.106.yJalap 控制台过期时间设置详见【域名过期时间设置】,源站设置详见【webserver缓存策略设置】,cache的默认策略是针对用户既没有在控制台设置过期时间,也没有在源站设置过期时间,会走一个默认的全局策略,既保证加速效果,又避免因为动态的文件缓存导致的问题详见【Cache的默认缓存策略】。Webserver缓存策略设置一、IIS 缓存策略设置1、 因为整体的站点只对.html .jpg .png .gif .apk文件,而其他文件都不缓存;可以首先对整个站点设置成不缓存,设置如下:a)打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,然后选择“HTTP头“选卡,勾选“启用内容过期”,并选择“立即过期”,然后“确定”,具体如下:  b)经过上述设置后整个网站的内容都不会被CDN缓存,然后对.html .jpg .png .gif .apk文件类型设置缓存策略  2、针对特定文件的缓存设置如下:a)如果上面不同扩展名的文件都单独放在一个特定的目录下面,且该目录没有其他扩展名的文件,那么可以针对这个扩展名所在的整个目录设置缓存的时间;具体方法是在“IIS信息管理器”中,展开网站“a.cc.com”的目录,选中需要设置缓存时间的目录,比如所有jpg都存储在img这个目录下,那么右键点击该目录,选择“属性’,选中”HTTP头“选卡;因为刚才整个网站都设置了不缓存的设置,因此这时打开该目录的”HTTP头“的缓存设置和1中的一致,接下来就有修改这个配置:选择”此时间段后过期“,并且将时间设置为过期的时间值,比如14天,点击“确定”保存,具体如下:  b) 如果特定扩展名的文件不是统一放在唯一的目录下,是和其他扩展名文件混合放在一个目录下面的,这种情况配置要复杂一些;  为了避免针对特定扩展名的文件进行逐个的配置,我们需要让IIS支持“通配符”,支持“通配符”的配置如下:1) 打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,选择“主目录”选卡,点击选卡上的“配置”按钮,出现如下对话框:  2) 在“通配符应用程序映射(执行顺序)”一栏下面,点击“插入”按钮,在弹出的文件选择框时选择 C: \WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 文件,其中“C:”是系统盘,不要勾选“确认文件是否存在”,具体如下:  连续两个“确定”按键点击后,就完成了IIS通配符的支持配置 3)接下来就是到存在需要进行缓存配置文件的目录下面,首先选择一个需要缓存扩展名的文件,点击右键,选择属性,选择“HTTP头”选卡,进行2.a)中的配置,并保存;接下来就有对这个文件目录下面所有相同扩展名的文件进行该设置了,此时需要修改IIS的配置文件实现。 4)IIS的配置文件放置在C:\WINDOWS\system32\inetsrv\MetaBase.xml(IIS6的设置),用“记事本”程序打开上述文件,如果我们3)中是针对bin目录下面的test.jpg做了缓存过期时间的设置的,那么我们就查找字串“/bin/test.jpg“,就可以在该文件中找到bin目录下test.jpg文件的缓存设置,为了使bin目录下面所有的jpg文件都采用该缓存设置,只需要将“test.jpg”改为”*.jpg“就可以了,然后保持该文件。注意要修改上述文件,需要在“服务”中关闭“IIS admin Service”。 5)其他扩展名的文件缓存设置可以重复上面的3)和4)操作。 二、Nginx 缓存策略设置HTTP头处理模块(HTTP Headers),这个模块允许设置任意的HTTP头 1) add_header语法:add_header name value 默认值:none 使用字段:http, server, location 2) expires语法:expires [time|epoch|max|off] 默认值:expires off 使用字段:http, server, location  这个指令控制是否在应答中标记一个过期时间,如果是,如何标记。off 将禁止修改头部中的 Expires和Cache-Control字段。Time控制“Cache-Control”的值,负数表示no-cacheepoch 将Expires头设置为1 January, 1970 00:00:01 GMT。max 将Expires头设置为31 December 2037 23:59:59 GMT,将Cache-Control最大化到10 年。 例如设置php的文件类型过期时间设置为1个小时:        设置php的文件类型为no-cache,不让cache服务器缓存:    另外可以通过add_header设置相对应的缓存策略,对于动态的php文件设置为不缓存: location ~ .*\.php$ {    if ($request_uri !~ ^/dynamicimg/) {        add_header              Cache-Control "no-cache";        add_header              Pragma no-cache;    }  } 三、Apache缓存策略设置 Apache的过期策略可以通过apache的mod_expires和mod_headers两个模块设置: 1)模块mod_expires设置:允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容mod_expires 模块的主要作用是自动生成页面头部信息中的 Expires 标签和 Cache-Control 标签,从而降低客户端的访问频率和次数,达到减少不必要流量和增加访问速度的目的mod_expires 是 apache 众多模块中配置比较简单的一个,它一共只有三条指令ExpiresActive 指令:打开或关闭产生”Expires:”和”Cache-Control:”头的功能。ExpiresByType 指令:指定MIME类型的文档(例如:text/html)的过期时间。ExpiresDefault 指令:默认所有文档的过期时间。 过期时间的写法“access plus 1 month”“access plus 4 weeks”“now plus 30 days”“modification plus 5 hours 3 minutes”A2592000M604800access、now及A 三种写法的意义相同,指过期时间从访问时开始计算。modification及M 的意义相同,指过期时间是以被访问文件的最后修改时间开始计算。所以,后一种写法只对静态文件起作用,而由脚本生成的动态页面不受它的作用 配置实例:     ExpiresActive On(开启mod_expires功能)    ExpiresDefault "access plus 6 months"(默认的过期时间是6个月)    ExpiresByType image/* "access plus 10 years"(图片的文件类型缓存时间为10年)    ExpiresByType text/* "access plus 10 years"(文本类型缓存时间为10年)    ExpiresByType application/* "access plus 30 minutes"(application文件类型缓存30分钟) 验证:image/jpeg 缓存时间为315360000s(10年)  如果将image/jpeg设置为不缓存(将max-age设置为0s): #   ExpiresByType image/* "access plus 10 years"ExpiresByType image/*  A0   2)模块mod_headers设置:   # YEAR(flv,gif,ico文件类型的缓存时间为1年)Header set Cache-Control “max-age=2592000″# WEEK(pdf.swf,js,css缓存时间为一周)Header set Cache-Control “max-age=604800″# NEVER CACHE(jsp.swf,ico文件类型不缓存)Header set Expires “Thu, 01 Dec 2003 16:00:00 GMT”Header set Cache-Control “no-store, no-cache, must-revalidate”Header set Pragma “no-cache”  Cache的默认缓存策略缓存时间计算t =(savetime - last_modified)*0.1 t = min(10, t) t = max(t, 3600)缓存时间为t,单位秒 1、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:01:00, (curtime-Last_modified)*0.1=6s,那么缓存时间为10s,因为最小值为10s2、当对象last-modified为20140801 00:00:00,当前时间为20140802 00:00:00,(curtime-Last_modified)*0.1=8640s,那么缓存时间为3600s3、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:10:00,(curtime-Last_modified)*0.1=60s,那么缓存时间为60s4、如果源站没有 Last-Modified 响应头,但有 ETag,则该对象极有可能是静态资源,将其默认缓存时间设置为 dft_expires 指令配置的最小值5、如果源站没有 Last-Modified,也没有 ETag,则认为该对象为动态内容,将其默认缓存时间设置为 0,每次都回源  注意事项因为网站开发及其相关技术人员更清楚自身网站的业务逻辑,静态和动态因素,所以建议用户通过控制台按照文件类型,目录控制设置缓存时间控制;如果用户控制有缓存策略控制,Cache的默认缓存策略就不生效。  如果问题还未能解决,请联系售后技术支持。

2019-12-01 23:32:44 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档过期时间控制支持三个维度,优先级依次为控制台设置——源站header设置——cache的默认策略设置cdn缓存规则参考:https://help.aliyun.com/document_detail/cdn/getting-started/set/set-cachepolicy.html?spm=5176.doccdn/getting-started/httpsdelivery.6.106.yJalap 控制台过期时间设置详见【域名过期时间设置】,源站设置详见【webserver缓存策略设置】,cache的默认策略是针对用户既没有在控制台设置过期时间,也没有在源站设置过期时间,会走一个默认的全局策略,既保证加速效果,又避免因为动态的文件缓存导致的问题详见【Cache的默认缓存策略】。Webserver缓存策略设置一、IIS 缓存策略设置1、 因为整体的站点只对.html .jpg .png .gif .apk文件,而其他文件都不缓存;可以首先对整个站点设置成不缓存,设置如下:a)打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,然后选择“HTTP头“选卡,勾选“启用内容过期”,并选择“立即过期”,然后“确定”,具体如下:  b)经过上述设置后整个网站的内容都不会被CDN缓存,然后对.html .jpg .png .gif .apk文件类型设置缓存策略  2、针对特定文件的缓存设置如下:a)如果上面不同扩展名的文件都单独放在一个特定的目录下面,且该目录没有其他扩展名的文件,那么可以针对这个扩展名所在的整个目录设置缓存的时间;具体方法是在“IIS信息管理器”中,展开网站“a.cc.com”的目录,选中需要设置缓存时间的目录,比如所有jpg都存储在img这个目录下,那么右键点击该目录,选择“属性’,选中”HTTP头“选卡;因为刚才整个网站都设置了不缓存的设置,因此这时打开该目录的”HTTP头“的缓存设置和1中的一致,接下来就有修改这个配置:选择”此时间段后过期“,并且将时间设置为过期的时间值,比如14天,点击“确定”保存,具体如下:  b) 如果特定扩展名的文件不是统一放在唯一的目录下,是和其他扩展名文件混合放在一个目录下面的,这种情况配置要复杂一些;  为了避免针对特定扩展名的文件进行逐个的配置,我们需要让IIS支持“通配符”,支持“通配符”的配置如下:1) 打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,选择“主目录”选卡,点击选卡上的“配置”按钮,出现如下对话框:  2) 在“通配符应用程序映射(执行顺序)”一栏下面,点击“插入”按钮,在弹出的文件选择框时选择 C: \WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 文件,其中“C:”是系统盘,不要勾选“确认文件是否存在”,具体如下:  连续两个“确定”按键点击后,就完成了IIS通配符的支持配置 3)接下来就是到存在需要进行缓存配置文件的目录下面,首先选择一个需要缓存扩展名的文件,点击右键,选择属性,选择“HTTP头”选卡,进行2.a)中的配置,并保存;接下来就有对这个文件目录下面所有相同扩展名的文件进行该设置了,此时需要修改IIS的配置文件实现。 4)IIS的配置文件放置在C:\WINDOWS\system32\inetsrv\MetaBase.xml(IIS6的设置),用“记事本”程序打开上述文件,如果我们3)中是针对bin目录下面的test.jpg做了缓存过期时间的设置的,那么我们就查找字串“/bin/test.jpg“,就可以在该文件中找到bin目录下test.jpg文件的缓存设置,为了使bin目录下面所有的jpg文件都采用该缓存设置,只需要将“test.jpg”改为”*.jpg“就可以了,然后保持该文件。注意要修改上述文件,需要在“服务”中关闭“IIS admin Service”。 5)其他扩展名的文件缓存设置可以重复上面的3)和4)操作。 二、Nginx 缓存策略设置HTTP头处理模块(HTTP Headers),这个模块允许设置任意的HTTP头 1) add_header语法:add_header name value 默认值:none 使用字段:http, server, location 2) expires语法:expires [time|epoch|max|off] 默认值:expires off 使用字段:http, server, location  这个指令控制是否在应答中标记一个过期时间,如果是,如何标记。off 将禁止修改头部中的 Expires和Cache-Control字段。Time控制“Cache-Control”的值,负数表示no-cacheepoch 将Expires头设置为1 January, 1970 00:00:01 GMT。max 将Expires头设置为31 December 2037 23:59:59 GMT,将Cache-Control最大化到10 年。 例如设置php的文件类型过期时间设置为1个小时:        设置php的文件类型为no-cache,不让cache服务器缓存:    另外可以通过add_header设置相对应的缓存策略,对于动态的php文件设置为不缓存: location ~ .*\.php$ {    if ($request_uri !~ ^/dynamicimg/) {        add_header              Cache-Control "no-cache";        add_header              Pragma no-cache;    }  } 三、Apache缓存策略设置 Apache的过期策略可以通过apache的mod_expires和mod_headers两个模块设置: 1)模块mod_expires设置:允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容mod_expires 模块的主要作用是自动生成页面头部信息中的 Expires 标签和 Cache-Control 标签,从而降低客户端的访问频率和次数,达到减少不必要流量和增加访问速度的目的mod_expires 是 apache 众多模块中配置比较简单的一个,它一共只有三条指令ExpiresActive 指令:打开或关闭产生”Expires:”和”Cache-Control:”头的功能。ExpiresByType 指令:指定MIME类型的文档(例如:text/html)的过期时间。ExpiresDefault 指令:默认所有文档的过期时间。 过期时间的写法“access plus 1 month”“access plus 4 weeks”“now plus 30 days”“modification plus 5 hours 3 minutes”A2592000M604800access、now及A 三种写法的意义相同,指过期时间从访问时开始计算。modification及M 的意义相同,指过期时间是以被访问文件的最后修改时间开始计算。所以,后一种写法只对静态文件起作用,而由脚本生成的动态页面不受它的作用 配置实例:     ExpiresActive On(开启mod_expires功能)    ExpiresDefault "access plus 6 months"(默认的过期时间是6个月)    ExpiresByType image/* "access plus 10 years"(图片的文件类型缓存时间为10年)    ExpiresByType text/* "access plus 10 years"(文本类型缓存时间为10年)    ExpiresByType application/* "access plus 30 minutes"(application文件类型缓存30分钟) 验证:image/jpeg 缓存时间为315360000s(10年)  如果将image/jpeg设置为不缓存(将max-age设置为0s): #   ExpiresByType image/* "access plus 10 years"ExpiresByType image/*  A0   2)模块mod_headers设置:   # YEAR(flv,gif,ico文件类型的缓存时间为1年)Header set Cache-Control “max-age=2592000″# WEEK(pdf.swf,js,css缓存时间为一周)Header set Cache-Control “max-age=604800″# NEVER CACHE(jsp.swf,ico文件类型不缓存)Header set Expires “Thu, 01 Dec 2003 16:00:00 GMT”Header set Cache-Control “no-store, no-cache, must-revalidate”Header set Pragma “no-cache”  Cache的默认缓存策略缓存时间计算t =(savetime - last_modified)*0.1 t = min(10, t) t = max(t, 3600)缓存时间为t,单位秒 1、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:01:00, (curtime-Last_modified)*0.1=6s,那么缓存时间为10s,因为最小值为10s2、当对象last-modified为20140801 00:00:00,当前时间为20140802 00:00:00,(curtime-Last_modified)*0.1=8640s,那么缓存时间为3600s3、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:10:00,(curtime-Last_modified)*0.1=60s,那么缓存时间为60s4、如果源站没有 Last-Modified 响应头,但有 ETag,则该对象极有可能是静态资源,将其默认缓存时间设置为 dft_expires 指令配置的最小值5、如果源站没有 Last-Modified,也没有 ETag,则认为该对象为动态内容,将其默认缓存时间设置为 0,每次都回源  注意事项因为网站开发及其相关技术人员更清楚自身网站的业务逻辑,静态和动态因素,所以建议用户通过控制台按照文件类型,目录控制设置缓存时间控制;如果用户控制有缓存策略控制,Cache的默认缓存策略就不生效。  如果问题还未能解决,请联系售后技术支持。

2019-12-01 23:32:45 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档过期时间控制支持三个维度,优先级依次为控制台设置——源站header设置——cache的默认策略设置cdn缓存规则参考:https://help.aliyun.com/document_detail/cdn/getting-started/set/set-cachepolicy.html?spm=5176.doccdn/getting-started/httpsdelivery.6.106.yJalap 控制台过期时间设置详见【域名过期时间设置】,源站设置详见【webserver缓存策略设置】,cache的默认策略是针对用户既没有在控制台设置过期时间,也没有在源站设置过期时间,会走一个默认的全局策略,既保证加速效果,又避免因为动态的文件缓存导致的问题详见【Cache的默认缓存策略】。Webserver缓存策略设置一、IIS 缓存策略设置1、 因为整体的站点只对.html .jpg .png .gif .apk文件,而其他文件都不缓存;可以首先对整个站点设置成不缓存,设置如下:a)打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,然后选择“HTTP头“选卡,勾选“启用内容过期”,并选择“立即过期”,然后“确定”,具体如下:  b)经过上述设置后整个网站的内容都不会被CDN缓存,然后对.html .jpg .png .gif .apk文件类型设置缓存策略  2、针对特定文件的缓存设置如下:a)如果上面不同扩展名的文件都单独放在一个特定的目录下面,且该目录没有其他扩展名的文件,那么可以针对这个扩展名所在的整个目录设置缓存的时间;具体方法是在“IIS信息管理器”中,展开网站“a.cc.com”的目录,选中需要设置缓存时间的目录,比如所有jpg都存储在img这个目录下,那么右键点击该目录,选择“属性’,选中”HTTP头“选卡;因为刚才整个网站都设置了不缓存的设置,因此这时打开该目录的”HTTP头“的缓存设置和1中的一致,接下来就有修改这个配置:选择”此时间段后过期“,并且将时间设置为过期的时间值,比如14天,点击“确定”保存,具体如下:  b) 如果特定扩展名的文件不是统一放在唯一的目录下,是和其他扩展名文件混合放在一个目录下面的,这种情况配置要复杂一些;  为了避免针对特定扩展名的文件进行逐个的配置,我们需要让IIS支持“通配符”,支持“通配符”的配置如下:1) 打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,选择“主目录”选卡,点击选卡上的“配置”按钮,出现如下对话框:  2) 在“通配符应用程序映射(执行顺序)”一栏下面,点击“插入”按钮,在弹出的文件选择框时选择 C: \WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 文件,其中“C:”是系统盘,不要勾选“确认文件是否存在”,具体如下:  连续两个“确定”按键点击后,就完成了IIS通配符的支持配置 3)接下来就是到存在需要进行缓存配置文件的目录下面,首先选择一个需要缓存扩展名的文件,点击右键,选择属性,选择“HTTP头”选卡,进行2.a)中的配置,并保存;接下来就有对这个文件目录下面所有相同扩展名的文件进行该设置了,此时需要修改IIS的配置文件实现。 4)IIS的配置文件放置在C:\WINDOWS\system32\inetsrv\MetaBase.xml(IIS6的设置),用“记事本”程序打开上述文件,如果我们3)中是针对bin目录下面的test.jpg做了缓存过期时间的设置的,那么我们就查找字串“/bin/test.jpg“,就可以在该文件中找到bin目录下test.jpg文件的缓存设置,为了使bin目录下面所有的jpg文件都采用该缓存设置,只需要将“test.jpg”改为”*.jpg“就可以了,然后保持该文件。注意要修改上述文件,需要在“服务”中关闭“IIS admin Service”。 5)其他扩展名的文件缓存设置可以重复上面的3)和4)操作。 二、Nginx 缓存策略设置HTTP头处理模块(HTTP Headers),这个模块允许设置任意的HTTP头 1) add_header语法:add_header name value 默认值:none 使用字段:http, server, location 2) expires语法:expires [time|epoch|max|off] 默认值:expires off 使用字段:http, server, location  这个指令控制是否在应答中标记一个过期时间,如果是,如何标记。off 将禁止修改头部中的 Expires和Cache-Control字段。Time控制“Cache-Control”的值,负数表示no-cacheepoch 将Expires头设置为1 January, 1970 00:00:01 GMT。max 将Expires头设置为31 December 2037 23:59:59 GMT,将Cache-Control最大化到10 年。 例如设置php的文件类型过期时间设置为1个小时:        设置php的文件类型为no-cache,不让cache服务器缓存:    另外可以通过add_header设置相对应的缓存策略,对于动态的php文件设置为不缓存: location ~ .*\.php$ {    if ($request_uri !~ ^/dynamicimg/) {        add_header              Cache-Control "no-cache";        add_header              Pragma no-cache;    }  } 三、Apache缓存策略设置 Apache的过期策略可以通过apache的mod_expires和mod_headers两个模块设置: 1)模块mod_expires设置:允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容mod_expires 模块的主要作用是自动生成页面头部信息中的 Expires 标签和 Cache-Control 标签,从而降低客户端的访问频率和次数,达到减少不必要流量和增加访问速度的目的mod_expires 是 apache 众多模块中配置比较简单的一个,它一共只有三条指令ExpiresActive 指令:打开或关闭产生”Expires:”和”Cache-Control:”头的功能。ExpiresByType 指令:指定MIME类型的文档(例如:text/html)的过期时间。ExpiresDefault 指令:默认所有文档的过期时间。 过期时间的写法“access plus 1 month”“access plus 4 weeks”“now plus 30 days”“modification plus 5 hours 3 minutes”A2592000M604800access、now及A 三种写法的意义相同,指过期时间从访问时开始计算。modification及M 的意义相同,指过期时间是以被访问文件的最后修改时间开始计算。所以,后一种写法只对静态文件起作用,而由脚本生成的动态页面不受它的作用 配置实例:     ExpiresActive On(开启mod_expires功能)    ExpiresDefault "access plus 6 months"(默认的过期时间是6个月)    ExpiresByType image/* "access plus 10 years"(图片的文件类型缓存时间为10年)    ExpiresByType text/* "access plus 10 years"(文本类型缓存时间为10年)    ExpiresByType application/* "access plus 30 minutes"(application文件类型缓存30分钟) 验证:image/jpeg 缓存时间为315360000s(10年)  如果将image/jpeg设置为不缓存(将max-age设置为0s): #   ExpiresByType image/* "access plus 10 years"ExpiresByType image/*  A0   2)模块mod_headers设置:   # YEAR(flv,gif,ico文件类型的缓存时间为1年)Header set Cache-Control “max-age=2592000″# WEEK(pdf.swf,js,css缓存时间为一周)Header set Cache-Control “max-age=604800″# NEVER CACHE(jsp.swf,ico文件类型不缓存)Header set Expires “Thu, 01 Dec 2003 16:00:00 GMT”Header set Cache-Control “no-store, no-cache, must-revalidate”Header set Pragma “no-cache”  Cache的默认缓存策略缓存时间计算t =(savetime - last_modified)*0.1 t = min(10, t) t = max(t, 3600)缓存时间为t,单位秒 1、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:01:00, (curtime-Last_modified)*0.1=6s,那么缓存时间为10s,因为最小值为10s2、当对象last-modified为20140801 00:00:00,当前时间为20140802 00:00:00,(curtime-Last_modified)*0.1=8640s,那么缓存时间为3600s3、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:10:00,(curtime-Last_modified)*0.1=60s,那么缓存时间为60s4、如果源站没有 Last-Modified 响应头,但有 ETag,则该对象极有可能是静态资源,将其默认缓存时间设置为 dft_expires 指令配置的最小值5、如果源站没有 Last-Modified,也没有 ETag,则认为该对象为动态内容,将其默认缓存时间设置为 0,每次都回源  注意事项因为网站开发及其相关技术人员更清楚自身网站的业务逻辑,静态和动态因素,所以建议用户通过控制台按照文件类型,目录控制设置缓存时间控制;如果用户控制有缓存策略控制,Cache的默认缓存策略就不生效。  如果问题还未能解决,请联系售后技术支持。

2019-12-01 23:32:44 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档过期时间控制支持三个维度,优先级依次为控制台设置——源站header设置——cache的默认策略设置cdn缓存规则参考:https://help.aliyun.com/document_detail/cdn/getting-started/set/set-cachepolicy.html?spm=5176.doccdn/getting-started/httpsdelivery.6.106.yJalap 控制台过期时间设置详见【域名过期时间设置】,源站设置详见【webserver缓存策略设置】,cache的默认策略是针对用户既没有在控制台设置过期时间,也没有在源站设置过期时间,会走一个默认的全局策略,既保证加速效果,又避免因为动态的文件缓存导致的问题详见【Cache的默认缓存策略】。Webserver缓存策略设置一、IIS 缓存策略设置1、 因为整体的站点只对.html .jpg .png .gif .apk文件,而其他文件都不缓存;可以首先对整个站点设置成不缓存,设置如下:a)打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,然后选择“HTTP头“选卡,勾选“启用内容过期”,并选择“立即过期”,然后“确定”,具体如下:  b)经过上述设置后整个网站的内容都不会被CDN缓存,然后对.html .jpg .png .gif .apk文件类型设置缓存策略  2、针对特定文件的缓存设置如下:a)如果上面不同扩展名的文件都单独放在一个特定的目录下面,且该目录没有其他扩展名的文件,那么可以针对这个扩展名所在的整个目录设置缓存的时间;具体方法是在“IIS信息管理器”中,展开网站“a.cc.com”的目录,选中需要设置缓存时间的目录,比如所有jpg都存储在img这个目录下,那么右键点击该目录,选择“属性’,选中”HTTP头“选卡;因为刚才整个网站都设置了不缓存的设置,因此这时打开该目录的”HTTP头“的缓存设置和1中的一致,接下来就有修改这个配置:选择”此时间段后过期“,并且将时间设置为过期的时间值,比如14天,点击“确定”保存,具体如下:  b) 如果特定扩展名的文件不是统一放在唯一的目录下,是和其他扩展名文件混合放在一个目录下面的,这种情况配置要复杂一些;  为了避免针对特定扩展名的文件进行逐个的配置,我们需要让IIS支持“通配符”,支持“通配符”的配置如下:1) 打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,选择“主目录”选卡,点击选卡上的“配置”按钮,出现如下对话框:  2) 在“通配符应用程序映射(执行顺序)”一栏下面,点击“插入”按钮,在弹出的文件选择框时选择 C: \WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 文件,其中“C:”是系统盘,不要勾选“确认文件是否存在”,具体如下:  连续两个“确定”按键点击后,就完成了IIS通配符的支持配置 3)接下来就是到存在需要进行缓存配置文件的目录下面,首先选择一个需要缓存扩展名的文件,点击右键,选择属性,选择“HTTP头”选卡,进行2.a)中的配置,并保存;接下来就有对这个文件目录下面所有相同扩展名的文件进行该设置了,此时需要修改IIS的配置文件实现。 4)IIS的配置文件放置在C:\WINDOWS\system32\inetsrv\MetaBase.xml(IIS6的设置),用“记事本”程序打开上述文件,如果我们3)中是针对bin目录下面的test.jpg做了缓存过期时间的设置的,那么我们就查找字串“/bin/test.jpg“,就可以在该文件中找到bin目录下test.jpg文件的缓存设置,为了使bin目录下面所有的jpg文件都采用该缓存设置,只需要将“test.jpg”改为”*.jpg“就可以了,然后保持该文件。注意要修改上述文件,需要在“服务”中关闭“IIS admin Service”。 5)其他扩展名的文件缓存设置可以重复上面的3)和4)操作。 二、Nginx 缓存策略设置HTTP头处理模块(HTTP Headers),这个模块允许设置任意的HTTP头 1) add_header语法:add_header name value 默认值:none 使用字段:http, server, location 2) expires语法:expires [time|epoch|max|off] 默认值:expires off 使用字段:http, server, location  这个指令控制是否在应答中标记一个过期时间,如果是,如何标记。off 将禁止修改头部中的 Expires和Cache-Control字段。Time控制“Cache-Control”的值,负数表示no-cacheepoch 将Expires头设置为1 January, 1970 00:00:01 GMT。max 将Expires头设置为31 December 2037 23:59:59 GMT,将Cache-Control最大化到10 年。 例如设置php的文件类型过期时间设置为1个小时:        设置php的文件类型为no-cache,不让cache服务器缓存:    另外可以通过add_header设置相对应的缓存策略,对于动态的php文件设置为不缓存: location ~ .*\.php$ {    if ($request_uri !~ ^/dynamicimg/) {        add_header              Cache-Control "no-cache";        add_header              Pragma no-cache;    }  } 三、Apache缓存策略设置 Apache的过期策略可以通过apache的mod_expires和mod_headers两个模块设置: 1)模块mod_expires设置:允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容mod_expires 模块的主要作用是自动生成页面头部信息中的 Expires 标签和 Cache-Control 标签,从而降低客户端的访问频率和次数,达到减少不必要流量和增加访问速度的目的mod_expires 是 apache 众多模块中配置比较简单的一个,它一共只有三条指令ExpiresActive 指令:打开或关闭产生”Expires:”和”Cache-Control:”头的功能。ExpiresByType 指令:指定MIME类型的文档(例如:text/html)的过期时间。ExpiresDefault 指令:默认所有文档的过期时间。 过期时间的写法“access plus 1 month”“access plus 4 weeks”“now plus 30 days”“modification plus 5 hours 3 minutes”A2592000M604800access、now及A 三种写法的意义相同,指过期时间从访问时开始计算。modification及M 的意义相同,指过期时间是以被访问文件的最后修改时间开始计算。所以,后一种写法只对静态文件起作用,而由脚本生成的动态页面不受它的作用 配置实例:     ExpiresActive On(开启mod_expires功能)    ExpiresDefault "access plus 6 months"(默认的过期时间是6个月)    ExpiresByType image/* "access plus 10 years"(图片的文件类型缓存时间为10年)    ExpiresByType text/* "access plus 10 years"(文本类型缓存时间为10年)    ExpiresByType application/* "access plus 30 minutes"(application文件类型缓存30分钟) 验证:image/jpeg 缓存时间为315360000s(10年)  如果将image/jpeg设置为不缓存(将max-age设置为0s): #   ExpiresByType image/* "access plus 10 years"ExpiresByType image/*  A0   2)模块mod_headers设置:   # YEAR(flv,gif,ico文件类型的缓存时间为1年)Header set Cache-Control “max-age=2592000″# WEEK(pdf.swf,js,css缓存时间为一周)Header set Cache-Control “max-age=604800″# NEVER CACHE(jsp.swf,ico文件类型不缓存)Header set Expires “Thu, 01 Dec 2003 16:00:00 GMT”Header set Cache-Control “no-store, no-cache, must-revalidate”Header set Pragma “no-cache”  Cache的默认缓存策略缓存时间计算t =(savetime - last_modified)*0.1 t = min(10, t) t = max(t, 3600)缓存时间为t,单位秒 1、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:01:00, (curtime-Last_modified)*0.1=6s,那么缓存时间为10s,因为最小值为10s2、当对象last-modified为20140801 00:00:00,当前时间为20140802 00:00:00,(curtime-Last_modified)*0.1=8640s,那么缓存时间为3600s3、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:10:00,(curtime-Last_modified)*0.1=60s,那么缓存时间为60s4、如果源站没有 Last-Modified 响应头,但有 ETag,则该对象极有可能是静态资源,将其默认缓存时间设置为 dft_expires 指令配置的最小值5、如果源站没有 Last-Modified,也没有 ETag,则认为该对象为动态内容,将其默认缓存时间设置为 0,每次都回源  注意事项因为网站开发及其相关技术人员更清楚自身网站的业务逻辑,静态和动态因素,所以建议用户通过控制台按照文件类型,目录控制设置缓存时间控制;如果用户控制有缓存策略控制,Cache的默认缓存策略就不生效。  如果问题还未能解决,请联系售后技术支持。

2019-12-01 23:32:45 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档过期时间控制支持三个维度,优先级依次为控制台设置——源站header设置——cache的默认策略设置cdn缓存规则参考:https://help.aliyun.com/document_detail/cdn/getting-started/set/set-cachepolicy.html?spm=5176.doccdn/getting-started/httpsdelivery.6.106.yJalap 控制台过期时间设置详见【域名过期时间设置】,源站设置详见【webserver缓存策略设置】,cache的默认策略是针对用户既没有在控制台设置过期时间,也没有在源站设置过期时间,会走一个默认的全局策略,既保证加速效果,又避免因为动态的文件缓存导致的问题详见【Cache的默认缓存策略】。Webserver缓存策略设置一、IIS 缓存策略设置1、 因为整体的站点只对.html .jpg .png .gif .apk文件,而其他文件都不缓存;可以首先对整个站点设置成不缓存,设置如下:a)打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,然后选择“HTTP头“选卡,勾选“启用内容过期”,并选择“立即过期”,然后“确定”,具体如下:  b)经过上述设置后整个网站的内容都不会被CDN缓存,然后对.html .jpg .png .gif .apk文件类型设置缓存策略  2、针对特定文件的缓存设置如下:a)如果上面不同扩展名的文件都单独放在一个特定的目录下面,且该目录没有其他扩展名的文件,那么可以针对这个扩展名所在的整个目录设置缓存的时间;具体方法是在“IIS信息管理器”中,展开网站“a.cc.com”的目录,选中需要设置缓存时间的目录,比如所有jpg都存储在img这个目录下,那么右键点击该目录,选择“属性’,选中”HTTP头“选卡;因为刚才整个网站都设置了不缓存的设置,因此这时打开该目录的”HTTP头“的缓存设置和1中的一致,接下来就有修改这个配置:选择”此时间段后过期“,并且将时间设置为过期的时间值,比如14天,点击“确定”保存,具体如下:  b) 如果特定扩展名的文件不是统一放在唯一的目录下,是和其他扩展名文件混合放在一个目录下面的,这种情况配置要复杂一些;  为了避免针对特定扩展名的文件进行逐个的配置,我们需要让IIS支持“通配符”,支持“通配符”的配置如下:1) 打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,选择“主目录”选卡,点击选卡上的“配置”按钮,出现如下对话框:  2) 在“通配符应用程序映射(执行顺序)”一栏下面,点击“插入”按钮,在弹出的文件选择框时选择 C: \WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 文件,其中“C:”是系统盘,不要勾选“确认文件是否存在”,具体如下:  连续两个“确定”按键点击后,就完成了IIS通配符的支持配置 3)接下来就是到存在需要进行缓存配置文件的目录下面,首先选择一个需要缓存扩展名的文件,点击右键,选择属性,选择“HTTP头”选卡,进行2.a)中的配置,并保存;接下来就有对这个文件目录下面所有相同扩展名的文件进行该设置了,此时需要修改IIS的配置文件实现。 4)IIS的配置文件放置在C:\WINDOWS\system32\inetsrv\MetaBase.xml(IIS6的设置),用“记事本”程序打开上述文件,如果我们3)中是针对bin目录下面的test.jpg做了缓存过期时间的设置的,那么我们就查找字串“/bin/test.jpg“,就可以在该文件中找到bin目录下test.jpg文件的缓存设置,为了使bin目录下面所有的jpg文件都采用该缓存设置,只需要将“test.jpg”改为”*.jpg“就可以了,然后保持该文件。注意要修改上述文件,需要在“服务”中关闭“IIS admin Service”。 5)其他扩展名的文件缓存设置可以重复上面的3)和4)操作。 二、Nginx 缓存策略设置HTTP头处理模块(HTTP Headers),这个模块允许设置任意的HTTP头 1) add_header语法:add_header name value 默认值:none 使用字段:http, server, location 2) expires语法:expires [time|epoch|max|off] 默认值:expires off 使用字段:http, server, location  这个指令控制是否在应答中标记一个过期时间,如果是,如何标记。off 将禁止修改头部中的 Expires和Cache-Control字段。Time控制“Cache-Control”的值,负数表示no-cacheepoch 将Expires头设置为1 January, 1970 00:00:01 GMT。max 将Expires头设置为31 December 2037 23:59:59 GMT,将Cache-Control最大化到10 年。 例如设置php的文件类型过期时间设置为1个小时:        设置php的文件类型为no-cache,不让cache服务器缓存:    另外可以通过add_header设置相对应的缓存策略,对于动态的php文件设置为不缓存: location ~ .*\.php$ {    if ($request_uri !~ ^/dynamicimg/) {        add_header              Cache-Control "no-cache";        add_header              Pragma no-cache;    }  } 三、Apache缓存策略设置 Apache的过期策略可以通过apache的mod_expires和mod_headers两个模块设置: 1)模块mod_expires设置:允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容mod_expires 模块的主要作用是自动生成页面头部信息中的 Expires 标签和 Cache-Control 标签,从而降低客户端的访问频率和次数,达到减少不必要流量和增加访问速度的目的mod_expires 是 apache 众多模块中配置比较简单的一个,它一共只有三条指令ExpiresActive 指令:打开或关闭产生”Expires:”和”Cache-Control:”头的功能。ExpiresByType 指令:指定MIME类型的文档(例如:text/html)的过期时间。ExpiresDefault 指令:默认所有文档的过期时间。 过期时间的写法“access plus 1 month”“access plus 4 weeks”“now plus 30 days”“modification plus 5 hours 3 minutes”A2592000M604800access、now及A 三种写法的意义相同,指过期时间从访问时开始计算。modification及M 的意义相同,指过期时间是以被访问文件的最后修改时间开始计算。所以,后一种写法只对静态文件起作用,而由脚本生成的动态页面不受它的作用 配置实例:     ExpiresActive On(开启mod_expires功能)    ExpiresDefault "access plus 6 months"(默认的过期时间是6个月)    ExpiresByType image/* "access plus 10 years"(图片的文件类型缓存时间为10年)    ExpiresByType text/* "access plus 10 years"(文本类型缓存时间为10年)    ExpiresByType application/* "access plus 30 minutes"(application文件类型缓存30分钟) 验证:image/jpeg 缓存时间为315360000s(10年)  如果将image/jpeg设置为不缓存(将max-age设置为0s): #   ExpiresByType image/* "access plus 10 years"ExpiresByType image/*  A0   2)模块mod_headers设置:   # YEAR(flv,gif,ico文件类型的缓存时间为1年)Header set Cache-Control “max-age=2592000″# WEEK(pdf.swf,js,css缓存时间为一周)Header set Cache-Control “max-age=604800″# NEVER CACHE(jsp.swf,ico文件类型不缓存)Header set Expires “Thu, 01 Dec 2003 16:00:00 GMT”Header set Cache-Control “no-store, no-cache, must-revalidate”Header set Pragma “no-cache”  Cache的默认缓存策略缓存时间计算t =(savetime - last_modified)*0.1 t = min(10, t) t = max(t, 3600)缓存时间为t,单位秒 1、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:01:00, (curtime-Last_modified)*0.1=6s,那么缓存时间为10s,因为最小值为10s2、当对象last-modified为20140801 00:00:00,当前时间为20140802 00:00:00,(curtime-Last_modified)*0.1=8640s,那么缓存时间为3600s3、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:10:00,(curtime-Last_modified)*0.1=60s,那么缓存时间为60s4、如果源站没有 Last-Modified 响应头,但有 ETag,则该对象极有可能是静态资源,将其默认缓存时间设置为 dft_expires 指令配置的最小值5、如果源站没有 Last-Modified,也没有 ETag,则认为该对象为动态内容,将其默认缓存时间设置为 0,每次都回源  注意事项因为网站开发及其相关技术人员更清楚自身网站的业务逻辑,静态和动态因素,所以建议用户通过控制台按照文件类型,目录控制设置缓存时间控制;如果用户控制有缓存策略控制,Cache的默认缓存策略就不生效。  如果问题还未能解决,请联系售后技术支持。

2019-12-01 23:32:44 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档过期时间控制支持三个维度,优先级依次为控制台设置——源站header设置——cache的默认策略设置cdn缓存规则参考:https://help.aliyun.com/document_detail/cdn/getting-started/set/set-cachepolicy.html?spm=5176.doccdn/getting-started/httpsdelivery.6.106.yJalap 控制台过期时间设置详见【域名过期时间设置】,源站设置详见【webserver缓存策略设置】,cache的默认策略是针对用户既没有在控制台设置过期时间,也没有在源站设置过期时间,会走一个默认的全局策略,既保证加速效果,又避免因为动态的文件缓存导致的问题详见【Cache的默认缓存策略】。Webserver缓存策略设置一、IIS 缓存策略设置1、 因为整体的站点只对.html .jpg .png .gif .apk文件,而其他文件都不缓存;可以首先对整个站点设置成不缓存,设置如下:a)打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,然后选择“HTTP头“选卡,勾选“启用内容过期”,并选择“立即过期”,然后“确定”,具体如下:  b)经过上述设置后整个网站的内容都不会被CDN缓存,然后对.html .jpg .png .gif .apk文件类型设置缓存策略  2、针对特定文件的缓存设置如下:a)如果上面不同扩展名的文件都单独放在一个特定的目录下面,且该目录没有其他扩展名的文件,那么可以针对这个扩展名所在的整个目录设置缓存的时间;具体方法是在“IIS信息管理器”中,展开网站“a.cc.com”的目录,选中需要设置缓存时间的目录,比如所有jpg都存储在img这个目录下,那么右键点击该目录,选择“属性’,选中”HTTP头“选卡;因为刚才整个网站都设置了不缓存的设置,因此这时打开该目录的”HTTP头“的缓存设置和1中的一致,接下来就有修改这个配置:选择”此时间段后过期“,并且将时间设置为过期的时间值,比如14天,点击“确定”保存,具体如下:  b) 如果特定扩展名的文件不是统一放在唯一的目录下,是和其他扩展名文件混合放在一个目录下面的,这种情况配置要复杂一些;  为了避免针对特定扩展名的文件进行逐个的配置,我们需要让IIS支持“通配符”,支持“通配符”的配置如下:1) 打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,选择“主目录”选卡,点击选卡上的“配置”按钮,出现如下对话框:  2) 在“通配符应用程序映射(执行顺序)”一栏下面,点击“插入”按钮,在弹出的文件选择框时选择 C: \WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 文件,其中“C:”是系统盘,不要勾选“确认文件是否存在”,具体如下:  连续两个“确定”按键点击后,就完成了IIS通配符的支持配置 3)接下来就是到存在需要进行缓存配置文件的目录下面,首先选择一个需要缓存扩展名的文件,点击右键,选择属性,选择“HTTP头”选卡,进行2.a)中的配置,并保存;接下来就有对这个文件目录下面所有相同扩展名的文件进行该设置了,此时需要修改IIS的配置文件实现。 4)IIS的配置文件放置在C:\WINDOWS\system32\inetsrv\MetaBase.xml(IIS6的设置),用“记事本”程序打开上述文件,如果我们3)中是针对bin目录下面的test.jpg做了缓存过期时间的设置的,那么我们就查找字串“/bin/test.jpg“,就可以在该文件中找到bin目录下test.jpg文件的缓存设置,为了使bin目录下面所有的jpg文件都采用该缓存设置,只需要将“test.jpg”改为”*.jpg“就可以了,然后保持该文件。注意要修改上述文件,需要在“服务”中关闭“IIS admin Service”。 5)其他扩展名的文件缓存设置可以重复上面的3)和4)操作。 二、Nginx 缓存策略设置HTTP头处理模块(HTTP Headers),这个模块允许设置任意的HTTP头 1) add_header语法:add_header name value 默认值:none 使用字段:http, server, location 2) expires语法:expires [time|epoch|max|off] 默认值:expires off 使用字段:http, server, location  这个指令控制是否在应答中标记一个过期时间,如果是,如何标记。off 将禁止修改头部中的 Expires和Cache-Control字段。Time控制“Cache-Control”的值,负数表示no-cacheepoch 将Expires头设置为1 January, 1970 00:00:01 GMT。max 将Expires头设置为31 December 2037 23:59:59 GMT,将Cache-Control最大化到10 年。 例如设置php的文件类型过期时间设置为1个小时:        设置php的文件类型为no-cache,不让cache服务器缓存:    另外可以通过add_header设置相对应的缓存策略,对于动态的php文件设置为不缓存: location ~ .*\.php$ {    if ($request_uri !~ ^/dynamicimg/) {        add_header              Cache-Control "no-cache";        add_header              Pragma no-cache;    }  } 三、Apache缓存策略设置 Apache的过期策略可以通过apache的mod_expires和mod_headers两个模块设置: 1)模块mod_expires设置:允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容mod_expires 模块的主要作用是自动生成页面头部信息中的 Expires 标签和 Cache-Control 标签,从而降低客户端的访问频率和次数,达到减少不必要流量和增加访问速度的目的mod_expires 是 apache 众多模块中配置比较简单的一个,它一共只有三条指令ExpiresActive 指令:打开或关闭产生”Expires:”和”Cache-Control:”头的功能。ExpiresByType 指令:指定MIME类型的文档(例如:text/html)的过期时间。ExpiresDefault 指令:默认所有文档的过期时间。 过期时间的写法“access plus 1 month”“access plus 4 weeks”“now plus 30 days”“modification plus 5 hours 3 minutes”A2592000M604800access、now及A 三种写法的意义相同,指过期时间从访问时开始计算。modification及M 的意义相同,指过期时间是以被访问文件的最后修改时间开始计算。所以,后一种写法只对静态文件起作用,而由脚本生成的动态页面不受它的作用 配置实例:     ExpiresActive On(开启mod_expires功能)    ExpiresDefault "access plus 6 months"(默认的过期时间是6个月)    ExpiresByType image/* "access plus 10 years"(图片的文件类型缓存时间为10年)    ExpiresByType text/* "access plus 10 years"(文本类型缓存时间为10年)    ExpiresByType application/* "access plus 30 minutes"(application文件类型缓存30分钟) 验证:image/jpeg 缓存时间为315360000s(10年)  如果将image/jpeg设置为不缓存(将max-age设置为0s): #   ExpiresByType image/* "access plus 10 years"ExpiresByType image/*  A0   2)模块mod_headers设置:   # YEAR(flv,gif,ico文件类型的缓存时间为1年)Header set Cache-Control “max-age=2592000″# WEEK(pdf.swf,js,css缓存时间为一周)Header set Cache-Control “max-age=604800″# NEVER CACHE(jsp.swf,ico文件类型不缓存)Header set Expires “Thu, 01 Dec 2003 16:00:00 GMT”Header set Cache-Control “no-store, no-cache, must-revalidate”Header set Pragma “no-cache”  Cache的默认缓存策略缓存时间计算t =(savetime - last_modified)*0.1 t = min(10, t) t = max(t, 3600)缓存时间为t,单位秒 1、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:01:00, (curtime-Last_modified)*0.1=6s,那么缓存时间为10s,因为最小值为10s2、当对象last-modified为20140801 00:00:00,当前时间为20140802 00:00:00,(curtime-Last_modified)*0.1=8640s,那么缓存时间为3600s3、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:10:00,(curtime-Last_modified)*0.1=60s,那么缓存时间为60s4、如果源站没有 Last-Modified 响应头,但有 ETag,则该对象极有可能是静态资源,将其默认缓存时间设置为 dft_expires 指令配置的最小值5、如果源站没有 Last-Modified,也没有 ETag,则认为该对象为动态内容,将其默认缓存时间设置为 0,每次都回源  注意事项因为网站开发及其相关技术人员更清楚自身网站的业务逻辑,静态和动态因素,所以建议用户通过控制台按照文件类型,目录控制设置缓存时间控制;如果用户控制有缓存策略控制,Cache的默认缓存策略就不生效。  如果问题还未能解决,请联系售后技术支持。

2019-12-01 23:32:43 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档过期时间控制支持三个维度,优先级依次为控制台设置——源站header设置——cache的默认策略设置cdn缓存规则参考:https://help.aliyun.com/document_detail/cdn/getting-started/set/set-cachepolicy.html?spm=5176.doccdn/getting-started/httpsdelivery.6.106.yJalap 控制台过期时间设置详见【域名过期时间设置】,源站设置详见【webserver缓存策略设置】,cache的默认策略是针对用户既没有在控制台设置过期时间,也没有在源站设置过期时间,会走一个默认的全局策略,既保证加速效果,又避免因为动态的文件缓存导致的问题详见【Cache的默认缓存策略】。Webserver缓存策略设置一、IIS 缓存策略设置1、 因为整体的站点只对.html .jpg .png .gif .apk文件,而其他文件都不缓存;可以首先对整个站点设置成不缓存,设置如下:a)打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,然后选择“HTTP头“选卡,勾选“启用内容过期”,并选择“立即过期”,然后“确定”,具体如下:  b)经过上述设置后整个网站的内容都不会被CDN缓存,然后对.html .jpg .png .gif .apk文件类型设置缓存策略  2、针对特定文件的缓存设置如下:a)如果上面不同扩展名的文件都单独放在一个特定的目录下面,且该目录没有其他扩展名的文件,那么可以针对这个扩展名所在的整个目录设置缓存的时间;具体方法是在“IIS信息管理器”中,展开网站“a.cc.com”的目录,选中需要设置缓存时间的目录,比如所有jpg都存储在img这个目录下,那么右键点击该目录,选择“属性’,选中”HTTP头“选卡;因为刚才整个网站都设置了不缓存的设置,因此这时打开该目录的”HTTP头“的缓存设置和1中的一致,接下来就有修改这个配置:选择”此时间段后过期“,并且将时间设置为过期的时间值,比如14天,点击“确定”保存,具体如下:  b) 如果特定扩展名的文件不是统一放在唯一的目录下,是和其他扩展名文件混合放在一个目录下面的,这种情况配置要复杂一些;  为了避免针对特定扩展名的文件进行逐个的配置,我们需要让IIS支持“通配符”,支持“通配符”的配置如下:1) 打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,选择“主目录”选卡,点击选卡上的“配置”按钮,出现如下对话框:  2) 在“通配符应用程序映射(执行顺序)”一栏下面,点击“插入”按钮,在弹出的文件选择框时选择 C: \WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 文件,其中“C:”是系统盘,不要勾选“确认文件是否存在”,具体如下:  连续两个“确定”按键点击后,就完成了IIS通配符的支持配置 3)接下来就是到存在需要进行缓存配置文件的目录下面,首先选择一个需要缓存扩展名的文件,点击右键,选择属性,选择“HTTP头”选卡,进行2.a)中的配置,并保存;接下来就有对这个文件目录下面所有相同扩展名的文件进行该设置了,此时需要修改IIS的配置文件实现。 4)IIS的配置文件放置在C:\WINDOWS\system32\inetsrv\MetaBase.xml(IIS6的设置),用“记事本”程序打开上述文件,如果我们3)中是针对bin目录下面的test.jpg做了缓存过期时间的设置的,那么我们就查找字串“/bin/test.jpg“,就可以在该文件中找到bin目录下test.jpg文件的缓存设置,为了使bin目录下面所有的jpg文件都采用该缓存设置,只需要将“test.jpg”改为”*.jpg“就可以了,然后保持该文件。注意要修改上述文件,需要在“服务”中关闭“IIS admin Service”。 5)其他扩展名的文件缓存设置可以重复上面的3)和4)操作。 二、Nginx 缓存策略设置HTTP头处理模块(HTTP Headers),这个模块允许设置任意的HTTP头 1) add_header语法:add_header name value 默认值:none 使用字段:http, server, location 2) expires语法:expires [time|epoch|max|off] 默认值:expires off 使用字段:http, server, location  这个指令控制是否在应答中标记一个过期时间,如果是,如何标记。off 将禁止修改头部中的 Expires和Cache-Control字段。Time控制“Cache-Control”的值,负数表示no-cacheepoch 将Expires头设置为1 January, 1970 00:00:01 GMT。max 将Expires头设置为31 December 2037 23:59:59 GMT,将Cache-Control最大化到10 年。 例如设置php的文件类型过期时间设置为1个小时:        设置php的文件类型为no-cache,不让cache服务器缓存:    另外可以通过add_header设置相对应的缓存策略,对于动态的php文件设置为不缓存: location ~ .*\.php$ {    if ($request_uri !~ ^/dynamicimg/) {        add_header              Cache-Control "no-cache";        add_header              Pragma no-cache;    }  } 三、Apache缓存策略设置 Apache的过期策略可以通过apache的mod_expires和mod_headers两个模块设置: 1)模块mod_expires设置:允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容mod_expires 模块的主要作用是自动生成页面头部信息中的 Expires 标签和 Cache-Control 标签,从而降低客户端的访问频率和次数,达到减少不必要流量和增加访问速度的目的mod_expires 是 apache 众多模块中配置比较简单的一个,它一共只有三条指令ExpiresActive 指令:打开或关闭产生”Expires:”和”Cache-Control:”头的功能。ExpiresByType 指令:指定MIME类型的文档(例如:text/html)的过期时间。ExpiresDefault 指令:默认所有文档的过期时间。 过期时间的写法“access plus 1 month”“access plus 4 weeks”“now plus 30 days”“modification plus 5 hours 3 minutes”A2592000M604800access、now及A 三种写法的意义相同,指过期时间从访问时开始计算。modification及M 的意义相同,指过期时间是以被访问文件的最后修改时间开始计算。所以,后一种写法只对静态文件起作用,而由脚本生成的动态页面不受它的作用 配置实例:     ExpiresActive On(开启mod_expires功能)    ExpiresDefault "access plus 6 months"(默认的过期时间是6个月)    ExpiresByType image/* "access plus 10 years"(图片的文件类型缓存时间为10年)    ExpiresByType text/* "access plus 10 years"(文本类型缓存时间为10年)    ExpiresByType application/* "access plus 30 minutes"(application文件类型缓存30分钟) 验证:image/jpeg 缓存时间为315360000s(10年)  如果将image/jpeg设置为不缓存(将max-age设置为0s): #   ExpiresByType image/* "access plus 10 years"ExpiresByType image/*  A0   2)模块mod_headers设置:   # YEAR(flv,gif,ico文件类型的缓存时间为1年)Header set Cache-Control “max-age=2592000″# WEEK(pdf.swf,js,css缓存时间为一周)Header set Cache-Control “max-age=604800″# NEVER CACHE(jsp.swf,ico文件类型不缓存)Header set Expires “Thu, 01 Dec 2003 16:00:00 GMT”Header set Cache-Control “no-store, no-cache, must-revalidate”Header set Pragma “no-cache”  Cache的默认缓存策略缓存时间计算t =(savetime - last_modified)*0.1 t = min(10, t) t = max(t, 3600)缓存时间为t,单位秒 1、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:01:00, (curtime-Last_modified)*0.1=6s,那么缓存时间为10s,因为最小值为10s2、当对象last-modified为20140801 00:00:00,当前时间为20140802 00:00:00,(curtime-Last_modified)*0.1=8640s,那么缓存时间为3600s3、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:10:00,(curtime-Last_modified)*0.1=60s,那么缓存时间为60s4、如果源站没有 Last-Modified 响应头,但有 ETag,则该对象极有可能是静态资源,将其默认缓存时间设置为 dft_expires 指令配置的最小值5、如果源站没有 Last-Modified,也没有 ETag,则认为该对象为动态内容,将其默认缓存时间设置为 0,每次都回源  注意事项因为网站开发及其相关技术人员更清楚自身网站的业务逻辑,静态和动态因素,所以建议用户通过控制台按照文件类型,目录控制设置缓存时间控制;如果用户控制有缓存策略控制,Cache的默认缓存策略就不生效。  如果问题还未能解决,请联系售后技术支持。

2019-12-01 23:32:44 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档过期时间控制支持三个维度,优先级依次为控制台设置——源站header设置——cache的默认策略设置cdn缓存规则参考:https://help.aliyun.com/document_detail/cdn/getting-started/set/set-cachepolicy.html?spm=5176.doccdn/getting-started/httpsdelivery.6.106.yJalap 控制台过期时间设置详见【域名过期时间设置】,源站设置详见【webserver缓存策略设置】,cache的默认策略是针对用户既没有在控制台设置过期时间,也没有在源站设置过期时间,会走一个默认的全局策略,既保证加速效果,又避免因为动态的文件缓存导致的问题详见【Cache的默认缓存策略】。Webserver缓存策略设置一、IIS 缓存策略设置1、 因为整体的站点只对.html .jpg .png .gif .apk文件,而其他文件都不缓存;可以首先对整个站点设置成不缓存,设置如下:a)打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,然后选择“HTTP头“选卡,勾选“启用内容过期”,并选择“立即过期”,然后“确定”,具体如下:  b)经过上述设置后整个网站的内容都不会被CDN缓存,然后对.html .jpg .png .gif .apk文件类型设置缓存策略  2、针对特定文件的缓存设置如下:a)如果上面不同扩展名的文件都单独放在一个特定的目录下面,且该目录没有其他扩展名的文件,那么可以针对这个扩展名所在的整个目录设置缓存的时间;具体方法是在“IIS信息管理器”中,展开网站“a.cc.com”的目录,选中需要设置缓存时间的目录,比如所有jpg都存储在img这个目录下,那么右键点击该目录,选择“属性’,选中”HTTP头“选卡;因为刚才整个网站都设置了不缓存的设置,因此这时打开该目录的”HTTP头“的缓存设置和1中的一致,接下来就有修改这个配置:选择”此时间段后过期“,并且将时间设置为过期的时间值,比如14天,点击“确定”保存,具体如下:  b) 如果特定扩展名的文件不是统一放在唯一的目录下,是和其他扩展名文件混合放在一个目录下面的,这种情况配置要复杂一些;  为了避免针对特定扩展名的文件进行逐个的配置,我们需要让IIS支持“通配符”,支持“通配符”的配置如下:1) 打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,选择“主目录”选卡,点击选卡上的“配置”按钮,出现如下对话框:  2) 在“通配符应用程序映射(执行顺序)”一栏下面,点击“插入”按钮,在弹出的文件选择框时选择 C: \WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 文件,其中“C:”是系统盘,不要勾选“确认文件是否存在”,具体如下:  连续两个“确定”按键点击后,就完成了IIS通配符的支持配置 3)接下来就是到存在需要进行缓存配置文件的目录下面,首先选择一个需要缓存扩展名的文件,点击右键,选择属性,选择“HTTP头”选卡,进行2.a)中的配置,并保存;接下来就有对这个文件目录下面所有相同扩展名的文件进行该设置了,此时需要修改IIS的配置文件实现。 4)IIS的配置文件放置在C:\WINDOWS\system32\inetsrv\MetaBase.xml(IIS6的设置),用“记事本”程序打开上述文件,如果我们3)中是针对bin目录下面的test.jpg做了缓存过期时间的设置的,那么我们就查找字串“/bin/test.jpg“,就可以在该文件中找到bin目录下test.jpg文件的缓存设置,为了使bin目录下面所有的jpg文件都采用该缓存设置,只需要将“test.jpg”改为”*.jpg“就可以了,然后保持该文件。注意要修改上述文件,需要在“服务”中关闭“IIS admin Service”。 5)其他扩展名的文件缓存设置可以重复上面的3)和4)操作。 二、Nginx 缓存策略设置HTTP头处理模块(HTTP Headers),这个模块允许设置任意的HTTP头 1) add_header语法:add_header name value 默认值:none 使用字段:http, server, location 2) expires语法:expires [time|epoch|max|off] 默认值:expires off 使用字段:http, server, location  这个指令控制是否在应答中标记一个过期时间,如果是,如何标记。off 将禁止修改头部中的 Expires和Cache-Control字段。Time控制“Cache-Control”的值,负数表示no-cacheepoch 将Expires头设置为1 January, 1970 00:00:01 GMT。max 将Expires头设置为31 December 2037 23:59:59 GMT,将Cache-Control最大化到10 年。 例如设置php的文件类型过期时间设置为1个小时:        设置php的文件类型为no-cache,不让cache服务器缓存:    另外可以通过add_header设置相对应的缓存策略,对于动态的php文件设置为不缓存: location ~ .*\.php$ {    if ($request_uri !~ ^/dynamicimg/) {        add_header              Cache-Control "no-cache";        add_header              Pragma no-cache;    }  } 三、Apache缓存策略设置 Apache的过期策略可以通过apache的mod_expires和mod_headers两个模块设置: 1)模块mod_expires设置:允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容mod_expires 模块的主要作用是自动生成页面头部信息中的 Expires 标签和 Cache-Control 标签,从而降低客户端的访问频率和次数,达到减少不必要流量和增加访问速度的目的mod_expires 是 apache 众多模块中配置比较简单的一个,它一共只有三条指令ExpiresActive 指令:打开或关闭产生”Expires:”和”Cache-Control:”头的功能。ExpiresByType 指令:指定MIME类型的文档(例如:text/html)的过期时间。ExpiresDefault 指令:默认所有文档的过期时间。 过期时间的写法“access plus 1 month”“access plus 4 weeks”“now plus 30 days”“modification plus 5 hours 3 minutes”A2592000M604800access、now及A 三种写法的意义相同,指过期时间从访问时开始计算。modification及M 的意义相同,指过期时间是以被访问文件的最后修改时间开始计算。所以,后一种写法只对静态文件起作用,而由脚本生成的动态页面不受它的作用 配置实例:     ExpiresActive On(开启mod_expires功能)    ExpiresDefault "access plus 6 months"(默认的过期时间是6个月)    ExpiresByType image/* "access plus 10 years"(图片的文件类型缓存时间为10年)    ExpiresByType text/* "access plus 10 years"(文本类型缓存时间为10年)    ExpiresByType application/* "access plus 30 minutes"(application文件类型缓存30分钟) 验证:image/jpeg 缓存时间为315360000s(10年)  如果将image/jpeg设置为不缓存(将max-age设置为0s): #   ExpiresByType image/* "access plus 10 years"ExpiresByType image/*  A0   2)模块mod_headers设置:   # YEAR(flv,gif,ico文件类型的缓存时间为1年)Header set Cache-Control “max-age=2592000″# WEEK(pdf.swf,js,css缓存时间为一周)Header set Cache-Control “max-age=604800″# NEVER CACHE(jsp.swf,ico文件类型不缓存)Header set Expires “Thu, 01 Dec 2003 16:00:00 GMT”Header set Cache-Control “no-store, no-cache, must-revalidate”Header set Pragma “no-cache”  Cache的默认缓存策略缓存时间计算t =(savetime - last_modified)*0.1 t = min(10, t) t = max(t, 3600)缓存时间为t,单位秒 1、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:01:00, (curtime-Last_modified)*0.1=6s,那么缓存时间为10s,因为最小值为10s2、当对象last-modified为20140801 00:00:00,当前时间为20140802 00:00:00,(curtime-Last_modified)*0.1=8640s,那么缓存时间为3600s3、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:10:00,(curtime-Last_modified)*0.1=60s,那么缓存时间为60s4、如果源站没有 Last-Modified 响应头,但有 ETag,则该对象极有可能是静态资源,将其默认缓存时间设置为 dft_expires 指令配置的最小值5、如果源站没有 Last-Modified,也没有 ETag,则认为该对象为动态内容,将其默认缓存时间设置为 0,每次都回源  注意事项因为网站开发及其相关技术人员更清楚自身网站的业务逻辑,静态和动态因素,所以建议用户通过控制台按照文件类型,目录控制设置缓存时间控制;如果用户控制有缓存策略控制,Cache的默认缓存策略就不生效。  如果问题还未能解决,请联系售后技术支持。

2019-12-01 23:32:45 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档过期时间控制支持三个维度,优先级依次为控制台设置——源站header设置——cache的默认策略设置cdn缓存规则参考:https://help.aliyun.com/document_detail/cdn/getting-started/set/set-cachepolicy.html?spm=5176.doccdn/getting-started/httpsdelivery.6.106.yJalap 控制台过期时间设置详见【域名过期时间设置】,源站设置详见【webserver缓存策略设置】,cache的默认策略是针对用户既没有在控制台设置过期时间,也没有在源站设置过期时间,会走一个默认的全局策略,既保证加速效果,又避免因为动态的文件缓存导致的问题详见【Cache的默认缓存策略】。Webserver缓存策略设置一、IIS 缓存策略设置1、 因为整体的站点只对.html .jpg .png .gif .apk文件,而其他文件都不缓存;可以首先对整个站点设置成不缓存,设置如下:a)打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,然后选择“HTTP头“选卡,勾选“启用内容过期”,并选择“立即过期”,然后“确定”,具体如下:  b)经过上述设置后整个网站的内容都不会被CDN缓存,然后对.html .jpg .png .gif .apk文件类型设置缓存策略  2、针对特定文件的缓存设置如下:a)如果上面不同扩展名的文件都单独放在一个特定的目录下面,且该目录没有其他扩展名的文件,那么可以针对这个扩展名所在的整个目录设置缓存的时间;具体方法是在“IIS信息管理器”中,展开网站“a.cc.com”的目录,选中需要设置缓存时间的目录,比如所有jpg都存储在img这个目录下,那么右键点击该目录,选择“属性’,选中”HTTP头“选卡;因为刚才整个网站都设置了不缓存的设置,因此这时打开该目录的”HTTP头“的缓存设置和1中的一致,接下来就有修改这个配置:选择”此时间段后过期“,并且将时间设置为过期的时间值,比如14天,点击“确定”保存,具体如下:  b) 如果特定扩展名的文件不是统一放在唯一的目录下,是和其他扩展名文件混合放在一个目录下面的,这种情况配置要复杂一些;  为了避免针对特定扩展名的文件进行逐个的配置,我们需要让IIS支持“通配符”,支持“通配符”的配置如下:1) 打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,选择“主目录”选卡,点击选卡上的“配置”按钮,出现如下对话框:  2) 在“通配符应用程序映射(执行顺序)”一栏下面,点击“插入”按钮,在弹出的文件选择框时选择 C: \WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 文件,其中“C:”是系统盘,不要勾选“确认文件是否存在”,具体如下:  连续两个“确定”按键点击后,就完成了IIS通配符的支持配置 3)接下来就是到存在需要进行缓存配置文件的目录下面,首先选择一个需要缓存扩展名的文件,点击右键,选择属性,选择“HTTP头”选卡,进行2.a)中的配置,并保存;接下来就有对这个文件目录下面所有相同扩展名的文件进行该设置了,此时需要修改IIS的配置文件实现。 4)IIS的配置文件放置在C:\WINDOWS\system32\inetsrv\MetaBase.xml(IIS6的设置),用“记事本”程序打开上述文件,如果我们3)中是针对bin目录下面的test.jpg做了缓存过期时间的设置的,那么我们就查找字串“/bin/test.jpg“,就可以在该文件中找到bin目录下test.jpg文件的缓存设置,为了使bin目录下面所有的jpg文件都采用该缓存设置,只需要将“test.jpg”改为”*.jpg“就可以了,然后保持该文件。注意要修改上述文件,需要在“服务”中关闭“IIS admin Service”。 5)其他扩展名的文件缓存设置可以重复上面的3)和4)操作。 二、Nginx 缓存策略设置HTTP头处理模块(HTTP Headers),这个模块允许设置任意的HTTP头 1) add_header语法:add_header name value 默认值:none 使用字段:http, server, location 2) expires语法:expires [time|epoch|max|off] 默认值:expires off 使用字段:http, server, location  这个指令控制是否在应答中标记一个过期时间,如果是,如何标记。off 将禁止修改头部中的 Expires和Cache-Control字段。Time控制“Cache-Control”的值,负数表示no-cacheepoch 将Expires头设置为1 January, 1970 00:00:01 GMT。max 将Expires头设置为31 December 2037 23:59:59 GMT,将Cache-Control最大化到10 年。 例如设置php的文件类型过期时间设置为1个小时:        设置php的文件类型为no-cache,不让cache服务器缓存:    另外可以通过add_header设置相对应的缓存策略,对于动态的php文件设置为不缓存: location ~ .*\.php$ {    if ($request_uri !~ ^/dynamicimg/) {        add_header              Cache-Control "no-cache";        add_header              Pragma no-cache;    }  } 三、Apache缓存策略设置 Apache的过期策略可以通过apache的mod_expires和mod_headers两个模块设置: 1)模块mod_expires设置:允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容mod_expires 模块的主要作用是自动生成页面头部信息中的 Expires 标签和 Cache-Control 标签,从而降低客户端的访问频率和次数,达到减少不必要流量和增加访问速度的目的mod_expires 是 apache 众多模块中配置比较简单的一个,它一共只有三条指令ExpiresActive 指令:打开或关闭产生”Expires:”和”Cache-Control:”头的功能。ExpiresByType 指令:指定MIME类型的文档(例如:text/html)的过期时间。ExpiresDefault 指令:默认所有文档的过期时间。 过期时间的写法“access plus 1 month”“access plus 4 weeks”“now plus 30 days”“modification plus 5 hours 3 minutes”A2592000M604800access、now及A 三种写法的意义相同,指过期时间从访问时开始计算。modification及M 的意义相同,指过期时间是以被访问文件的最后修改时间开始计算。所以,后一种写法只对静态文件起作用,而由脚本生成的动态页面不受它的作用 配置实例:     ExpiresActive On(开启mod_expires功能)    ExpiresDefault "access plus 6 months"(默认的过期时间是6个月)    ExpiresByType image/* "access plus 10 years"(图片的文件类型缓存时间为10年)    ExpiresByType text/* "access plus 10 years"(文本类型缓存时间为10年)    ExpiresByType application/* "access plus 30 minutes"(application文件类型缓存30分钟) 验证:image/jpeg 缓存时间为315360000s(10年)  如果将image/jpeg设置为不缓存(将max-age设置为0s): #   ExpiresByType image/* "access plus 10 years"ExpiresByType image/*  A0   2)模块mod_headers设置:   # YEAR(flv,gif,ico文件类型的缓存时间为1年)Header set Cache-Control “max-age=2592000″# WEEK(pdf.swf,js,css缓存时间为一周)Header set Cache-Control “max-age=604800″# NEVER CACHE(jsp.swf,ico文件类型不缓存)Header set Expires “Thu, 01 Dec 2003 16:00:00 GMT”Header set Cache-Control “no-store, no-cache, must-revalidate”Header set Pragma “no-cache”  Cache的默认缓存策略缓存时间计算t =(savetime - last_modified)*0.1 t = min(10, t) t = max(t, 3600)缓存时间为t,单位秒 1、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:01:00, (curtime-Last_modified)*0.1=6s,那么缓存时间为10s,因为最小值为10s2、当对象last-modified为20140801 00:00:00,当前时间为20140802 00:00:00,(curtime-Last_modified)*0.1=8640s,那么缓存时间为3600s3、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:10:00,(curtime-Last_modified)*0.1=60s,那么缓存时间为60s4、如果源站没有 Last-Modified 响应头,但有 ETag,则该对象极有可能是静态资源,将其默认缓存时间设置为 dft_expires 指令配置的最小值5、如果源站没有 Last-Modified,也没有 ETag,则认为该对象为动态内容,将其默认缓存时间设置为 0,每次都回源  注意事项因为网站开发及其相关技术人员更清楚自身网站的业务逻辑,静态和动态因素,所以建议用户通过控制台按照文件类型,目录控制设置缓存时间控制;如果用户控制有缓存策略控制,Cache的默认缓存策略就不生效。  如果问题还未能解决,请联系售后技术支持。

2019-12-01 23:32:44 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档过期时间控制支持三个维度,优先级依次为控制台设置——源站header设置——cache的默认策略设置cdn缓存规则参考:https://help.aliyun.com/document_detail/cdn/getting-started/set/set-cachepolicy.html?spm=5176.doccdn/getting-started/httpsdelivery.6.106.yJalap 控制台过期时间设置详见【域名过期时间设置】,源站设置详见【webserver缓存策略设置】,cache的默认策略是针对用户既没有在控制台设置过期时间,也没有在源站设置过期时间,会走一个默认的全局策略,既保证加速效果,又避免因为动态的文件缓存导致的问题详见【Cache的默认缓存策略】。Webserver缓存策略设置一、IIS 缓存策略设置1、 因为整体的站点只对.html .jpg .png .gif .apk文件,而其他文件都不缓存;可以首先对整个站点设置成不缓存,设置如下:a)打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,然后选择“HTTP头“选卡,勾选“启用内容过期”,并选择“立即过期”,然后“确定”,具体如下:  b)经过上述设置后整个网站的内容都不会被CDN缓存,然后对.html .jpg .png .gif .apk文件类型设置缓存策略  2、针对特定文件的缓存设置如下:a)如果上面不同扩展名的文件都单独放在一个特定的目录下面,且该目录没有其他扩展名的文件,那么可以针对这个扩展名所在的整个目录设置缓存的时间;具体方法是在“IIS信息管理器”中,展开网站“a.cc.com”的目录,选中需要设置缓存时间的目录,比如所有jpg都存储在img这个目录下,那么右键点击该目录,选择“属性’,选中”HTTP头“选卡;因为刚才整个网站都设置了不缓存的设置,因此这时打开该目录的”HTTP头“的缓存设置和1中的一致,接下来就有修改这个配置:选择”此时间段后过期“,并且将时间设置为过期的时间值,比如14天,点击“确定”保存,具体如下:  b) 如果特定扩展名的文件不是统一放在唯一的目录下,是和其他扩展名文件混合放在一个目录下面的,这种情况配置要复杂一些;  为了避免针对特定扩展名的文件进行逐个的配置,我们需要让IIS支持“通配符”,支持“通配符”的配置如下:1) 打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,选择“主目录”选卡,点击选卡上的“配置”按钮,出现如下对话框:  2) 在“通配符应用程序映射(执行顺序)”一栏下面,点击“插入”按钮,在弹出的文件选择框时选择 C: \WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 文件,其中“C:”是系统盘,不要勾选“确认文件是否存在”,具体如下:  连续两个“确定”按键点击后,就完成了IIS通配符的支持配置 3)接下来就是到存在需要进行缓存配置文件的目录下面,首先选择一个需要缓存扩展名的文件,点击右键,选择属性,选择“HTTP头”选卡,进行2.a)中的配置,并保存;接下来就有对这个文件目录下面所有相同扩展名的文件进行该设置了,此时需要修改IIS的配置文件实现。 4)IIS的配置文件放置在C:\WINDOWS\system32\inetsrv\MetaBase.xml(IIS6的设置),用“记事本”程序打开上述文件,如果我们3)中是针对bin目录下面的test.jpg做了缓存过期时间的设置的,那么我们就查找字串“/bin/test.jpg“,就可以在该文件中找到bin目录下test.jpg文件的缓存设置,为了使bin目录下面所有的jpg文件都采用该缓存设置,只需要将“test.jpg”改为”*.jpg“就可以了,然后保持该文件。注意要修改上述文件,需要在“服务”中关闭“IIS admin Service”。 5)其他扩展名的文件缓存设置可以重复上面的3)和4)操作。 二、Nginx 缓存策略设置HTTP头处理模块(HTTP Headers),这个模块允许设置任意的HTTP头 1) add_header语法:add_header name value 默认值:none 使用字段:http, server, location 2) expires语法:expires [time|epoch|max|off] 默认值:expires off 使用字段:http, server, location  这个指令控制是否在应答中标记一个过期时间,如果是,如何标记。off 将禁止修改头部中的 Expires和Cache-Control字段。Time控制“Cache-Control”的值,负数表示no-cacheepoch 将Expires头设置为1 January, 1970 00:00:01 GMT。max 将Expires头设置为31 December 2037 23:59:59 GMT,将Cache-Control最大化到10 年。 例如设置php的文件类型过期时间设置为1个小时:        设置php的文件类型为no-cache,不让cache服务器缓存:    另外可以通过add_header设置相对应的缓存策略,对于动态的php文件设置为不缓存: location ~ .*\.php$ {    if ($request_uri !~ ^/dynamicimg/) {        add_header              Cache-Control "no-cache";        add_header              Pragma no-cache;    }  } 三、Apache缓存策略设置 Apache的过期策略可以通过apache的mod_expires和mod_headers两个模块设置: 1)模块mod_expires设置:允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容mod_expires 模块的主要作用是自动生成页面头部信息中的 Expires 标签和 Cache-Control 标签,从而降低客户端的访问频率和次数,达到减少不必要流量和增加访问速度的目的mod_expires 是 apache 众多模块中配置比较简单的一个,它一共只有三条指令ExpiresActive 指令:打开或关闭产生”Expires:”和”Cache-Control:”头的功能。ExpiresByType 指令:指定MIME类型的文档(例如:text/html)的过期时间。ExpiresDefault 指令:默认所有文档的过期时间。 过期时间的写法“access plus 1 month”“access plus 4 weeks”“now plus 30 days”“modification plus 5 hours 3 minutes”A2592000M604800access、now及A 三种写法的意义相同,指过期时间从访问时开始计算。modification及M 的意义相同,指过期时间是以被访问文件的最后修改时间开始计算。所以,后一种写法只对静态文件起作用,而由脚本生成的动态页面不受它的作用 配置实例:     ExpiresActive On(开启mod_expires功能)    ExpiresDefault "access plus 6 months"(默认的过期时间是6个月)    ExpiresByType image/* "access plus 10 years"(图片的文件类型缓存时间为10年)    ExpiresByType text/* "access plus 10 years"(文本类型缓存时间为10年)    ExpiresByType application/* "access plus 30 minutes"(application文件类型缓存30分钟) 验证:image/jpeg 缓存时间为315360000s(10年)  如果将image/jpeg设置为不缓存(将max-age设置为0s): #   ExpiresByType image/* "access plus 10 years"ExpiresByType image/*  A0   2)模块mod_headers设置:   # YEAR(flv,gif,ico文件类型的缓存时间为1年)Header set Cache-Control “max-age=2592000″# WEEK(pdf.swf,js,css缓存时间为一周)Header set Cache-Control “max-age=604800″# NEVER CACHE(jsp.swf,ico文件类型不缓存)Header set Expires “Thu, 01 Dec 2003 16:00:00 GMT”Header set Cache-Control “no-store, no-cache, must-revalidate”Header set Pragma “no-cache”  Cache的默认缓存策略缓存时间计算t =(savetime - last_modified)*0.1 t = min(10, t) t = max(t, 3600)缓存时间为t,单位秒 1、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:01:00, (curtime-Last_modified)*0.1=6s,那么缓存时间为10s,因为最小值为10s2、当对象last-modified为20140801 00:00:00,当前时间为20140802 00:00:00,(curtime-Last_modified)*0.1=8640s,那么缓存时间为3600s3、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:10:00,(curtime-Last_modified)*0.1=60s,那么缓存时间为60s4、如果源站没有 Last-Modified 响应头,但有 ETag,则该对象极有可能是静态资源,将其默认缓存时间设置为 dft_expires 指令配置的最小值5、如果源站没有 Last-Modified,也没有 ETag,则认为该对象为动态内容,将其默认缓存时间设置为 0,每次都回源  注意事项因为网站开发及其相关技术人员更清楚自身网站的业务逻辑,静态和动态因素,所以建议用户通过控制台按照文件类型,目录控制设置缓存时间控制;如果用户控制有缓存策略控制,Cache的默认缓存策略就不生效。  如果问题还未能解决,请联系售后技术支持。

2019-12-01 23:32:45 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档过期时间控制支持三个维度,优先级依次为控制台设置——源站header设置——cache的默认策略设置cdn缓存规则参考:https://help.aliyun.com/document_detail/cdn/getting-started/set/set-cachepolicy.html?spm=5176.doccdn/getting-started/httpsdelivery.6.106.yJalap 控制台过期时间设置详见【域名过期时间设置】,源站设置详见【webserver缓存策略设置】,cache的默认策略是针对用户既没有在控制台设置过期时间,也没有在源站设置过期时间,会走一个默认的全局策略,既保证加速效果,又避免因为动态的文件缓存导致的问题详见【Cache的默认缓存策略】。Webserver缓存策略设置一、IIS 缓存策略设置1、 因为整体的站点只对.html .jpg .png .gif .apk文件,而其他文件都不缓存;可以首先对整个站点设置成不缓存,设置如下:a)打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,然后选择“HTTP头“选卡,勾选“启用内容过期”,并选择“立即过期”,然后“确定”,具体如下:  b)经过上述设置后整个网站的内容都不会被CDN缓存,然后对.html .jpg .png .gif .apk文件类型设置缓存策略  2、针对特定文件的缓存设置如下:a)如果上面不同扩展名的文件都单独放在一个特定的目录下面,且该目录没有其他扩展名的文件,那么可以针对这个扩展名所在的整个目录设置缓存的时间;具体方法是在“IIS信息管理器”中,展开网站“a.cc.com”的目录,选中需要设置缓存时间的目录,比如所有jpg都存储在img这个目录下,那么右键点击该目录,选择“属性’,选中”HTTP头“选卡;因为刚才整个网站都设置了不缓存的设置,因此这时打开该目录的”HTTP头“的缓存设置和1中的一致,接下来就有修改这个配置:选择”此时间段后过期“,并且将时间设置为过期的时间值,比如14天,点击“确定”保存,具体如下:  b) 如果特定扩展名的文件不是统一放在唯一的目录下,是和其他扩展名文件混合放在一个目录下面的,这种情况配置要复杂一些;  为了避免针对特定扩展名的文件进行逐个的配置,我们需要让IIS支持“通配符”,支持“通配符”的配置如下:1) 打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,选择“主目录”选卡,点击选卡上的“配置”按钮,出现如下对话框:  2) 在“通配符应用程序映射(执行顺序)”一栏下面,点击“插入”按钮,在弹出的文件选择框时选择 C: \WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 文件,其中“C:”是系统盘,不要勾选“确认文件是否存在”,具体如下:  连续两个“确定”按键点击后,就完成了IIS通配符的支持配置 3)接下来就是到存在需要进行缓存配置文件的目录下面,首先选择一个需要缓存扩展名的文件,点击右键,选择属性,选择“HTTP头”选卡,进行2.a)中的配置,并保存;接下来就有对这个文件目录下面所有相同扩展名的文件进行该设置了,此时需要修改IIS的配置文件实现。 4)IIS的配置文件放置在C:\WINDOWS\system32\inetsrv\MetaBase.xml(IIS6的设置),用“记事本”程序打开上述文件,如果我们3)中是针对bin目录下面的test.jpg做了缓存过期时间的设置的,那么我们就查找字串“/bin/test.jpg“,就可以在该文件中找到bin目录下test.jpg文件的缓存设置,为了使bin目录下面所有的jpg文件都采用该缓存设置,只需要将“test.jpg”改为”*.jpg“就可以了,然后保持该文件。注意要修改上述文件,需要在“服务”中关闭“IIS admin Service”。 5)其他扩展名的文件缓存设置可以重复上面的3)和4)操作。 二、Nginx 缓存策略设置HTTP头处理模块(HTTP Headers),这个模块允许设置任意的HTTP头 1) add_header语法:add_header name value 默认值:none 使用字段:http, server, location 2) expires语法:expires [time|epoch|max|off] 默认值:expires off 使用字段:http, server, location  这个指令控制是否在应答中标记一个过期时间,如果是,如何标记。off 将禁止修改头部中的 Expires和Cache-Control字段。Time控制“Cache-Control”的值,负数表示no-cacheepoch 将Expires头设置为1 January, 1970 00:00:01 GMT。max 将Expires头设置为31 December 2037 23:59:59 GMT,将Cache-Control最大化到10 年。 例如设置php的文件类型过期时间设置为1个小时:        设置php的文件类型为no-cache,不让cache服务器缓存:    另外可以通过add_header设置相对应的缓存策略,对于动态的php文件设置为不缓存: location ~ .*\.php$ {    if ($request_uri !~ ^/dynamicimg/) {        add_header              Cache-Control "no-cache";        add_header              Pragma no-cache;    }  } 三、Apache缓存策略设置 Apache的过期策略可以通过apache的mod_expires和mod_headers两个模块设置: 1)模块mod_expires设置:允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容mod_expires 模块的主要作用是自动生成页面头部信息中的 Expires 标签和 Cache-Control 标签,从而降低客户端的访问频率和次数,达到减少不必要流量和增加访问速度的目的mod_expires 是 apache 众多模块中配置比较简单的一个,它一共只有三条指令ExpiresActive 指令:打开或关闭产生”Expires:”和”Cache-Control:”头的功能。ExpiresByType 指令:指定MIME类型的文档(例如:text/html)的过期时间。ExpiresDefault 指令:默认所有文档的过期时间。 过期时间的写法“access plus 1 month”“access plus 4 weeks”“now plus 30 days”“modification plus 5 hours 3 minutes”A2592000M604800access、now及A 三种写法的意义相同,指过期时间从访问时开始计算。modification及M 的意义相同,指过期时间是以被访问文件的最后修改时间开始计算。所以,后一种写法只对静态文件起作用,而由脚本生成的动态页面不受它的作用 配置实例:     ExpiresActive On(开启mod_expires功能)    ExpiresDefault "access plus 6 months"(默认的过期时间是6个月)    ExpiresByType image/* "access plus 10 years"(图片的文件类型缓存时间为10年)    ExpiresByType text/* "access plus 10 years"(文本类型缓存时间为10年)    ExpiresByType application/* "access plus 30 minutes"(application文件类型缓存30分钟) 验证:image/jpeg 缓存时间为315360000s(10年)  如果将image/jpeg设置为不缓存(将max-age设置为0s): #   ExpiresByType image/* "access plus 10 years"ExpiresByType image/*  A0   2)模块mod_headers设置:   # YEAR(flv,gif,ico文件类型的缓存时间为1年)Header set Cache-Control “max-age=2592000″# WEEK(pdf.swf,js,css缓存时间为一周)Header set Cache-Control “max-age=604800″# NEVER CACHE(jsp.swf,ico文件类型不缓存)Header set Expires “Thu, 01 Dec 2003 16:00:00 GMT”Header set Cache-Control “no-store, no-cache, must-revalidate”Header set Pragma “no-cache”  Cache的默认缓存策略缓存时间计算t =(savetime - last_modified)*0.1 t = min(10, t) t = max(t, 3600)缓存时间为t,单位秒 1、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:01:00, (curtime-Last_modified)*0.1=6s,那么缓存时间为10s,因为最小值为10s2、当对象last-modified为20140801 00:00:00,当前时间为20140802 00:00:00,(curtime-Last_modified)*0.1=8640s,那么缓存时间为3600s3、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:10:00,(curtime-Last_modified)*0.1=60s,那么缓存时间为60s4、如果源站没有 Last-Modified 响应头,但有 ETag,则该对象极有可能是静态资源,将其默认缓存时间设置为 dft_expires 指令配置的最小值5、如果源站没有 Last-Modified,也没有 ETag,则认为该对象为动态内容,将其默认缓存时间设置为 0,每次都回源  注意事项因为网站开发及其相关技术人员更清楚自身网站的业务逻辑,静态和动态因素,所以建议用户通过控制台按照文件类型,目录控制设置缓存时间控制;如果用户控制有缓存策略控制,Cache的默认缓存策略就不生效。  如果问题还未能解决,请联系售后技术支持。

2019-12-01 23:32:46 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档过期时间控制支持三个维度,优先级依次为控制台设置——源站header设置——cache的默认策略设置cdn缓存规则参考:https://help.aliyun.com/document_detail/cdn/getting-started/set/set-cachepolicy.html?spm=5176.doccdn/getting-started/httpsdelivery.6.106.yJalap 控制台过期时间设置详见【域名过期时间设置】,源站设置详见【webserver缓存策略设置】,cache的默认策略是针对用户既没有在控制台设置过期时间,也没有在源站设置过期时间,会走一个默认的全局策略,既保证加速效果,又避免因为动态的文件缓存导致的问题详见【Cache的默认缓存策略】。Webserver缓存策略设置一、IIS 缓存策略设置1、 因为整体的站点只对.html .jpg .png .gif .apk文件,而其他文件都不缓存;可以首先对整个站点设置成不缓存,设置如下:a)打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,然后选择“HTTP头“选卡,勾选“启用内容过期”,并选择“立即过期”,然后“确定”,具体如下:  b)经过上述设置后整个网站的内容都不会被CDN缓存,然后对.html .jpg .png .gif .apk文件类型设置缓存策略  2、针对特定文件的缓存设置如下:a)如果上面不同扩展名的文件都单独放在一个特定的目录下面,且该目录没有其他扩展名的文件,那么可以针对这个扩展名所在的整个目录设置缓存的时间;具体方法是在“IIS信息管理器”中,展开网站“a.cc.com”的目录,选中需要设置缓存时间的目录,比如所有jpg都存储在img这个目录下,那么右键点击该目录,选择“属性’,选中”HTTP头“选卡;因为刚才整个网站都设置了不缓存的设置,因此这时打开该目录的”HTTP头“的缓存设置和1中的一致,接下来就有修改这个配置:选择”此时间段后过期“,并且将时间设置为过期的时间值,比如14天,点击“确定”保存,具体如下:  b) 如果特定扩展名的文件不是统一放在唯一的目录下,是和其他扩展名文件混合放在一个目录下面的,这种情况配置要复杂一些;  为了避免针对特定扩展名的文件进行逐个的配置,我们需要让IIS支持“通配符”,支持“通配符”的配置如下:1) 打开“IIS信息管理器”,右键点击服务网站“a.cc.com”的属性,选择“主目录”选卡,点击选卡上的“配置”按钮,出现如下对话框:  2) 在“通配符应用程序映射(执行顺序)”一栏下面,点击“插入”按钮,在弹出的文件选择框时选择 C: \WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 文件,其中“C:”是系统盘,不要勾选“确认文件是否存在”,具体如下:  连续两个“确定”按键点击后,就完成了IIS通配符的支持配置 3)接下来就是到存在需要进行缓存配置文件的目录下面,首先选择一个需要缓存扩展名的文件,点击右键,选择属性,选择“HTTP头”选卡,进行2.a)中的配置,并保存;接下来就有对这个文件目录下面所有相同扩展名的文件进行该设置了,此时需要修改IIS的配置文件实现。 4)IIS的配置文件放置在C:\WINDOWS\system32\inetsrv\MetaBase.xml(IIS6的设置),用“记事本”程序打开上述文件,如果我们3)中是针对bin目录下面的test.jpg做了缓存过期时间的设置的,那么我们就查找字串“/bin/test.jpg“,就可以在该文件中找到bin目录下test.jpg文件的缓存设置,为了使bin目录下面所有的jpg文件都采用该缓存设置,只需要将“test.jpg”改为”*.jpg“就可以了,然后保持该文件。注意要修改上述文件,需要在“服务”中关闭“IIS admin Service”。 5)其他扩展名的文件缓存设置可以重复上面的3)和4)操作。 二、Nginx 缓存策略设置HTTP头处理模块(HTTP Headers),这个模块允许设置任意的HTTP头 1) add_header语法:add_header name value 默认值:none 使用字段:http, server, location 2) expires语法:expires [time|epoch|max|off] 默认值:expires off 使用字段:http, server, location  这个指令控制是否在应答中标记一个过期时间,如果是,如何标记。off 将禁止修改头部中的 Expires和Cache-Control字段。Time控制“Cache-Control”的值,负数表示no-cacheepoch 将Expires头设置为1 January, 1970 00:00:01 GMT。max 将Expires头设置为31 December 2037 23:59:59 GMT,将Cache-Control最大化到10 年。 例如设置php的文件类型过期时间设置为1个小时:        设置php的文件类型为no-cache,不让cache服务器缓存:    另外可以通过add_header设置相对应的缓存策略,对于动态的php文件设置为不缓存: location ~ .*\.php$ {    if ($request_uri !~ ^/dynamicimg/) {        add_header              Cache-Control "no-cache";        add_header              Pragma no-cache;    }  } 三、Apache缓存策略设置 Apache的过期策略可以通过apache的mod_expires和mod_headers两个模块设置: 1)模块mod_expires设置:允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容mod_expires 模块的主要作用是自动生成页面头部信息中的 Expires 标签和 Cache-Control 标签,从而降低客户端的访问频率和次数,达到减少不必要流量和增加访问速度的目的mod_expires 是 apache 众多模块中配置比较简单的一个,它一共只有三条指令ExpiresActive 指令:打开或关闭产生”Expires:”和”Cache-Control:”头的功能。ExpiresByType 指令:指定MIME类型的文档(例如:text/html)的过期时间。ExpiresDefault 指令:默认所有文档的过期时间。 过期时间的写法“access plus 1 month”“access plus 4 weeks”“now plus 30 days”“modification plus 5 hours 3 minutes”A2592000M604800access、now及A 三种写法的意义相同,指过期时间从访问时开始计算。modification及M 的意义相同,指过期时间是以被访问文件的最后修改时间开始计算。所以,后一种写法只对静态文件起作用,而由脚本生成的动态页面不受它的作用 配置实例:     ExpiresActive On(开启mod_expires功能)    ExpiresDefault "access plus 6 months"(默认的过期时间是6个月)    ExpiresByType image/* "access plus 10 years"(图片的文件类型缓存时间为10年)    ExpiresByType text/* "access plus 10 years"(文本类型缓存时间为10年)    ExpiresByType application/* "access plus 30 minutes"(application文件类型缓存30分钟) 验证:image/jpeg 缓存时间为315360000s(10年)  如果将image/jpeg设置为不缓存(将max-age设置为0s): #   ExpiresByType image/* "access plus 10 years"ExpiresByType image/*  A0   2)模块mod_headers设置:   # YEAR(flv,gif,ico文件类型的缓存时间为1年)Header set Cache-Control “max-age=2592000″# WEEK(pdf.swf,js,css缓存时间为一周)Header set Cache-Control “max-age=604800″# NEVER CACHE(jsp.swf,ico文件类型不缓存)Header set Expires “Thu, 01 Dec 2003 16:00:00 GMT”Header set Cache-Control “no-store, no-cache, must-revalidate”Header set Pragma “no-cache”  Cache的默认缓存策略缓存时间计算t =(savetime - last_modified)*0.1 t = min(10, t) t = max(t, 3600)缓存时间为t,单位秒 1、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:01:00, (curtime-Last_modified)*0.1=6s,那么缓存时间为10s,因为最小值为10s2、当对象last-modified为20140801 00:00:00,当前时间为20140802 00:00:00,(curtime-Last_modified)*0.1=8640s,那么缓存时间为3600s3、当对象last-modified为20140801 00:00:00,当前时间为20140801 00:10:00,(curtime-Last_modified)*0.1=60s,那么缓存时间为60s4、如果源站没有 Last-Modified 响应头,但有 ETag,则该对象极有可能是静态资源,将其默认缓存时间设置为 dft_expires 指令配置的最小值5、如果源站没有 Last-Modified,也没有 ETag,则认为该对象为动态内容,将其默认缓存时间设置为 0,每次都回源  注意事项因为网站开发及其相关技术人员更清楚自身网站的业务逻辑,静态和动态因素,所以建议用户通过控制台按照文件类型,目录控制设置缓存时间控制;如果用户控制有缓存策略控制,Cache的默认缓存策略就不生效。  如果问题还未能解决,请联系售后技术支持。

2019-12-01 23:32:43 0 浏览量 回答数 0

问题

Apache服务器中如何启用gzip压缩

kideny 2019-12-01 21:26:45 14569 浏览量 回答数 14

问题

OSS存储利用内网CDN叠加多台5MECS网宽

betterhomechina 2019-12-01 21:04:17 14039 浏览量 回答数 5

回答

PHP面试干货 1、进程和线程 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。 2、apache默认使用进程管理还是线程管理?如何判断并设置最大连接数? 一个进程可以开多个线程 默认是进程管理 默认有一个主进程 Linux: ps -aux | grep httpd | more 一个子进程代表一个用户的连接 Conf/extra/httpd-mpm.conf 多路功能模块 http -l 查询当前apache处于什么模式下 3、单例模式 单例模式需求:只能实例化产生一个对象 如何实现: 私有化构造函数 禁止克隆对象 提供一个访问这个实例的公共的静态方法(通常为getInstance方法),从而返回唯一对象 需要一个保存类的静态属性 class demo { private static $MyObject; //保存对象的静态属性 private function __construct(){ //私有化构造函数 } private function __clone(){ //禁止克隆 } public static function getInstance(){ if(! (self::$MyObject instanceof self)){ self::$MyObject = new self; } return self::$MyObject; } } 4、安装完Apache后,在http.conf中配置加载PHP文件以Apache模块的方式安装PHP,在文件http.conf中首先要用语句LoadModule php5_module "e:/php/php5apache2.dll"动态装载PHP模块,然后再用语句AddType application/x-httpd-php .php 使得Apache把所有扩展名为PHP的文件都作为PHP脚本处理 5、debug_backtrace()函数能返回脚本里的任意行中调用的函数的名称。该函数同时还经常被用在调试中,用来判断错误是如何发生的 function one($str1, $str2) { two("Glenn", "Quagmire"); } function two($str1, $str2) { three("Cleveland", "Brown"); } function three($str1, $str2) { print_r(debug_backtrace()); } one("Peter", "Griffin"); Array ( [0] => Array ( [file] => D:\www\test\result.php [line] => 9 [function] => three [args] => Array ( [0] => Cleveland [1] => Brown ) ) [1] => Array ( [file] => D:\www\test\result.php [line] => 5 [function] => two [args] => Array ( [0] => Glenn [1] => Quagmire ) ) [2] => Array ( [file] => D:\www\test\result.php [line] => 16 [function] => one [args] => Array ( [0] => Peter [1] => Griffin ) ) ) 6、输出用户的IP地址,并且判断用户的IP地址是否在192.168.1.100 — 192.168.1.150之间 echo $ip=getenv('REMOTE_ADDR'); $ip=str_replace('.','',$ip); if($ip<1921681150 && $ip>1921681100) { echo 'ip在192.168.1.100—–192.168.1.150之间'; } else { echo 'ip不在192.168.1.100—–192.168.1.150之间'; } 7、请将2维数组按照name的长度进行重新排序,按照顺序将id赋值 $tarray = array( array('id' => 0, 'name' => '123'), array('id' => 0, 'name' => '1234'), array('id' => 0, 'name' => '1235'), array('id' => 0, 'name' => '12356'), array('id' => 0, 'name' => '123abc') ); foreach($tarray as $key=>$val) { $c[]=$val['name']; } function aa($a,$b) { if(strlen($a)==strlen($b)) return 0; return strlen($a)>strlen($b)?-1:1; } usort($c,'aa'); $len=count($c); for($i=0;$i<$len;$i++) { $t[$i]['id']=$i+1; $t[$i]['name']=$c[$i]; } print_r($t); 8、表单数据提交方式POST和GET的区别,URL地址传递的数据最大长度是多少? POST方式提交数据用户不可见,是数据更安全,最大长度不受限制,而GET方式传值在URL地址可以看到,相对不安全,对大长度是2048字节。 9、SESSION和COOKIE的作用和区别,SESSION信息的存储方式,如何进行遍历 SESSION和COOKIE都能够使值在页面之间进行传递,SESSION存储在服务器端,数据更安全,COOKIE保存在客户端,用户使用手段可以进行修改,SESSION依赖于COOKIE进行传递的。Session遍历使用$_SESSION[]取值,cookie遍历使用$_COOKIE[]取值。 10、什么是数据库索引,主键索引,唯一索引的区别,索引的缺点是什么 索引用来快速地寻找那些具有特定值的记录。 主键索引和唯一索引的区别:主键是一种唯一性索引,但它必须指定为“PRIMARY KEY”,每个表只能有一个主键。唯一索引索引列的所有值都只能出现一次,即必须唯一。 索引的缺点: 1、创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。 2、索引需要占用物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,需要的空间就会更大。 3、当对表中的数据进行增加、删除、修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。 11、数据库设计时,常遇到的性能瓶颈有哪些,常有的解决方案 瓶颈主要有: 1、磁盘搜索 优化方法是:将数据分布在多个磁盘上 2、磁盘读/写 优化方法是:从多个磁盘并行读写。 3、CPU周期 优化方法:扩充内存 4、内存带宽 12、include和require区别 include引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码。 require引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码。 13、文件上传时设计到点 和文件上传有关的php.ini配置选项(File Uploads): file_uploads=On/Off:文件是否允许上传 upload_max_filesize上传文件时,单个文件的最大大小 post_max_size:提交表单时,整个post表单的最大大小 max_file_uploads =20上传文件的个数 内存占用,脚本最大执行时间也间接影响到文件的上传 14、header常见状态 //200 正常状态 header('HTTP/1.1 200 OK'); // 301 永久重定向,记得在后面要加重定向地址 Location:$url header('HTTP/1.1 301 Moved Permanently'); // 重定向,其实就是302 暂时重定向 header('Location: http://www.maiyoule.com/'); // 设置页面304 没有修改 header('HTTP/1.1 304 Not Modified'); // 显示登录框, header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Basic realm="登录信息"'); echo '显示的信息!'; // 403 禁止访问 header('HTTP/1.1 403 Forbidden'); // 404 错误 header('HTTP/1.1 404 Not Found'); // 500 服务器错误 header('HTTP/1.1 500 Internal Server Error'); // 3秒后重定向指定地址(也就是刷新到新页面与 <meta http-equiv="refresh" content="10;http://www.maiyoule.com/ /> 相同) header('Refresh: 3; url=http://www.maiyoule.com/'); echo '10后跳转到http://www.maiyoule.com'; // 重写 X-Powered-By 值 header('X-Powered-By: PHP/5.3.0'); header('X-Powered-By: Brain/0.6b'); //设置上下文语言 header('Content-language: en'); // 设置页面最后修改时间(多用于防缓存) $time = time() - 60; //建议使用filetime函数来设置页面缓存时间 header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT'); // 设置内容长度 header('Content-Length: 39344'); // 设置头文件类型,可以用于流文件或者文件下载 header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="example.zip"'); header('Content-Transfer-Encoding: binary'); readfile('example.zip');//读取文件到客户端 //禁用页面缓存 header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Pragma: no-cache'); //设置页面头信息 header('Content-Type: text/html; charset=iso-8859-1'); header('Content-Type: text/html; charset=utf-8'); header('Content-Type: text/plain'); header('Content-Type: image/jpeg'); header('Content-Type: application/zip'); header('Content-Type: application/pdf'); header('Content-Type: audio/mpeg'); header('Content-Type: application/x-shockwave-flash'); //.... 至于Content-Type 的值 可以去查查 w3c 的文档库,那里很丰富 15、ORM和ActiveRecord ORM:object relation mapping,即对象关系映射,简单的说就是对象模型和关系模型的一种映射。为什么要有这么一个映射?很简单,因为现在的开发语言基本都是oop的,但是传统的数据库却是关系型的。为了可以靠贴近面向对象开发,我们想要像操作对象一样操作数据库。还可以隔离底层数据库层,我们不需要关心我们使用的是mysql还是其他的关系型数据库 ActiveRecord也属于ORM层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简洁易懂。 ActiveRecord的主要思想是: 1. 每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field; 2. ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD;; 3. ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑; ActiveRecord比较适用于: 1. 业务逻辑比较简单,当你的类基本上和数据库中的表一一对应时, ActiveRecord是非常方便的,即你的业务逻辑大多数是对单表操作; 2. 当发生跨表的操作时, 往往会配合使用事务脚本(Transaction Script),把跨表事务提升到事务脚本中; 3. ActiveRecord最大优点是简单, 直观。 一个类就包括了数据访问和业务逻辑. 如果配合代码生成器使用就更方便了; 这些优点使ActiveRecord特别适合WEB快速开发。 16、斐波那契方法,也就是1 1 2 3 5 8 ……,这里给出两种方法,大家可以对比下,看看哪种快,以及为什么 function fibonacci($n){ if($n == 0){ return 0; } if($n == 1){ return 1; } return fibonacci($n-1)+fibonacci($n-2); } function fibonacci($n){ for($i=0; $i<$n; $i++){ $r[] = $i<2 ? 1 : $r[$i-1]+$r[$i-2]; } return $r[--$i]; } 17、约瑟夫环,也就是常见的数猴子,n只猴子围成一圈,每只猴子下面标了编号,从1开始数起,数到m那么第m只猴子便退出,依次类推,每数到m,那么那个位置的猴子退出,那么最后剩下的猴子下的编号是啥。 function yuesefu($n,$m) { $r=0; for($i=2; $i<=$n; $i++) { $r=($r+$m)%$i; } return $r+1; } 18、冒泡排序,大致是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束 function bubbleSort($arr){ for($i=0, $len=count($arr); $i<$len; $i++){ for($j=0; $j<$len; $j++){ if($arr[$i]<$arr[$j]){ $tmp = $arr[$j]; $arr[$j] = $arr[$i]; $arr[$i] = $tmp; } } } return $arr; } 19、快速排序,也就是找出一个元素(理论上可以随便找一个)作为基准,然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归快速排序,将其他n-1个元素也调整到排序后的正确位置。最后每个元素都是在排序后的正 确位置,排序完成。所以快速排序算法的核心算法是分区操作,即如何调整基准的位置以及调整返回基准的最终位置以便分治递归。 function quickSort($arr){ $len = count($arr); if($len <=1){ return $arr; } $key = $arr[0]; $leftArr = $rightArr= array(); for($i=1; $i<$len; $i++){ if($arr[$i] <= $key){ $leftArr[] = $arr[$i]; } else{ $rightArr[] = $arr[$i]; } } $leftArr = quickSort($leftArr); $rightArr = quickSort($rightArr); return array_merge($leftArr, array($key), $rightArr); } 20、(递归的)列出目录下所有文件及目录,这里也有两种方法 function listDir($path){ $res = dir($path); while($file = $res->read()){ if($file == '.' || $file == '..'){ continue; } if(is_dir($path . '/' .$file)){ echo $path . '/' .$file . "\r\n"; listDir($path . '/' .$file); } else{ echo $path . '/' .$file . "\r\n"; } } $res->close(); } function listDir($path){ if(is_dir($path)){ if(FALSE !== ($res = opendir($path))){ while(FALSE !== ($file = readdir($res))){ if($file == '.' || $file == '..'){ continue; } $subPath = $path . '/' . $file; if(is_dir($subPath)){ echo $subPath . "\r\n"; listDir($subPath); } else{ echo $subPath . "\r\n"; } } } } } 21、找出相对的目录,比如/a/b/c/d/e.php相对于/a/b/13/34/c.php是/c/d/ function ralativePath($a, $b){ $a = explode('/', dirname($a)); $b = explode('/', dirname($b)); $c = '/'; foreach ($a as $k=> $v){ if($v != $b[$k]){ $c .= $v . '/'; } } echo $c; } 22、快速找出url中php后缀 function get_ext($url){ $data = parse_url($url); return pathinfo($data['path'], PATHINFO_EXTENSION); } 23、正则题,使用正则抓取网页,以网页meta为utf8为准,若是抓取的网页编码为big5之类的,需要转化为utf8再收录 function preg_meta($meta){ $replacement = "\\1utf8\\6\\7"; $pattern = '#(<meta\s+http-equiv=(\'|"|)Content-Type(\'|"|)\s+content=(\'|"|)text/html; charset=)(\w+)(\'|"|)(>)#i'; return preg_replace($pattern, $replacement, $meta); } echo preg_meta("<meta http-equiv=Content-Type content='text/html; charset=big5'><META http-equiv=\"Content-Type\" content='text/html; charset=big5'>"); 24、不用php的反转函数倒序输出字符串,如abc,反序输出cba function revstring($str){ for($i=strlen($str)-1; $i>=0; $i--){ echo $str{$i}; } } revstring('abc'); 25、常见端口 TCP 21端口:FTP 文件传输服务 SSH 22端口:SSH连接linux服务器,通过SSH连接可以远程管理Linux等设备 TCP 23端口:TELNET 终端仿真服务 TCP 25端口:SMTP 简单邮件传输服务 UDP 53端口:DNS 域名解析服务 TCP 80端口:HTTP 超文本传输服务 TCP 110端口:POP3 “邮局协议版本3”使用的端口 TCP 443端口:HTTPS 加密的超文本传输服务 TCP 1521端口:Oracle数据库服务 TCP 1863端口:MSN Messenger的文件传输功能所使用的端口 TCP 3389端口:Microsoft RDP 微软远程桌面使用的端口 TCP 5631端口:Symantec pcAnywhere 远程控制数据传输时使用的端口 UDP 5632端口:Symantec pcAnywhere 主控端扫描被控端时使用的端口 TCP 5000端口:MS SQL Server使用的端口 UDP 8000端口:腾讯QQ 26、linux常用的命令 top linux进程实时监控 ps 在Linux中是查看进程的命令。ps查看正处于Running的进程 mv 为文件或目录改名或将文件由一个目录移入另一个目录中。 find 查找文件 df 可显示所有文件系统对i节点和磁盘块的使用情况。 cat 打印文件类容 chmod 变更文件或目录的权限 chgrp 文件或目录的权限的掌控以拥有者及所诉群组来管理。可以使用chgrp指令取变更文件与目录所属群组 grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。 wc 为统计指定文件中的字节数、字数、行数,并将统计结果显示输出 27、对于大流量的网站,您采用什么样的方法来解决访问量问题 首先,确认服务器硬件是否足够支持当前的流量 其次,优化数据库访问。 第三,禁止外部的盗链。 第四,控制大文件的下载。 第五,使用不同主机分流主要流量 第六,使用流量分析统计软件 28、$_SERVER常用的字段 $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名 $_SERVER['SERVER_NAME'] #当前运行脚本所在服务器主机的名称 $_SERVER['REQUEST_METHOD'] #访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT” $_SERVER['QUERY_STRING'] #查询(query)的字符串 $_SERVER['HTTP_HOST'] #当前请求的 Host: 头部的内容 $_SERVER['HTTP_REFERER'] #链接到当前页面的前一页面的 URL 地址 $_SERVER['REMOTE_ADDR'] #正在浏览当前页面用户的 IP 地址 $_SERVER['REMOTE_HOST'] #正在浏览当前页面用户的主机名 $_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径名 $_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用 $_SERVER['REQUEST_URI'] #访问此页面所需的 URI。例如,“/index.html” 29、安装php扩展 进入扩展的目录 phpize命令得到configure文件 ./configure --with-php-config=/usr/local/php/bin/php-config make & make install 在php.ini中加入扩展名称.so 重启web服务器(nginx/apache) 30、php-fpm与nginx PHP-FPM也是一个第三方的FastCGI进程管理器,它是作为PHP的一个补丁来开发的,在安装的时候也需要和PHP源码一起编译,也就是说PHP-FPM被编译到PHP内核中,因此在处理性能方面更加优秀;同时它在处理高并发方面也比spawn-fcgi引擎好很多,因此,推荐Nginx+PHP/PHP-FPM这个组合对PHP进行解析。 FastCGI 的主要优点是把动态语言和HTTP Server分离开来,所以Nginx与PHP/PHP-FPM经常被部署在不同的服务器上,以分担前端Nginx服务器的压力,使Nginx专一处理静态请求和转发动态请求,而PHP/PHP-FPM服务器专一解析PHP动态请求 #fastcgi FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同时,FastCGI也被许多脚本语言所支持,其中就有PHP。 FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给HTTP服务器。这在处理高并发访问时,几乎是不可用的。另外传统的CGI接口方式安全性也很差,现在已经很少被使用了。 FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。 Nginx+FastCGI运行原理 Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。FastCGI接口在Linux下是socket,(这个socket可以是文件socket,也可以是ip socket)。为了调用CGI程序,还需要一个FastCGI的wrapper(wrapper可以理解为用于启动另一个程序的程序),这个wrapper绑定在某个固定socket上,如端口或者文件socket。当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接纳到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据发送给客户端,这就是Nginx+FastCGI的整个运作过程。 31、ajax全称“Asynchronous Javascript And XML”(异步JavaScript和XML)

小川游鱼 2019-12-02 01:41:29 0 浏览量 回答数 0

回答

PHP面试干货 1、进程和线程 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。 2、apache默认使用进程管理还是线程管理?如何判断并设置最大连接数? 一个进程可以开多个线程 默认是进程管理 默认有一个主进程 Linux: ps -aux | grep httpd | more 一个子进程代表一个用户的连接 Conf/extra/httpd-mpm.conf 多路功能模块 http -l 查询当前apache处于什么模式下 3、单例模式 单例模式需求:只能实例化产生一个对象 如何实现: 私有化构造函数 禁止克隆对象 提供一个访问这个实例的公共的静态方法(通常为getInstance方法),从而返回唯一对象 需要一个保存类的静态属性 class demo { private static $MyObject; //保存对象的静态属性 private function __construct(){ //私有化构造函数 } private function __clone(){ //禁止克隆 } public static function getInstance(){ if(! (self::$MyObject instanceof self)){ self::$MyObject = new self; } return self::$MyObject; } } 4、安装完Apache后,在http.conf中配置加载PHP文件以Apache模块的方式安装PHP,在文件http.conf中首先要用语句LoadModule php5_module "e:/php/php5apache2.dll"动态装载PHP模块,然后再用语句AddType application/x-httpd-php .php 使得Apache把所有扩展名为PHP的文件都作为PHP脚本处理 5、debug_backtrace()函数能返回脚本里的任意行中调用的函数的名称。该函数同时还经常被用在调试中,用来判断错误是如何发生的 function one($str1, $str2) { two("Glenn", "Quagmire"); } function two($str1, $str2) { three("Cleveland", "Brown"); } function three($str1, $str2) { print_r(debug_backtrace()); } one("Peter", "Griffin"); Array ( [0] => Array ( [file] => D:\www\test\result.php [line] => 9 [function] => three [args] => Array ( [0] => Cleveland [1] => Brown ) ) [1] => Array ( [file] => D:\www\test\result.php [line] => 5 [function] => two [args] => Array ( [0] => Glenn [1] => Quagmire ) ) [2] => Array ( [file] => D:\www\test\result.php [line] => 16 [function] => one [args] => Array ( [0] => Peter [1] => Griffin ) ) ) 6、输出用户的IP地址,并且判断用户的IP地址是否在192.168.1.100 — 192.168.1.150之间 echo $ip=getenv('REMOTE_ADDR'); $ip=str_replace('.','',$ip); if($ip<1921681150 && $ip>1921681100) { echo 'ip在192.168.1.100—–192.168.1.150之间'; } else { echo 'ip不在192.168.1.100—–192.168.1.150之间'; } 7、请将2维数组按照name的长度进行重新排序,按照顺序将id赋值 $tarray = array( array('id' => 0, 'name' => '123'), array('id' => 0, 'name' => '1234'), array('id' => 0, 'name' => '1235'), array('id' => 0, 'name' => '12356'), array('id' => 0, 'name' => '123abc') ); foreach($tarray as $key=>$val) { $c[]=$val['name']; } function aa($a,$b) { if(strlen($a)==strlen($b)) return 0; return strlen($a)>strlen($b)?-1:1; } usort($c,'aa'); $len=count($c); for($i=0;$i<$len;$i++) { $t[$i]['id']=$i+1; $t[$i]['name']=$c[$i]; } print_r($t); 8、表单数据提交方式POST和GET的区别,URL地址传递的数据最大长度是多少? POST方式提交数据用户不可见,是数据更安全,最大长度不受限制,而GET方式传值在URL地址可以看到,相对不安全,对大长度是2048字节。 9、SESSION和COOKIE的作用和区别,SESSION信息的存储方式,如何进行遍历 SESSION和COOKIE都能够使值在页面之间进行传递,SESSION存储在服务器端,数据更安全,COOKIE保存在客户端,用户使用手段可以进行修改,SESSION依赖于COOKIE进行传递的。Session遍历使用$_SESSION[]取值,cookie遍历使用$_COOKIE[]取值。 10、什么是数据库索引,主键索引,唯一索引的区别,索引的缺点是什么 索引用来快速地寻找那些具有特定值的记录。 主键索引和唯一索引的区别:主键是一种唯一性索引,但它必须指定为“PRIMARY KEY”,每个表只能有一个主键。唯一索引索引列的所有值都只能出现一次,即必须唯一。 索引的缺点: 1、创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。 2、索引需要占用物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,需要的空间就会更大。 3、当对表中的数据进行增加、删除、修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。 11、数据库设计时,常遇到的性能瓶颈有哪些,常有的解决方案 瓶颈主要有: 1、磁盘搜索 优化方法是:将数据分布在多个磁盘上 2、磁盘读/写 优化方法是:从多个磁盘并行读写。 3、CPU周期 优化方法:扩充内存 4、内存带宽 12、include和require区别 include引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码。 require引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码。 13、文件上传时设计到点 和文件上传有关的php.ini配置选项(File Uploads): file_uploads=On/Off:文件是否允许上传 upload_max_filesize上传文件时,单个文件的最大大小 post_max_size:提交表单时,整个post表单的最大大小 max_file_uploads =20上传文件的个数 内存占用,脚本最大执行时间也间接影响到文件的上传 14、header常见状态 //200 正常状态 header('HTTP/1.1 200 OK'); // 301 永久重定向,记得在后面要加重定向地址 Location:$url header('HTTP/1.1 301 Moved Permanently'); // 重定向,其实就是302 暂时重定向 header('Location: http://www.maiyoule.com/'); // 设置页面304 没有修改 header('HTTP/1.1 304 Not Modified'); // 显示登录框, header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Basic realm="登录信息"'); echo '显示的信息!'; // 403 禁止访问 header('HTTP/1.1 403 Forbidden'); // 404 错误 header('HTTP/1.1 404 Not Found'); // 500 服务器错误 header('HTTP/1.1 500 Internal Server Error'); // 3秒后重定向指定地址(也就是刷新到新页面与 <meta http-equiv="refresh" content="10;http://www.maiyoule.com/ /> 相同) header('Refresh: 3; url=http://www.maiyoule.com/'); echo '10后跳转到http://www.maiyoule.com'; // 重写 X-Powered-By 值 header('X-Powered-By: PHP/5.3.0'); header('X-Powered-By: Brain/0.6b'); //设置上下文语言 header('Content-language: en'); // 设置页面最后修改时间(多用于防缓存) $time = time() - 60; //建议使用filetime函数来设置页面缓存时间 header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT'); // 设置内容长度 header('Content-Length: 39344'); // 设置头文件类型,可以用于流文件或者文件下载 header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="example.zip"'); header('Content-Transfer-Encoding: binary'); readfile('example.zip');//读取文件到客户端 //禁用页面缓存 header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Pragma: no-cache'); //设置页面头信息 header('Content-Type: text/html; charset=iso-8859-1'); header('Content-Type: text/html; charset=utf-8'); header('Content-Type: text/plain'); header('Content-Type: image/jpeg'); header('Content-Type: application/zip'); header('Content-Type: application/pdf'); header('Content-Type: audio/mpeg'); header('Content-Type: application/x-shockwave-flash'); //.... 至于Content-Type 的值 可以去查查 w3c 的文档库,那里很丰富 15、ORM和ActiveRecord ORM:object relation mapping,即对象关系映射,简单的说就是对象模型和关系模型的一种映射。为什么要有这么一个映射?很简单,因为现在的开发语言基本都是oop的,但是传统的数据库却是关系型的。为了可以靠贴近面向对象开发,我们想要像操作对象一样操作数据库。还可以隔离底层数据库层,我们不需要关心我们使用的是mysql还是其他的关系型数据库 ActiveRecord也属于ORM层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简洁易懂。 ActiveRecord的主要思想是: 1. 每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field; 2. ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD;; 3. ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑; ActiveRecord比较适用于: 1. 业务逻辑比较简单,当你的类基本上和数据库中的表一一对应时, ActiveRecord是非常方便的,即你的业务逻辑大多数是对单表操作; 2. 当发生跨表的操作时, 往往会配合使用事务脚本(Transaction Script),把跨表事务提升到事务脚本中; 3. ActiveRecord最大优点是简单, 直观。 一个类就包括了数据访问和业务逻辑. 如果配合代码生成器使用就更方便了; 这些优点使ActiveRecord特别适合WEB快速开发。 16、斐波那契方法,也就是1 1 2 3 5 8 ……,这里给出两种方法,大家可以对比下,看看哪种快,以及为什么 function fibonacci($n){ if($n == 0){ return 0; } if($n == 1){ return 1; } return fibonacci($n-1)+fibonacci($n-2); } function fibonacci($n){ for($i=0; $i<$n; $i++){ $r[] = $i<2 ? 1 : $r[$i-1]+$r[$i-2]; } return $r[--$i]; } 17、约瑟夫环,也就是常见的数猴子,n只猴子围成一圈,每只猴子下面标了编号,从1开始数起,数到m那么第m只猴子便退出,依次类推,每数到m,那么那个位置的猴子退出,那么最后剩下的猴子下的编号是啥。 function yuesefu($n,$m) { $r=0; for($i=2; $i<=$n; $i++) { $r=($r+$m)%$i; } return $r+1; } 18、冒泡排序,大致是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束 function bubbleSort($arr){ for($i=0, $len=count($arr); $i<$len; $i++){ for($j=0; $j<$len; $j++){ if($arr[$i]<$arr[$j]){ $tmp = $arr[$j]; $arr[$j] = $arr[$i]; $arr[$i] = $tmp; } } } return $arr; } 19、快速排序,也就是找出一个元素(理论上可以随便找一个)作为基准,然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归快速排序,将其他n-1个元素也调整到排序后的正确位置。最后每个元素都是在排序后的正 确位置,排序完成。所以快速排序算法的核心算法是分区操作,即如何调整基准的位置以及调整返回基准的最终位置以便分治递归。 function quickSort($arr){ $len = count($arr); if($len <=1){ return $arr; } $key = $arr[0]; $leftArr = $rightArr= array(); for($i=1; $i<$len; $i++){ if($arr[$i] <= $key){ $leftArr[] = $arr[$i]; } else{ $rightArr[] = $arr[$i]; } } $leftArr = quickSort($leftArr); $rightArr = quickSort($rightArr); return array_merge($leftArr, array($key), $rightArr); } 20、(递归的)列出目录下所有文件及目录,这里也有两种方法 function listDir($path){ $res = dir($path); while($file = $res->read()){ if($file == '.' || $file == '..'){ continue; } if(is_dir($path . '/' .$file)){ echo $path . '/' .$file . "\r\n"; listDir($path . '/' .$file); } else{ echo $path . '/' .$file . "\r\n"; } } $res->close(); } function listDir($path){ if(is_dir($path)){ if(FALSE !== ($res = opendir($path))){ while(FALSE !== ($file = readdir($res))){ if($file == '.' || $file == '..'){ continue; } $subPath = $path . '/' . $file; if(is_dir($subPath)){ echo $subPath . "\r\n"; listDir($subPath); } else{ echo $subPath . "\r\n"; } } } } } 21、找出相对的目录,比如/a/b/c/d/e.php相对于/a/b/13/34/c.php是/c/d/ function ralativePath($a, $b){ $a = explode('/', dirname($a)); $b = explode('/', dirname($b)); $c = '/'; foreach ($a as $k=> $v){ if($v != $b[$k]){ $c .= $v . '/'; } } echo $c; } 22、快速找出url中php后缀 function get_ext($url){ $data = parse_url($url); return pathinfo($data['path'], PATHINFO_EXTENSION); } 23、正则题,使用正则抓取网页,以网页meta为utf8为准,若是抓取的网页编码为big5之类的,需要转化为utf8再收录 function preg_meta($meta){ $replacement = "\\1utf8\\6\\7"; $pattern = '#(<meta\s+http-equiv=(\'|"|)Content-Type(\'|"|)\s+content=(\'|"|)text/html; charset=)(\w+)(\'|"|)(>)#i'; return preg_replace($pattern, $replacement, $meta); } echo preg_meta("<meta http-equiv=Content-Type content='text/html; charset=big5'><META http-equiv=\"Content-Type\" content='text/html; charset=big5'>"); 24、不用php的反转函数倒序输出字符串,如abc,反序输出cba function revstring($str){ for($i=strlen($str)-1; $i>=0; $i--){ echo $str{$i}; } } revstring('abc'); 25、常见端口 TCP 21端口:FTP 文件传输服务 SSH 22端口:SSH连接linux服务器,通过SSH连接可以远程管理Linux等设备 TCP 23端口:TELNET 终端仿真服务 TCP 25端口:SMTP 简单邮件传输服务 UDP 53端口:DNS 域名解析服务 TCP 80端口:HTTP 超文本传输服务 TCP 110端口:POP3 “邮局协议版本3”使用的端口 TCP 443端口:HTTPS 加密的超文本传输服务 TCP 1521端口:Oracle数据库服务 TCP 1863端口:MSN Messenger的文件传输功能所使用的端口 TCP 3389端口:Microsoft RDP 微软远程桌面使用的端口 TCP 5631端口:Symantec pcAnywhere 远程控制数据传输时使用的端口 UDP 5632端口:Symantec pcAnywhere 主控端扫描被控端时使用的端口 TCP 5000端口:MS SQL Server使用的端口 UDP 8000端口:腾讯QQ 26、linux常用的命令 top linux进程实时监控 ps 在Linux中是查看进程的命令。ps查看正处于Running的进程 mv 为文件或目录改名或将文件由一个目录移入另一个目录中。 find 查找文件 df 可显示所有文件系统对i节点和磁盘块的使用情况。 cat 打印文件类容 chmod 变更文件或目录的权限 chgrp 文件或目录的权限的掌控以拥有者及所诉群组来管理。可以使用chgrp指令取变更文件与目录所属群组 grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。 wc 为统计指定文件中的字节数、字数、行数,并将统计结果显示输出 27、对于大流量的网站,您采用什么样的方法来解决访问量问题 首先,确认服务器硬件是否足够支持当前的流量 其次,优化数据库访问。 第三,禁止外部的盗链。 第四,控制大文件的下载。 第五,使用不同主机分流主要流量 第六,使用流量分析统计软件 28、$_SERVER常用的字段 $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名 $_SERVER['SERVER_NAME'] #当前运行脚本所在服务器主机的名称 $_SERVER['REQUEST_METHOD'] #访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT” $_SERVER['QUERY_STRING'] #查询(query)的字符串 $_SERVER['HTTP_HOST'] #当前请求的 Host: 头部的内容 $_SERVER['HTTP_REFERER'] #链接到当前页面的前一页面的 URL 地址 $_SERVER['REMOTE_ADDR'] #正在浏览当前页面用户的 IP 地址 $_SERVER['REMOTE_HOST'] #正在浏览当前页面用户的主机名 $_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径名 $_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用 $_SERVER['REQUEST_URI'] #访问此页面所需的 URI。例如,“/index.html” 29、安装php扩展 进入扩展的目录 phpize命令得到configure文件 ./configure --with-php-config=/usr/local/php/bin/php-config make & make install 在php.ini中加入扩展名称.so 重启web服务器(nginx/apache) 30、php-fpm与nginx PHP-FPM也是一个第三方的FastCGI进程管理器,它是作为PHP的一个补丁来开发的,在安装的时候也需要和PHP源码一起编译,也就是说PHP-FPM被编译到PHP内核中,因此在处理性能方面更加优秀;同时它在处理高并发方面也比spawn-fcgi引擎好很多,因此,推荐Nginx+PHP/PHP-FPM这个组合对PHP进行解析。 FastCGI 的主要优点是把动态语言和HTTP Server分离开来,所以Nginx与PHP/PHP-FPM经常被部署在不同的服务器上,以分担前端Nginx服务器的压力,使Nginx专一处理静态请求和转发动态请求,而PHP/PHP-FPM服务器专一解析PHP动态请求 #fastcgi FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同时,FastCGI也被许多脚本语言所支持,其中就有PHP。 FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给HTTP服务器。这在处理高并发访问时,几乎是不可用的。另外传统的CGI接口方式安全性也很差,现在已经很少被使用了。 FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。 Nginx+FastCGI运行原理 Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。FastCGI接口在Linux下是socket,(这个socket可以是文件socket,也可以是ip socket)。为了调用CGI程序,还需要一个FastCGI的wrapper(wrapper可以理解为用于启动另一个程序的程序),这个wrapper绑定在某个固定socket上,如端口或者文件socket。当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接纳到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据发送给客户端,这就是Nginx+FastCGI的整个运作过程。 31、ajax全称“Asynchronous Javascript And XML”(异步JavaScript和XML)

小川游鱼 2019-12-02 01:41:29 0 浏览量 回答数 0

问题

Android应用安全开发之浅谈网页打开APP

移动安全 2019-12-01 21:38:40 7991 浏览量 回答数 0

问题

移植到 Direct3D 11:报错 

kun坤 2020-06-04 21:07:16 6 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站