SORU
19 EKİM 2009, PAZARTESİ


HTTP 304 Modifiye-yanıtları içeren önbellek-kontrol başlıklarını Değil mi?

Bunu anlamaya çalıştım, ve bu YÜZDEN benzer sorular için aradı, ama ben hala bu işin nasıl yürüyeceğini 0 bir bilgiye sahip değil.

Görüntü kaynağı: bir istek üzerine bu cevabı alıyorum

Response Headers
    Server  Apache-Coyote/1.1
    Date    Mon, 19 Oct 2009 09:04:04 GMT
    Expires Mon, 19 Oct 2009 09:06:05 GMT
    Cache-Control   public, max-age=120
    Etag    image_a70703fb393a60b6da346c112715a0abd54a3236
    Content-Disposition inline;filename="binary-216-420"
    Content-Type    image/jpg;charset=UTF-8
    Content-Length  4719

İstenen davranışı istemci 120 saniye için bu önbellek, sunucudan yeniden isteyin. 120 saniye içinde, hiçbir isteği sunucuya gönderilir.

O zaman, 120 saniye sonra, bir istek gönderilir ve 304 bir yanıt aldı

Response Headers
    Server  Apache-Coyote/1.1
    Date    Mon, 19 Oct 2009 09:06:13 GMT

Request Headers
    Host    localhost:8080
    User-Agent  Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3
    Accept  image/png,image/*;q=0.8,*/*;q=0.5
    Accept-Language en-us,no;q=0.8,sq;q=0.7,en;q=0.5,sv;q=0.3,nn;q=0.2
    Accept-Encoding gzip,deflate
    Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive  300
    Connection  keep-alive
    Referer http://localhost:8080/cms/site/0/en/home
    Cookie  JSESSIONID=768ABBE1A3BFABE3B535900233330650; versionsCssDisplayState=block; iceInfo=iceOn:false,activePortletKey:,icePagePanelX:1722,icePagePanelY:3
    If-None-Match   image_a70703fb393a60b6da346c112715a0abd54a3236

Şu ana kadar her şey iyi. Ama sonra, bir sonraki istek üzerine (içinde 120 saniye) kaynak yeni 120 saniye için önbelleğe alınacağını düşünmüştüm. Tarayıcı (Firefox) diğer taraftan, ben her zaman bu noktadan kaynağa istek ve 304-yanıt alır.

304-yanıt önbellek-kontrol başlıklarını takmak zorunda mıyım? Spec okuduğum kadarıyla önbellek-kontrol ayarları atlanmış olması gerektiği gibi, ve önbellek 120 yeni saniye için otomatik olarak önbelleğe gerekir gibi görünüyor?

CEVAP
23 Aralık 2009, ÇARŞAMBA


Teoride bir 304 -- alıcı orijinal 200'den alınan önbellek direktifleri kullanmaya devam etmelidir Önbellek-Kontrol göndermek gerek yok. Eğer Cache-Control gönderme yok varsa bile buldum ancak uygulamada, tarayıcı önbelleğini aslında sana gönderdi, ve kendi varsayılan keşif dönmek direktifleri göz ardı eder.

Yani pratikte, bir 200 ile olacağını Cache-Control 304 ile aynı içermelidir. Spec sadece görev size göndermek için bir 304 eğer farklı daha ne gönderdin daha önce (10.3.5 304 Not Modified) -- ama kesinlikle gelmez korusun seni tekrar ne zaman aynı.

Ve özellikle diğer cevap yanlış başlı noktalarına karşılık vermek (Yapısı):

  1. Sanayapınönbellek yanıt (kaynak önbellek girdisini güncelleştirmek) aracı önbelleğe istiyorum. Uygun bir 200 veya istemci-Modified-Since gibi koşullu bir başlık dahil olup olmadığını bağlı olarak 304, müşterilerinden gelen isteklere cevap verecektir.

  2. 120 saniye ttl304 tarafından yenilendi aynı istemci en az 120 saniye boyunca aynı kaynağın başka bir istek değil yani. Ve müşterileri, hala içeriği önbelleğe var oldukları sürecebir 304 cevap vermeye devam edebilirsiniz hangi kaynak, koşullu istekleri yapmaya devam.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bratayley

    Bratayley

    30 Aralık 2010
  • ethr95awd

    ethr95awd

    8 Kasım 2006
  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009