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');
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');
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:
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');
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!