Pribadi vs Publik di Kontrol Cache

127

Bisakah Anda jelaskan contoh yang menunjukkan perbedaan antara Kontrol Cache Publik dan Swasta dalam aplikasi asp.net yang dihosting di IIS.

Saya membaca di MSDN bahwa perbedaannya adalah sebagai berikut:

Publik: Mengatur Kontrol-Cache: publik untuk menentukan bahwa respons dapat disimpan oleh klien dan cache (proxy) yang dapat di-cache.

Pribadi: Nilai default. Atur Kontrol-Cache: privat untuk menentukan bahwa respons hanya dapat di-cache pada klien dan bukan oleh cache (server proxy) yang dibagikan.

Saya tidak yakin saya sepenuhnya memahami pro dan kontra dari setiap pilihan. Contoh kapan atau tidak menggunakannya akan bagus.

Sebagai contoh, apa yang harus saya lakukan jika saya memiliki dua server web hosting aplikasi yang sama? Apakah ada yang harus diwaspadai jika saya memilih Pribadi atau Publik?

ppolyzos
sumber

Jawaban:

237

Satu-satunya perbedaan adalah bahwa dengan Pribadi Anda tidak mengizinkan proksi untuk menyimpan data yang melewati mereka. Pada akhirnya, semuanya bermuara pada data yang terkandung dalam halaman / file yang Anda kirim.

Misalnya, ISP Anda dapat memiliki proksi yang tidak terlihat antara Anda dan Internet, yaitu caching halaman web untuk mengurangi jumlah bandwidth yang dibutuhkan dan biaya yang lebih rendah. Dengan menggunakan kontrol-cache: privat, Anda menentukan bahwa itu seharusnya tidak me-cache halaman (tetapi memungkinkan pengguna akhir untuk melakukannya). Jika Anda menggunakan kontrol-cache: publik, Anda mengatakan bahwa tidak apa-apa bagi semua orang untuk me-cache halaman, sehingga proxy akan menyimpan salinannya.

Sebagai patokan, jika ini adalah sesuatu yang dapat diakses oleh semua orang (misalnya, logo di halaman ini) kontrol cache: publik mungkin lebih baik, karena semakin banyak orang yang menyimpannya, semakin sedikit bandwidth yang Anda perlukan. Jika itu adalah sesuatu yang terkait dengan pengguna yang terhubung (misalnya, HTML di halaman ini menyertakan nama pengguna saya, jadi itu tidak akan berguna bagi orang lain) kontrol cache: privat akan lebih baik, karena prokinya adalah data caching yang tidak akan diminta oleh pengguna lain, dan mereka mungkin juga menyimpan data yang Anda tidak ingin disimpan di server yang tidak Anda percayai.

Dan, tentu saja, semua yang bukan milik publik harus memiliki cache pribadi. Jika tidak, data dapat disimpan di server proxy tengah, seandainya itu dapat diakses oleh siapa saja yang memiliki akses ke sana.

salgiza
sumber
39
Satu-satunya perbedaan adalah bahwa dengan Pribadi Anda tidak mengizinkan proksi untuk di-cache ... Saya menduga ini salah ketik. Beri +1 pada jawaban selain itu. Patut ditambahkan bahwa swasta tidak menawarkan tingkat keamanan apa pun, masih dapat dilihat oleh agen di tengah. Ini hanya berarti bahwa tidak ada agen "jujur" yang akan memberikannya kepada orang lain alih-alih respons yang baru dihasilkan.
Jon Hanna
Tetap! Ini lucu karena saya membacanya beberapa kali sebelum memposting, tapi saya rasa saya tahu "tidak" harus ada di sana, jadi pikiran saya menambahkannya: D. Dan ya, beri +1 pada komentar Anda, karena harus dicatat bahwa, meskipun disarankan untuk data terkait pengguna, pribadi tidak akan menggantikan keamanan sejati (SSL).
salgiza
Sangat mudah untuk menulis "tidak" ketika Anda tidak seharusnya atau menghilangkannya ketika Anda seharusnya. Saya tahu sejumlah besar suntingan saya sendiri (di berbagai bidang) sedang memperbaiki kesalahan ketik yang sama.
Jon Hanna
15
Jadi jika kita tidak menentukan apa-apa, apakah perilaku default "publik" atau "pribadi"?
Pacerier
1
@ Sayang tetapi mungkin ada beberapa klien menggunakan proxy yang sama. Jika tidak apa-apa mengirim semua klien tanggapan yang sama maka tidak apa-apa untuk melakukan cache pada tingkat proxy, jika tidak, mungkin akan baik untuk melakukan cache pada klien (masih ada kasus di mana itu adalah ide yang buruk), tetapi tidak pada proxy.
Jon Hanna