常见问题解答 缓存可用的最重要事情是?
我该如何利用缓存让我的页面尽可能的快?
我知道缓存是个好东西,但是我想随时知道多少人访问了我的网页!
请注意,即使这样也不能给出你用户的精确统计,并且对通过互联网访问的用户也不是很友好:产生不必要的流量,并强迫用户等待未被缓存的内容从网络上下载回来。更多的信息可参见拓展阅读中的“解读访问统计”对应内容。 我该如何查看HTTP头?
表示要看到完整的头,您可以使用Telnet⑪客户端手动连接到Web服务器上。 为此,你可能需要用一个字段指定端口(默认是80),或者连接到www.:80或者www. 80(注意是空格),更多设置请参考一下telnet客户端的文档。 一旦连接到该网站,输入请求。比如,你想查看http://www./foo.html的头信息,首先连接到www., 使用80端口,并输入: GET /foo.html HTTP/1.1 [return]Host: www. [return][return] [return]等同敲回车键,最后输入两次确认。这样就会输出头信息,然后跟着实际内容。如果只想看到头信息,使用HEAD来替换GET. ⑪Telnet:Telnet协议是TCP/IP协议族中 的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。 我的页面是密码保护的,代理缓存是怎么处理的?
如果你希望这些缓存的页面在用户查看之前还要验证一下,可以组合使用Cache-Control: public和no-cache头,这相对于告诉缓存器它从缓存中送出内容前必须递交客户端的验证给原始服务器。这个头信息如下所示: Cache-Control: public, no-cache 不管怎么,这是最小化验证最好的方法;例如,你的图片不敏感,你可以把它放在分离的目录中,并配置你的服务对它们不做强制验证。这样,那些图片就会很自然的被缓存了。 如果人们通过缓存访问我的网站,我应该担心安全吗?
事实上,任何网络管理员都可以收集你的客户端和服务器端之间的这类信息。CGI ⑫脚本有个漏洞,会把用户名和密码放在自身的URL地址中,这很容易让其他人发现用户的登陆信息。 如果你懂得互联网安全的些基本机制,就不会对代理缓存感到任何惊讶。 ⑫CGI:通用网关接口(Common Gateway Interface). 用于初始化软件服务的服务器方接口。这套接口描述了Web服务器与同一计算机上的软件的通信方式。 通用网关接口,它是一段程序,运行在服务器上,提供同客户端HTML页面的接口,通俗的讲CGI就像是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器,再把服务器执行的结果返还给HTML页;用CGI可以实现处理表格,数据库查询,发送电子邮件等许多操作,最常见的CGI程序就是计数器。CGI使网页变得不是静态的,而是交互式的。 我在寻找一个集成的Web发布解决方案。哪些是可缓存的?
我的图片缓存一个月后才到期,我现在就想变动!
最有效的方法是修改链接,这样会从源服务器获取完整的新内容。请记住,调用图片的这个页面也会被缓存的,正因如此,我们需要让图片以及其他类似的静态资源易缓存,而页面呢可以随着自身的改变(例如改变了一个图片的URL地址Add)即时更新。 如果你想摆脱特定缓存,重载内容,可以试试强制刷新(在FireFox中,shift键+reload按钮等同于处理Pragma: no-cache请求头)或者让缓存管理员使用某些接口删除内容。 我运行一个Web Hosting服务。我怎样才能让我的用户发布缓存友好的网页?
否则你需要在每一个虚拟主机上为各种缓存属性建立预定的区域。比如:你可以指定一个叫/cache-1m的目录用来放读取后要缓存一个月的内容,然后再建一个/no-cache的目录,并在头信息中指定这么目录中的内容不被缓存。 不管上面你做的如何,总之最好优先给用户量大的客户做缓存处理。大部分服务器节约的流量以及负载都是来自高容量的网站。 我明明告诉网页要好好缓存,但它老是去请求,怎么破?
(未完待续) |
|