header("content-type:image/jpeg");
readfile(图片地址);这样输出图片,发现浏览器端没有缓存,每次请求都是200,看别的网站的图片访问一次后都是304,请问怎么设置缓存呀
是apache

解决方案 »

  1.   

    header("content-type:image/jpeg");
    header("cache-cotrol: must-revalidate");
    readfile(图片地址);但是瀏覽器的設置仍然可以強制不使用緩存。
      

  2.   

    在连接的后面加一个随机数**.jpg?id=随机数
      

  3.   


    这个功能不要在代码里设置缓存,而应该是在WEB服务器上设置,可以在APACHE、NGINX、IIS等WEB SERVERh 进行设置
      

  4.   

    各种网页图片缓存控制设置方法2010.12.29WordPress博客里大量的图片会使页面加载速度变得缓慢。 此时访问者需要用更多时间才能打开一个页面。 不过我们可以通过缓存图片来解决这个问题。 当页面第一次被加载时,将所有图片存放在浏览器的缓存池里。 之后访问者再加载该页面时,浏览器就可以从浏览器缓存中获取图片,从而减少页面加载时间。对Apache服务器上的WordPress博客/网站,可以通过编辑根目录下的.htaccess文件来激活图片缓存功能。 浏览器能够简单读取.htaccess文件的缓存控制头,而缓存头会要求浏览器将图片或其它任何媒体保留2周时间(或者更久),这样浏览器就能够随时调用 图片,直到图片过期。 两周后浏览器重新将过期的图片存入缓存。 万一浏览器缓存被清空,浏览器会从缓存中重新加载图片或其它媒体。下面就是对如何在WordPress博客/网站上激活图片缓存的过程详解。如果你希望提高网站的运行效率,就应该启用网络服务器上的图片缓存功能。 详细步骤如下:
    注意:做任何改动前请先备份网站数据域.htaccess文件。1. (在FTP中)打开根目录下的.htaccess文件
    2. 在.htaccess文件中加入如下代码:   1: # Image and Flash content Caching for One Month
       2: <FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf)$">
       3: Header set Cache-Control "max-age=2592000"
       4: </FilesMatch>
    3. 编辑完毕后保存文件。 代码中“max-age”参数的值为2592000(秒),因此图片缓存和Flash内容缓存在浏览器中保留一个月。如果这个方法能够奏效,你的网站访问速度将会有很大改善。下面是一些关于缓存的知识,不嫌长可看:缓存位于 服务器之间,客户端之间
    根据请求保存输出内容的副本,如html页面,图片,文件,当下一个请求来到时,如果相同的URL,直接使用副本响应访问请求,而不向源服务器再次发送请求。使用缓存的优点
    让网站运行的更快
    .减少延迟,  从缓存服务器而不是源服务器,过程耗时少,
    .减少网络带宽消耗 ,副本被重用,减低客户端的带宽消耗;客户可以节省带宽费用,控制带宽的需求,更易管理。缓存的类型1.浏览器缓存
    新一代的Web浏览器,都能在设置中发现关于缓存的设置,通过在电脑硬盘存储已经看过的网站的副本。规则
    在同一个会话过程中(在当前浏览器没有被关闭之前)会检查一次并确定缓存的副本足够新。
    如果浏览过程中访问到同一个图片,这些图片可以从浏览器缓存中调出而即时显现。2.代理服务器缓存
    Web代理服务器使用同样的缓存原理,代理服务器群为成百上千用户服务使用同样的机制;代理服务器缓存是共享缓存,为大量用户使用,因此在减少相应时间和带宽使用方面很有效,同一个副本会被重用多次。3.网关缓存
    也称为反向代理缓存或间接代理缓存
    网关缓存也是一个中间服务器,和内网管理员部署缓存用于节省带宽不同:网关缓存一般是网站管理员自己部署:让他们的网站更容易扩展并获得更好的性能;
    请求有几种方法被路由到网关缓存服务器上:其中典型的是让用一台或多台负载均衡服务器从客户端看上去是源服务器;网络内容发布商 (Content delivery networks CDNs)分布网关缓存到整个(或部分)互联网上,并出售缓存服务给需要的网站,Speedera 和Akamai ,BT 就是典型的网络内容发布商(下文简称CDN)。怎样配置服务器的内容将被如何缓存CDN的网关缓存为希望被缓存的网站服务
    如果良好地规划了的网站,缓存会有助于网站服务更快,并节省服务器负载和互联网的链接请求。
    这个改善是显著的:有缓存的网站页面几乎是即时显现:用户更喜欢速度快的网站并更经常的访问;代理服务器和浏览器都回启用缓存,会按照缺省或者缓存管理员的策略进行缓存。缓存如何工作
    规则在协议中有定义(HTTP协议1.0和1.1),一些规则由缓存的管理员设置(浏览器的用户或者代理服务器的管理员);基本的规则如果响应头信息:告诉缓存器不要保留缓存,缓存器就不会缓存相应内容;
    如果请求信息是需要认证或者安全加密的,相应内容也不会被缓存;
    如果在回应中不存在校验器(ETag或者Last-Modified头信息),缓存服务器会认为缺乏直接的更新度信息,内容将会被认为不可缓存。一个缓存的副本如果含有以下信息,内容将会被认为是足够新的
    含有完整的过期时间和寿命控制头信息,并且内容仍在保鲜期内;
    浏览器已经使用过缓存副本,并且在一个会话中已经检查过内容的新鲜度;
    缓存代理服务器近期内已经使用过缓存副本,并且内容的最后更新时间在上次使用期之前;
    够新的副本将直接从缓存中送出,而不会向源服务器发送请求;
    如果缓存的副本已经太旧了,缓存服务器将向源服务器发出请求校验请求,用于确定是否可以继续使用当前拷贝继续服务;