Rumah > pembangunan bahagian belakang > tutorial php > Pustaka cache HTTP dalam PHP8.0: PSR-7

Pustaka cache HTTP dalam PHP8.0: PSR-7

王林
Lepaskan: 2023-05-14 11:02:02
asal
1176 orang telah melayarinya

Apabila aplikasi web berjalan lebih lama dan lebih lama, prestasi pelayan dan kelajuan pemindahan data menjadi isu yang lebih besar dan lebih besar. Caching HTTP ialah cara untuk menangani masalah ini Caching sumber yang biasa digunakan pada bahagian klien boleh membenarkan aplikasi bertindak balas kepada permintaan dengan lebih pantas dan mengurangkan beban pada pelayan. Sebagai bahasa pembangunan web, PHP 8.0 juga mempunyai penyelesaian tersendiri untuk mengendalikan cache HTTP iaitu PSR-7.

PSR-7 ialah standard PHP yang direka untuk mesej HTTP, menyediakan antara muka bersatu untuk mencipta dan memproses permintaan HTTP dan mesej respons. Ia mentakrifkan komponen asas mesej HTTP (cth. pengepala HTTP, URI permintaan, kaedah HTTP, badan HTTP) dan cara membina, bersiri dan menghuraikan daripadanya.

Dalam kes cache HTTP, peranan penting PSR-7 ialah ia menyeragamkan pengepala mesej HTTP, yang merupakan standard untuk mengawal cache. Ejen pengguna boleh mengawal tingkah laku caching menggunakan maklumat pengepala seperti Cache-Control, jadi menggunakan PSR-7 adalah penting jika kita ingin mencapai cache HTTP yang cekap.

Berikut ialah beberapa penyelesaian cache HTTP yang PSR-7 boleh sediakan:

1. ETag cache

Etag cache ialah cache tag entiti. Apabila pelanggan meminta sumber, ETag ditambahkan pada pengepala respons, yang disimpan oleh klien dan dihantar semula ke pelayan pada kali seterusnya sumber yang sama diminta. Pelayan menyemak sama ada ETag pelanggan adalah sama dengan sumber bahagian pelayan. Jika ya, pelayan akan mengembalikan pengepala respons dengan kod respons 304 Not Modified dan mengekstrak sumber daripada cache klien, dengan itu mengelakkan penghantaran sumber berulang dan mengurangkan beban pada pelayan.

Caching ETag boleh dilaksanakan dengan mudah menggunakan PSR-7. Dengan menambahkan pengepala ETag pada mesej respons, ETag boleh dihantar semula dengan mudah kepada klien untuk permintaan seterusnya. Pelayan menggunakan nilai ETag untuk perbandingan. Jika nilainya sama, ia tidak lagi menghantar sumber, sebaliknya menghantar respons 304 Not Modified. Berikut ialah contoh:

$response = new Response();
$response = $response

->withHeader('ETag', 'MyETagValue');
Salin selepas log masuk
  1. Terakhir Diubah Suai Cache

Cache yang Diubahsuai Terakhir ialah cache teg entiti. Pelayan menambah pengepala Terakhir Diubah Suai pada pengepala mesej respons, yang nilainya ialah masa pengubahsuaian terakhir sumber yang diminta. Apabila klien meminta sumber yang sama pada masa akan datang, ia menghantar maklumat pengepala Terakhir Diubah Suai dalam format tarikh dan masa kembali ke pelayan. Pelayan akan menyemak sama ada maklumat pengepala ini ialah masa pengubahsuaian terakhir sumber. Jika ya, pelayan mengembalikan pengepala respons dengan kod respons 304 Not Modified dan mengambil sumber daripada cache klien untuk mengurangkan beban pada pelayan.

Menggunakan psr-7, anda juga boleh melaksanakan caching Last-Modified dengan mudah. Contoh kod:

$response = new Response();
$response = $response

->withHeader('Last-Modified', 'LastModifiedDate');
Salin selepas log masuk
  1. Strategi cache-Control cache

Cache -Strategi caching kawalan ialah kaedah yang ditetapkan dalam pengepala mesej respons untuk mengawal kaedah caching. Ia mengurangkan permintaan pelanggan, dengan itu mengurangkan beban pada pelayan. Maklumat pengepala Cache-Control mempunyai jenis berikut:

  • max-age: masa maksimum cache.
  • tiada cache: Boleh dicache, tetapi memerlukan pengesahan yang sah untuk setiap penggunaan.
  • tiada kedai: tidak boleh dicache.
  • swasta/awam: Cache hanya untuk pelanggan persendirian/boleh kongsi.
  • mesti sah semula: Pengesahan semula diperlukan selepas tamat tempoh.
  • basi-while-revalidate: Selepas masa cache tamat, data lama akan dikembalikan semasa mendapatkan data baharu.
  • ralat-jika-ralat: Sekiranya berlaku keabnormalan rangkaian, jika terdapat cache, cache juga akan dikembalikan.

Berikut ialah contoh pelaksanaan strategi cache-Control cache melalui PSR-7. Hanya tambahkan maklumat yang diperlukan dalam pengepala respons:

$response = new Response();
$response = $response

->withHeader('Cache-Control', 'max-age=3600');
Salin selepas log masuk

Ringkasan

PSR- 7 menyediakan penyelesaian piawai untuk mencipta dan memproses permintaan HTTP dan mesej respons, yang penting untuk mencapai cache HTTP yang cekap. Menggunakan PSR-7, anda boleh melaksanakan strategi caching ETag, caching Last-Modified dan Cache-Control caching dengan mudah. Jika anda sedang membina aplikasi web menggunakan PHP 8.0 dan perlu melaksanakan cache HTTP yang cekap, cuba PSR-7.

Atas ialah kandungan terperinci Pustaka cache HTTP dalam PHP8.0: PSR-7. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan