<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>71街 &#187; CDN</title>
	<atom:link href="http://www.71j.cn/archives/tag/cdn/feed" rel="self" type="application/rss+xml" />
	<link>http://www.71j.cn</link>
	<description>杜工的技术博客</description>
	<lastBuildDate>Fri, 16 Dec 2011 03:52:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>操作页面刷新后，数据不能及时更新</title>
		<link>http://www.71j.cn/archives/37</link>
		<comments>http://www.71j.cn/archives/37#comments</comments>
		<pubDate>Tue, 01 Sep 2009 10:15:38 +0000</pubDate>
		<dc:creator>杜工</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[CDN]]></category>
		<category><![CDATA[url]]></category>
		<category><![CDATA[刷新]]></category>
		<category><![CDATA[跳转]]></category>

		<guid isPermaLink="false">http://71j.cn/?p=37</guid>
		<description><![CDATA[众所周知，刷新页面可以直接在html的head标签中使用如下代码： &#60;meta http-equiv=&#34;refresh&#34; content=&#34;1; URL=http://www.71j.cn&#34;&#62; 其中content中的数字1表示等待是时间(秒) 也可以使用php发送头消... ]]></description>
			<content:encoded><![CDATA[<p>众所周知，刷新页面可以直接在html的head标签中使用如下代码：</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">meta</span> <span style="color: #000066;">http-equiv</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;refresh&quot;</span> <span style="color: #000066;">content</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;1; URL=http://www.71j.cn&quot;</span>&gt;</span></pre></div></div>

<p>其中content中的数字1表示等待是时间(秒)</p>
<p>也可以使用php发送头消息：</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;location:http://71j.cn&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>甚至可以使用js中window.location.reload()方法，但是我们在开发过程中发现，因为浏览器或者CDN等带有的缓存机制会使页面刷新后，数据得不到刷新。</p>
<p>解决办法如下：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> autorefresh<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #003366; font-weight: bold;">var</span> s<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;&amp;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> href<span style="color: #339933;">=</span>window.<span style="color: #660066;">location</span>.<span style="color: #660066;">href</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>href.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;t=&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>href.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;?&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> s<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;?&quot;</span><span style="color: #339933;">;</span>
window.<span style="color: #660066;">location</span>.<span style="color: #660066;">href</span><span style="color: #339933;">+=</span>s<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;t=&quot;</span><span style="color: #339933;">+</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
window.<span style="color: #660066;">location</span>.<span style="color: #660066;">href</span> <span style="color: #339933;">=</span> href.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/t=[0-9]+/</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;t=&quot;</span><span style="color: #339933;">+</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>这样给url加上时间戳，可以有效解决本问题。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.71j.cn/archives/37/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CDN缓存策略FAQ</title>
		<link>http://www.71j.cn/archives/10</link>
		<comments>http://www.71j.cn/archives/10#comments</comments>
		<pubDate>Tue, 01 Sep 2009 04:04:31 +0000</pubDate>
		<dc:creator>杜工</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[CDN]]></category>
		<category><![CDATA[加速]]></category>
		<category><![CDATA[缓存]]></category>

		<guid isPermaLink="false">http://71j.cn/?p=10</guid>
		<description><![CDATA[1.CDN加速原理 通过动态域名解析，网友的请求被分配到离自己最快的服务器。CDN服务器直接返回缓存文件或通过专线代理原站的内容。 网络加速+内容缓存，有效提供访问速度 2.CDN节点数量 全... ]]></description>
			<content:encoded><![CDATA[<p>1.CDN加速原理<br />
   通过动态域名解析，网友的请求被分配到离自己最快的服务器。CDN服务器直接返回缓存文件或通过专线代理原站的内容。<br />
   网络加速+内容缓存，有效提供访问速度</p>
<p>2.CDN节点数量<br />
   全国多个机房，每个机房多台服务器，CDN节点一般上百台</p>
<p>3.CDN缓存什么内容<br />
   缓存html、图片、css、xml等静态资源，不缓存含有？的动态地址、jsp、php，js文件也不缓存【除非特殊设置】<br />
   缓存原站返回HTTP状态为20*或304，不缓存其他状态(例如404，500，503)</p>
<p>4.CDN缓存内容的更新<br />
   a）用户首次请求，CDN从原站抓取后缓存，直到文件过期后有用户请求再次更新<br />
   b）程序主动通知CDN抓取</p>
<p>5.CDN缓存内容的有效期<br />
   a）原站apache吐出的静态文件：由apache的expire和header模块控制<br />
	主要两项：last-modified，cache-control：max-age<br />
	apache缺省配置，所有静态文件在cdn只缓存3600s【需要我们按需求调整被加速服务器的apache设置】<br />
	3600s后cdn失效，用户访问时会重新请求原站，如果没有变化，缓存失效周期自动延长10%。<br />
   b）原站jsp或php吐出的动态内容（url形式必须是静态的）<br />
	由程序控制last-modified，cache-control：max-age public ，apache的设置将不起作用<br />
	cdn根据这两项判断是否需要到原站更新内容</p>
<p>6.CDN和应用的结合策略<br />
   a）变化不频繁的页面：例如图吧的图片显示页、车型页、已结束的比赛对阵页<br />
       在原站生成静态页面，原站apache上定义过期时间，例如1天。<br />
       原站上静态文件更新后，可以等待cdn过期。或者主动通知cdn更新（随着cdn节点越来越多，代价会非常高）<br />
   b）变化频繁的页面：例如足球库中的及时亚盘、及时欧赔、正在进行的比赛对阵页<br />
       不生成静态页面，由jsp或php定义过期时间，例如5s或60s。cdn过期后，如果有用户访问就从原站上抓取。<br />
       优点：相关页面内容更新后，不需要主动通知100个原站都来抓取，有效降低原站的压力。<br />
       如果页面内容没有变化，返回lastmodified不变，这样原站会直接返回304给cdn，cdn也会返回304给用户。减少网络传输和速度<br />
       比赛结束后，“正在进行的比赛对阵页”转换为第一类情况，再生成静态文件<br />
   c）特殊静态资源：例如图片库和某些大型产品库中的评论js<br />
      或者频繁访问、频繁更新的页面：例如足球赛事库的及时比分文件<br />
       通过apache nocache告诉IE不缓存，html中就不需要使用pinglun.js?123456这样的代码形式<br />
       然后用max-age告诉cdn缓存1s，这样避免每次用户请求都转到原站</p>
]]></content:encoded>
			<wfw:commentRss>http://www.71j.cn/archives/10/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

