类别:LINUX / GNU / 日期:2020-04-02 / 浏览:1322 / 评论:0

    Cache-Control 是最重要的规则。这个字段用于指定所有缓存机制在整个请求/响应链中必须服从的指令。这些指令指定用于阻止缓存对请求或响应造成不利干扰的行为。这些指令通常覆盖默认缓存算法。缓存指令是单向的,即请求中存在一个指令并不意味着响应中将存在同一个指令。

    无论是Apache或Nginx都不应该缓存页面,只适合用于缓存静态资源。

Apache&Nginx缓存头部设置  http apache nginx location Ifmodule 第1张

#nocache:不缓存(比如:表单信息被清除),但公共变量可以缓存
#private:私有方式缓存(比如:表单信息被保留,但在生存期内有效)
#private_no_cache:私有方式但不过期(表单信息被保留)
#publice:公有方式,(表单信息也被保留)

    Apache例子设置如下:

<IfModule expires_module>
ExpiresActive on 
ExpiresByType image/svg+xml A31536000
#ExpiresByType application/rss+xml A31536000
#ExpiresByType application/xhtml+xml A31536000
#ExpiresByType application/atom_xml A31536000
</IfModule>

<FilesMatch "\.(bmp|png|gif|jpg|jpeg|svg|svgz|ico|webp)$">
#Header set Cache-Control "max-age=31536000"
Header set Cache-Control "max-age=31536000, public"
</FilesMatch>

<FilesMatch "\.(mp3|mp4|avi|mpg|mpeg|rm|rmvb|mov|wmv|wma|swf|flv)$">
#Header set Cache-Control "max-age=31536000"
Header set Cache-Control "max-age=31536000, public"
</FilesMatch>

<FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$">
#Header set Cache-Control "max-age=31536000"
Header set Cache-Control "max-age=31536000, public"
</FilesMatch>

    Nginx例子设置如下:

    location ~ .*\.(bmp|png|gif|jpg|jpeg|svg|svgz|ico|webp)$
    {
        expires      356d;
    }
    location ~ .*\.(mp3|mp4|avi|mpg|mpeg|rm|rmvb|mov|wmv|wma|swf|flv)$
    {
        expires      356d;
    }

    location ~ .*\.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)?$
    {
        expires      356d;
    }

    关于HTTP状态码之200和304 

    HTTP状态码(HTTP Status Code)是一种表示网页服务器响应状态的三位数字编码。通过这些数字,可以简化状态的表达。状态码有几十种,其中首位数字为1-5。根据这5个数字,状态码可以分为5类。1开头的表示请求正在处理;2开头请求已经成功处理;3开头表示重定向;4开头表示请求错误;5开头表示服务器错误。

    在嗅探抓包过程中,常见的有两种200和304。这两个状态码都关系到能否获取重要信息。当客户第一次请求服务器资源,服务器成功返回资源,这时状态码为200。所以,状态码为200的数据包往往包含用户从服务器获取的数据。

    每个资源请求完成后,通常会被缓存在客户端,并会记录资源的有效时间和修改时间。当客户再次请求该资源,客户端首先从缓存中查找该资源。如果该资源存在,并且在有效期,则不请求服务器,就不会产生对应的请求数据包。

    如果不在有效期,客户端会请求服务器,重新获取。服务器会判断修改时间,如果没有修改过,就会返回状态码304,告诉客户端该资源仍然有效,客户端会直接使用缓存的资源。针对304的响应,渗透人员可以分析对应的请求包,获取资源路径。如果该资源不限制访问,就可以直接请求获取。否则,就需要进行Cookie劫持,进行获取。

赞助

感谢您的打赏~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用 / Article Is Not Licensed Under Any Creative Commons License, And You May Freely Reprint Or Use It In Any Form

 可能感兴趣的文章

伤心叹戈

评论区

发表评论 / 取消回复

必填

选填

选填

◎欢迎讨论,请在这里发表您的看法及观点。