Jadual Kandungan
回复内容:
参考
Rumah pembangunan bahagian belakang tutorial php 出现http 200 from cache的诡异问题

出现http 200 from cache的诡异问题

Sep 05, 2016 am 08:59 AM
apache nginx php

所用浏览器:Pc端chrome、手机里的各种浏览器
访问同一个这样的url地址:http://xxx.aaa.bbb.com/ship.html

在测试环境中:有的同学访问了这个地址,再次访问时,页面仍然显示的是上次访问该页面时的数据,并不是最新数据。查看其http,有几个重要的参数如下:200、from cache。而有的同学每次访问这个地址,页面都是最新数据,查看其http的重要几个参数,没有出现from cache。

from cache 懂些,搞不懂的是访问同一台服务器为什么有的同学访问时出现from cache,而有的同学访问时都是从服务器加载最新的页面数据。这跟什么有关,什么影响了它?

注:

  • 在正式的线上环境,不存在此问题,访问正常,每次都是从服务器加载最新的页面数据。

  • ship.html并不是直正的静态页面,是伪静态。

  • 已经设置过了如下头:
    <meta http-equiv="Expires" content="-1">
    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Pragma" content="no-cache">

回复内容:

所用浏览器:Pc端chrome、手机里的各种浏览器
访问同一个这样的url地址:http://xxx.aaa.bbb.com/ship.html

在测试环境中:有的同学访问了这个地址,再次访问时,页面仍然显示的是上次访问该页面时的数据,并不是最新数据。查看其http,有几个重要的参数如下:200、from cache。而有的同学每次访问这个地址,页面都是最新数据,查看其http的重要几个参数,没有出现from cache。

from cache 懂些,搞不懂的是访问同一台服务器为什么有的同学访问时出现from cache,而有的同学访问时都是从服务器加载最新的页面数据。这跟什么有关,什么影响了它?

注:

  • 在正式的线上环境,不存在此问题,访问正常,每次都是从服务器加载最新的页面数据。

  • ship.html并不是直正的静态页面,是伪静态。

  • 已经设置过了如下头:
    <meta http-equiv="Expires" content="-1">
    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Pragma" content="no-cache">

如果服务器没有明确定义缓存控制,不同的客户端可能会有不同的缓存机制。
如果你希望用户每次获取最新数据可以这样设置 meta tag :

<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
Salin selepas log masuk

设置meta tag只对html页面有效,更好的方法是在 http 响应头中设置缓存控制:

Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0
Salin selepas log masuk

php设置 http 响应头的代码:

header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1.
header("Pragma: no-cache"); // HTTP 1.0.
header("Expires: 0"); // Proxies.
Salin selepas log masuk

使用缓存有利于加快页面加载速度和减少资源消耗,你应该根据具体情况调整缓存策略。

参考

http://stackoverflow.com/ques...
http://stackoverflow.com/ques...

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Tarikh dan Masa CakePHP

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Konfigurasi Projek CakePHP

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Muat naik Fail CakePHP

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Penghalaan CakePHP

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

Bincangkan CakePHP

Panduan Ringkas CakePHP Panduan Ringkas CakePHP Sep 10, 2024 pm 05:27 PM

Panduan Ringkas CakePHP

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP

See all articles