高级前端http【Q116】http 服务中静态文件的 Last-Modified 是根据什么生成的

http 服务中静态文件的 Last-Modified 是根据什么生成的

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 117

Author 回答者: shfshanyue

一般会选文件的 mtime,表示文件内容的修改时间

nginx 也是这样处理的,源码见: ngx_http_static_module.c

    r->headers_out.status = NGX_HTTP_OK;
    r->headers_out.content_length_n = of.size;
    r->headers_out.last_modified_time = of.mtime;

关于为什么使用 mtime 而非 ctime,可以参考 #116

Author 回答者: feefeefee

针对静态资源而言,一般会选择文件的 mtime 元属性作为上次修改时间,该元属性表示文件内容的修改时间,在linux中可以用stat命令来查看文件属性,其中就包括了mtime和ctime。mtime指的是文件内容修改时间,而ctime指的是文件修改时间