Below you will find pages that utilize the taxonomy term “网页优化”
July 24, 2010
X-Cache 和 X-Cache-Lookup headers 的解释
"X-Cache: 表示你的 http request 是由 proxy server 回的 . MISS 表 proxy无资料,代理动作, HIT 表 proxy 直接回应\nX-Pad: 這個是800 年前的 netscape bug 的因素才用的\n想象你在一个标准的透明代理80端口下,并且你正在访问一个运行了内部网络缓存(这样,又是一个代理)的站点。如果你查看HTTP headers查找某些信息,你能够找到像这样的2行,规定domain.tld 代表那个本地网站,proxy.local 代表你的内部的透明代理。\nX-Cache :HIT from proxy.domain.tld, MISS from proxy.local X-Cache-Lookup :HIT from proxy.domain.tld:3128, MISS from proxy.local:3128\n这2行是什么意思?如果这是你第一次访问那个站点(MISS from proxy.local),并且它的代理的缓存中有一个有效的网页(X-Cache HIT proxy.domain.tld)\n现在我们刷新了页面 …"
July 24, 2010
HTTP 1.1 中Transfer-Encoding chunked编码
"大多数的站点相应用户请求时发送的HTTP Headers中包含Content-Length头.此头信息定义在HTTP1.0协议 RFC 1945 10.4章节中.该信息是用来告知用户代理,通常意义上就是浏览器,服务端发送的文档内容长度.浏览器接受到此信息后,接收完Content-Length中定义的长度字节后开始解析页面.如果服务端有部分数据延迟发送,那么浏览器就会白屏.这样导致比较糟糕的用户体验.\n解决方法在HTTP1.1协议. RFC2616 中14.41章节中定义的Transfer-Encoding:chunked的头信息.chunked编码定义在3.6.1中.根据此定义浏览器不需要等到内容字节全部下载完成,只要接收到一个chunked块就可解析页面.并且可以下载html中定义的页面内容,包括js,css,image等.采用chunked编码有两种选择,一种是设定Server的IO buffer长度让Server自动flush buffer中的内容,另一种是手动调用IO中的flush函数。不同的语言IO中都有flush功能:\nphp: ob_flush(); flush(); …"
May 31, 2010
cookie-free域名提高网页效率-优化网站性能(yslow)
"YSlow给如何提高网页效率和优化网站性能提供了22条建议,其中有一条是关于域名的:Use cookie-free domains。\n使用 cookie-free domains 有什么好处呢?当用户浏览器发送一个静态文件,如图片image、CSS样式表文件时会同时发送同一个域名(或二级域名)下的cookies,但是网站服 务器对发送过来的cookies完全不予理会,因此这些没用的cookies白白浪费了网站带宽,影响网站加载速度和网页性能表现。YSlow建议为了解 决这个问题,就可以通过使用 cookie-free domains 的方法来做优化,从而提高网页效率。\n使用二级域名作为cookie-free domains\n通俗地说,所谓的 cookie-free domains 就是在浏览器发送静态内容的请求时不会发送cookies 的域名。YSlow提示可以申请注册一个二级域名专门用来储存这些静态图片、JS、静态CSS文件。\n在前面泛域名解析设置影响seo和Google PR值这里提到了www开头,形如www.haohtml.com的域名实际上也是属于二级域名。如果你的网站主域名 …"
May 30, 2010
网页优化-apache中文件有效期的设置-yslow
"前面我用已经启用了网页压缩功能,见 http://blog.haohtml.com/index.php/archives/3723,下面我们来对网页元素有效期进行设置。\n首先,启用LoadModule expires_module modules/mod_expires.so,只要在httpd.conf中把前面的#号去掉就可以了。然后在httpd.conf最后添加以下几行\nExpiresActive On\nExpiresDefault “access plus 10 years”\n重启apache,可以用firefox浏览器中的yslow插件查看最终效果,此时”add expires haders”项应该为A。表示配置成功."
May 29, 2010
meta http-equiv=”Cache-Control” content=”max-age=0″
"Cache-Control头域 Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache- Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max- stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、 no-store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含 义如下\nPublic指示响应可被任何缓存区缓存\nPrivate指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器 仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效\nno-cache指示请求或响应消息不能缓存\nno-store用于防止 重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。\nmax-age指示客户机可以接收生存期不大于指定时间(以秒为单 位)的响应\nmin-fresh指示客户机可以 …"
May 29, 2010
HTTP头的Expires与Cache-control
"Cache-control用于控制HTTP缓存(在HTTP/1.0中可能部分没实现,仅仅实现了 Pragma: no-cache)\n数据包中的格式:\nCache-Control: cache-directive\ncache-directive可以为以下:\nrequest时用到:\n| \u0026#34;no-cache\u0026#34; | \u0026#34;no-store\u0026#34; | \u0026#34;max-age\u0026#34; \u0026#34;=\u0026#34; delta-seconds | \u0026#34;max-stale\u0026#34; [ \u0026#34;=\u0026#34; delta-seconds ] | \u0026#34;min-fresh\u0026#34; \u0026#34;=\u0026#34; delta-seconds | \u0026#34;no-transform\u0026#34; | \u0026#34;only-if-cached\u0026#34; | \u0026#34;cache-extension\u0026#34; response时用到:\n| \u0026#34;public\u0026#34; | \u0026#34;private\u0026#34; [ \u0026#34;=\u0026#34; \u0026lt;\u0026#34;\u0026gt; field-name …"