Mengapa Safari Cache POST Permintaan dalam iOS 6 Walaupun \'cache:false\'?

DDD
Lepaskan: 2024-11-03 21:12:03
asal
190 orang telah melayarinya

Why Does Safari Cache POST Requests in iOS 6 Despite

Caching Conundrum: Safari's Selective Fetching dalam iOS 6

Sejak iOS 6 dikeluarkan, pembangun telah menghadapi gelagat yang tidak dijangka dalam paparan web Safari: $ Panggilan .ajax POST sedang dicache secara keras walaupun tetapan cache:false. Menariknya, anomali ini hanya nyata apabila fungsi yang dipanggil menggunakan tandatangan statik.

Penyiasatan awal mendedahkan bahawa Safari menyorokkan respons POST hanya jika ia tidak mempunyai pengepala Cache-Control atau Expires atau jika Cache-Control ditetapkan kepada umur maksimum =0. Walau bagaimanapun, memberikan permintaan "Cache-Control: no-cache" memintas gelagat ini, menghalang cache sama sekali.

Keputusan Apple untuk memanfaatkan peruntukan spesifikasi HTTP ini untuk kaedah POST (bahagian 9.5) telah menyebabkan pembangun bingung. Walaupun caching POST respons tidak pernah didengari, pilihan Safari untuk berbuat demikian tanpa sebarang pengepala atau dengan max-age=0 nampaknya merupakan penyelewengan daripada gelagat penyemak imbas konvensional.

Untuk menyelesaikan masalah caching ini, penyelesaian global dalam konfigurasi Apache adalah seperti berikut:

Header set Cache-Control "no-cache"
Salin selepas log masuk

Walau bagaimanapun, jika secara selektif menggunakan arahan "tiada-cache" kepada permintaan POST sahaja diutamakan, Apache menawarkan penyelesaian:

SetEnvIf Request_Method "POST" IS_POST
Header set Cache-Control "no-cache" env=IS_POST
Salin selepas log masuk

Sebagai alternatif , menambahkan parameter unik pada URL atau data POST boleh memintas isu caching untuk tandatangan fungsi statik.

Atas ialah kandungan terperinci Mengapa Safari Cache POST Permintaan dalam iOS 6 Walaupun \'cache:false\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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