Saya membaca tentang tajuk Pragma di Wikipedia yang mengatakan:
"Pragma: no-cache header field adalah header HTTP / 1.0 yang dimaksudkan untuk digunakan dalam permintaan. Ini adalah sarana bagi browser untuk memberi tahu server dan semua cache perantara bahwa ia menginginkan versi sumber daya yang baru, bukan untuk server untuk memberi tahu browser agar tidak men-cache sumber daya. Beberapa agen pengguna memperhatikan tajuk ini dalam tanggapan, tetapi HTTP / 1.1 RFC secara khusus memperingatkan agar tidak mengandalkan perilaku ini. "
Tapi saya belum mengerti apa fungsinya? Apa perbedaan antara Cache-Control
tajuk yang nilainya no-cache
dan Pragma
yang nilainya juga no-cache
?
sumber
Pragma: no-cache
dimaksudkan untuk digunakan hanya dalam permintaan (artinya "Saya ingin yang asli, bukan salinan yang di-cache") dan perilakunya tidak ditentukan untuk tanggapan.Cache-Control: no-cache
memiliki arti yang sama untuk permintaan tetapi sebenarnya juga didefinisikan untuk tanggapan, yang berarti "Jika Anda ingin menggunakan salinan cache ini di masa mendatang, Anda harus terlebih dahulu memeriksa dengan saya bahwa itu adalah yang terbaru (yaitu melakukan validasi ulang)".max-age
yang tidak mencegah caching. Itu hanya menetapkan tanggal kedaluwarsa untuk itu ...Tidak ada perbedaan, kecuali yang
Pragma
hanya didefinisikan sebagai berlaku untuk permintaan oleh klien, sedangkanCache-Control
dapat digunakan oleh permintaan klien dan balasan dari server.Jadi, sejauh standar berjalan, mereka hanya dapat dibandingkan dari perspektif klien membuat permintaan dan server menerima permintaan dari klien. The http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.32 mendefinisikan skenario sebagai berikut:
Cara saya membaca di atas:
jika Anda sedang menulis klien dan perlu
no-cache
:Pragma: no-cache
dalam permintaan Anda, karena Anda mungkin tidak tahu jikaCache-Control
didukung oleh server;Cache-Control
jika Anda sedang menulis server:
Cache-Control
; jika tidak ditemukan, periksaPragma: no-cache
, dan jalankanCache-Control: no-cache
logika;Cache-Control
.Tentu saja, kenyataan mungkin berbeda dari apa yang tertulis atau tersirat dalam RFC!
sumber
Cache-Control: max-age=86400
danPragma: no-cache
? Yang mana yang kemudian akan dihormati oleh browser modern?Pragma: no-cache
hanya ditentukan untuk permintaan dari browser, dan dengan demikian akan sepenuhnya tidak valid dan tidak ditentukan dalam balasan dari server ke browser, misalnya, saya membayangkan bahwa setiap browser tunggal (apakah modern atau tidak) harus mengabaikan tajuk seperti itu dalam balasan apa pun yang mungkin diterimanya.Jika setelah 1999, dan Anda masih menggunakan Kedaluwarsa atau Pragma , Anda salah melakukannya.
Saya melihat Anda Stackoverflow:
tl; dr:
Pragma
adalah warisan HTTP / 1.0 dan belum diperlukan sejak Internet Explorer 5, atau Netscape 4.7. Kecuali Anda mengharapkan beberapa pengguna menggunakan IE5: aman untuk berhenti menggunakannya.[date]
(tidak digunakan lagi - HTTP 1.0)[seconds]
Dan permintaan bersyarat:
Etag: W/“1d2e7–1648e509289”
If-None-Match: W/“1d2e7–1648e509289”
304 Not Modified
last-modified: Thu, 09 May 2019 19:15:47 GMT
If-Modified-Since: Fri, 13 Jul 2018 10:49:23 GMT
304 Not Modified
terakhir diubah: Kamis, 09 Mei 2019 19:15:47 GMT
sumber
Pragma
sama sekali. (Dalam HTTP / 1.0, Pragma didefinisikan sebagai bidang yang dapat diperluas untuk arahan yang ditentukan implementasi untuk penerima. Spesifikasi ini mencabut ekstensi tersebut untuk meningkatkan interoperabilitas.)