V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
ruitang
V2EX  ›  PHP

知乎网站是如何做到无缓存的情况下,每个页面响应速度这么快的呢?

  •  
  •   ruitang · Apr 19, 2015 · 5137 views
    This topic created in 4030 days ago, the information mentioned may be changed or developed.

    知乎网站的响应头有一个:
    Cache-Control:private, no-store, max-age=0, no-cache, must-revalidate, post-check=0, pre-check=0
    表示不缓存

    但是知乎的每一个页面打开速度都非常快,是怎么做到的呢?

    3 replies    2015-04-21 16:02:59 +08:00
    hitsmaxft
        1
    hitsmaxft  
       Apr 19, 2015 via iPhone
    这是浏览器端缓存控制,你第一次打开还是得服务器端运算,跟打开快没关系。

    另外知乎什么时候很快过。。。
    futursolo
        2
    futursolo  
       Apr 19, 2015   ❤️ 1
    Tornado(知乎就是基于这个Web Framework的)的主动式文件缓存和异步操作起到了很大的作用。
    知乎应该是缓存静态文件的,但是动态页面并不缓存。
    你打开Chrome的开发者工具之后再刷新知乎的页面,可以看到静态内容几乎全都是304。
    neilwong
        3
    neilwong  
       Apr 21, 2015
    一般来说:
    图片是缓存到本地的
    css和js也缓存到本地,需要修改时通过修改html里的引用链接来强制刷缓存。
    html一般不缓存在本地。不过会把接口数据缓存在memcache中,然后动态生成页面返回

    比较耗时的只是一些接口请求,一个页面可能包含多个接口,接口又涉及到数据库查询,无法保证返回时间,所以把接口的数据缓存起来,就能保证页面很快的返回了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2426 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 05:25 · PVG 13:25 · LAX 22:25 · JFK 01:25
    ♥ Do have faith in what you're doing.