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