‘asp.net’ etiketli yazýlar

Web sitesi hazırlarken sayfalarınızın tarayıcı önbelleÄŸine alınmasını (yani cache’lenmesini) engellemenin iki temel yolu var. Birincisi HTML içerisinde meta etiketleri yazmak, ikincisi sunucu tarafında sayfanın baÅŸlığına (header) gerekli satırları eklemek. AÅŸağıda bu iki yöntemi bulacaksınız.

1. HTML ile sayfanızın önbelleğe alınmasını engelleme

<meta http-equiv=”Pragma” content=”No-Cache” />
<meta http-equiv=”cache-control” content=”no-cache, no store” />
<meta name=”Expires” content=”Mon, 26 Jul 1997 05:00:00 GMT” />

Yukarıdaki kodu sayfanızda <head></head> etiketleri arasında yerleştirmelisiniz. Bu yöntemin dezavantajı XML ya da RSS gibi HTML olmayan sayfalarda kullanılamayacak olmasıdır.

2. Sunucu tarafında engelleme

Ön belleğe alma işlemini sunucu tarafında engellemek için, göndereceğimiz sayfa ile birlikte bazı başlıkları (header) göndermemiz gerekiyor. PHP, ASP.NET ve JAVA/JSP için bu başlıkların nasıl yazılacağını aşağıda bulabilirsiniz. Birinci yöntemden farklı olarak bu başlıkları resimlerde dahil olmak üzere her türlü dosyayı gönderirken kullanabilirsiniz.

PHP

 header("Expires: Mon, 01 Jul 1990 05:00:00 GMT");
 header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
 header("Cache-Control: no-store, no-cache, must-revalidate");
 header("Cache-Control: post-check=0, pre-check=0", false);
 header("Pragma: no-cache");

ASP.NET

Response.ClearHeaders();
Response.AppendHeader("Cache-Control", "no-cache"); //HTTP 1.1
Response.AppendHeader("Cache-Control", "private"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "no-store"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "must-revalidate"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "max-stale=0"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "post-check=0"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "pre-check=0"); // HTTP 1.1
Response.AppendHeader("Pragma", "no-cache"); // HTTP 1.0
Response.AppendHeader("Expires", "Mon, 26 Jul 1997 05:00:00 GMT"); // HTTP 1.0

Yukarıdaki ASP.NET kodunu Stackoverflow’da ÅŸu sayfada buldum: Making Sure a Web Page is not Cached Across All Browsers. DenemiÅŸ deÄŸilim ama muhtemelen doÄŸru çalışıyordur.

Java

response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", -1); //proxy seviyesinde engelleme
Kategoriler: Programlama
Tags: , , ,
devam et >