Rumah pembangunan bahagian belakang tutorial php 利用客户端缓存对网站进行优化的原理分析_PHP

利用客户端缓存对网站进行优化的原理分析_PHP

Jun 01, 2016 pm 12:24 PM
pelanggan cache Pengoptimuman laman web

很多人首先会想从服务器缓存方面着手对程序进行优化,许多不同的服务器缓存方式都有他们自己的特点,像我曾经参与的一些项目中,根据缓存的命中率不同使用过 Com+/Enterprise Libiary Caching/Windows服务,静态文件等方式的服务器端缓存和 HTTP Compression技术,但客户端缓存往往却被人们忽略了,即使服务器的缓存让你的页面访问起来非常地快,但她依然需要依赖浏览器下载并输出,而当你加入客户端缓存时,会给你带来非常多的好处.因为她可以对站点中访问最频繁的页进行缓存充分地提高 Web 服务器的吞吐量(通常以每秒的请求数计算)以提升应用程序性能和可伸缩性。
一个在线购物调查显示,大多数人愿意去商店排队,但在在线购物时却不愿意等待。Websense调查公司称多达70%的上网者表示不愿意在页面读取上超过10秒钟。超过70%的人会因为中途速度过慢而取消当前的订单。


基础知识
1) 什么是”Last-Modified”?

在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记此文件在服务期端最后被修改的时间,格式类似这样:

Last-Modified: Fri, 12 May 2006 18:53:33 GMT

客户端第二次请求此URL时,根据 HTTP 协议的规定,浏览器会向服务器传送 If-Modified-Since 报头,询问该时间之后文件是否有被修改过:

If-Modified-Since: Fri, 12 May 2006 18:53:33 GMT

如果服务器端的资源没有变化,则自动返回 HTTP 304 (Not Changed.)状态码,内容为空,这样就节省了传输数据量。当服务器端代码发生改变或者重启服务器时,则重新发出资源,返回和第一次请求时类似。 从而保证不向客户端重复发出资源,也保证当服务器有变化时,客户端能够得到最新的资源。

2) 什么是”Etag”?

HTTP 协议规格说明定义ETag为“被请求变量的实体值” (参见 —— 章节 14.19)。 另一种说法是,ETag是一个可以与Web资源关联的记号(token)。典型的Web资源可以一个Web页,但也可能是JSON或XML文档。服务器单独负责判断记号是什么及其含义,并在HTTP响应头中将其传送到客户端,以下是服务器端返回的格式:

ETag: "50b1c1d4f775c61:df3"

客户端的查询更新格式是这样的:

If-None-Match: W/"50b1c1d4f775c61:df3"

如果ETag没改变,则返回状态304然后不返回,这也和Last-Modified一样。本人测试Etag主要在断点下载时比较有用。


Last-Modified和Etags如何帮助提高性能?
聪明的开发者会把Last-Modified 和ETags请求的http报头一起使用,这样可利用客户端(例如浏览器)的缓存。因为服务器首先产生 Last-Modified/Etag标记,服务器可在稍后使用它来判断页面是否已经被修改。本质上,客户端通过将该记号传回服务器要求服务器验证其(客户端)缓存。
过程如下:
1. 客户端请求一个页面(A)。
2. 服务器返回页面A,并在给A加上一个Last-Modified/ETag。
3. 客户端展现该页面,并将页面连同Last-Modified/ETag一起缓存。
4. 客户再次请求页面A,并将上次请求时服务器返回的Last-Modified/ETag一起传递给服务器。
5. 服务器检查该Last-Modified或ETag,并判断出该页面自上次客户端请求之后还未被修改,直接返回响应304和一个空的响应体。

下面的例子描述如何使用服务器端代码去操作客户端缓存:

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat 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)

Di manakah fail video disimpan dalam cache penyemak imbas? Di manakah fail video disimpan dalam cache penyemak imbas? Feb 19, 2024 pm 05:09 PM

Dalam folder manakah penyemak imbas menyimpan video tersebut Apabila kita menggunakan pelayar Internet setiap hari, kita sering menonton pelbagai video dalam talian, seperti menonton video muzik di YouTube atau menonton filem di Netflix. Video ini akan dicache oleh penyemak imbas semasa proses pemuatan supaya ia boleh dimuatkan dengan cepat apabila dimainkan semula pada masa hadapan. Jadi persoalannya, dalam folder manakah video yang dicache ini sebenarnya disimpan? Pelayar yang berbeza menyimpan folder video cache di lokasi yang berbeza. Di bawah ini kami akan memperkenalkan beberapa pelayar biasa dan mereka

Pelanggan VMware Horizon tidak boleh dibuka [Betulkan] Pelanggan VMware Horizon tidak boleh dibuka [Betulkan] Feb 19, 2024 pm 11:21 PM

VMware Horizon Client membantu anda mengakses desktop maya dengan mudah. Walau bagaimanapun, kadangkala infrastruktur desktop maya mungkin mengalami masalah permulaan. Artikel ini membincangkan penyelesaian yang boleh anda ambil apabila klien VMware Horizon gagal dimulakan dengan jayanya. Mengapa klien VMware Horizon saya tidak boleh dibuka? Apabila mengkonfigurasi VDI, ralat mungkin berlaku jika klien VMWareHorizon tidak dibuka. Sila sahkan bahawa pentadbir IT anda telah memberikan URL dan bukti kelayakan yang betul. Jika semuanya baik-baik saja, ikuti penyelesaian yang dinyatakan dalam panduan ini untuk menyelesaikan isu tersebut. Betulkan Klien VMWareHorizon Tidak Dibuka Jika VMW tidak dibuka pada komputer Windows anda

Pelanggan VMware Horizon membeku atau terhenti semasa menyambung [Betulkan] Pelanggan VMware Horizon membeku atau terhenti semasa menyambung [Betulkan] Mar 03, 2024 am 09:37 AM

Apabila menyambung ke VDI menggunakan klien VMWareHorizon, kami mungkin menghadapi situasi di mana aplikasi membeku semasa pengesahan atau blok sambungan. Artikel ini akan meneroka isu ini dan menyediakan cara untuk menyelesaikan situasi ini. Apabila klien VMWareHorizon mengalami masalah pembekuan atau sambungan, terdapat beberapa perkara yang boleh anda lakukan untuk menyelesaikan isu tersebut. Betulkan klien VMWareHorizon membeku atau tersekat semasa menyambung Jika klien VMWareHorizon membeku atau gagal menyambung pada Windows 11/10, ikuti penyelesaian yang dinyatakan di bawah: Semak sambungan rangkaian Mulakan semula klien Horizon Semak status pelayan Horizon Kosongkan cache klien Betulkan Ho

Bagaimana untuk melihat dan menyegarkan cache dns dalam Linux Bagaimana untuk melihat dan menyegarkan cache dns dalam Linux Mar 07, 2024 am 08:43 AM

DNS (DomainNameSystem) ialah sistem yang digunakan di Internet untuk menukar nama domain kepada alamat IP yang sepadan. Dalam sistem Linux, cache DNS ialah mekanisme yang menyimpan hubungan pemetaan antara nama domain dan alamat IP secara tempatan, yang boleh meningkatkan kelajuan resolusi nama domain dan mengurangkan beban pada pelayan DNS. Caching DNS membolehkan sistem mendapatkan semula alamat IP dengan pantas apabila kemudiannya mengakses nama domain yang sama tanpa perlu mengeluarkan permintaan pertanyaan kepada pelayan DNS setiap kali, dengan itu meningkatkan prestasi dan kecekapan rangkaian. Artikel ini akan membincangkan dengan anda cara melihat dan memuat semula cache DNS pada Linux, serta butiran yang berkaitan dan kod sampel. Kepentingan Caching DNS Dalam sistem Linux, cache DNS memainkan peranan penting. kewujudannya

Panduan Pembangunan Klien PHP MQTT Panduan Pembangunan Klien PHP MQTT Mar 27, 2024 am 09:21 AM

MQTT (MessageQueuingTelemetryTransport) ialah protokol penghantaran mesej ringan yang biasa digunakan untuk komunikasi antara peranti IoT. PHP ialah bahasa pengaturcaraan sisi pelayan yang biasa digunakan yang boleh digunakan untuk membangunkan klien MQTT. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan klien MQTT dan memasukkan kandungan berikut: Konsep asas protokol MQTT Pemilihan dan contoh penggunaan perpustakaan klien PHPMQTT: Menggunakan klien PHPMQTT untuk menerbitkan dan

Bagaimana untuk menyelesaikan masalah bahawa halaman web Baidu Netdisk tidak dapat memulakan klien? Bagaimana untuk menyelesaikan masalah bahawa halaman web Baidu Netdisk tidak dapat memulakan klien? Mar 13, 2024 pm 05:00 PM

Apabila ramai rakan memuat turun fail, mereka mula-mula akan menyemak imbas di halaman web dan kemudian memindahkan kepada klien untuk memuat turun. Tetapi kadangkala pengguna akan menghadapi masalah bahawa halaman web Baidu Netdisk tidak boleh memulakan klien. Sebagai tindak balas kepada masalah ini, editor telah menyediakan penyelesaian untuk anda menyelesaikan masalah yang halaman web Baidu Netdisk tidak boleh memulakan pelanggan yang memerlukan boleh merujuk kepadanya. Penyelesaian 1. Mungkin Baidu Netdisk bukan versi terkini Buka klien Baidu Netdisk secara manual, klik butang tetapan di penjuru kanan sebelah atas, dan kemudian klik naik taraf versi. Jika tiada kemas kini, gesaan berikut akan muncul Jika terdapat kemas kini, sila ikut gesaan untuk mengemas kini. 2. Program perkhidmatan pengesanan Baidu Cloud Disk mungkin dilumpuhkan secara manual atau menggunakan perisian keselamatan untuk melumpuhkan program perkhidmatan pengesanan Baidu Cloud Disk secara automatik. Sila semak

Adakah fail HTML akan dicache? Adakah fail HTML akan dicache? Feb 19, 2024 pm 01:51 PM

Tajuk: Mekanisme caching dan contoh kod fail HTML Pengenalan: Semasa menulis halaman web, kita sering menghadapi masalah cache penyemak imbas. Artikel ini akan memperkenalkan mekanisme caching fail HTML secara terperinci dan menyediakan beberapa contoh kod khusus untuk membantu pembaca memahami dan menggunakan mekanisme ini dengan lebih baik. 1. Prinsip caching pelayar Dalam penyemak imbas, apabila halaman web diakses, penyemak imbas akan terlebih dahulu menyemak sama ada terdapat salinan halaman web dalam cache. Jika ada, kandungan halaman web diperoleh terus daripada cache Ini adalah prinsip asas caching pelayar. Faedah mekanisme caching pelayar

Percepatkan aplikasi anda: Panduan ringkas untuk caching Guava Percepatkan aplikasi anda: Panduan ringkas untuk caching Guava Jan 31, 2024 pm 09:11 PM

Bermula dengan Cache Guava: Percepatkan Aplikasi Anda Cache Guava ialah perpustakaan caching dalam memori berprestasi tinggi yang boleh meningkatkan prestasi aplikasi dengan ketara. Ia menyediakan pelbagai strategi caching, termasuk LRU (paling kurang digunakan baru-baru ini), LFU (paling kurang digunakan baru-baru ini), dan TTL (masa untuk hidup). 1. Pasang cache Guava dan tambahkan pergantungan perpustakaan cache Guava pada projek anda. com.goog

See all articles