RFC 2616 (HTTP 1.1) alıntı: "*" verildi ve herhangi mevcut taraf bu kaynak için var olup olmadığını böylece kaynak en yüzünden gerekmediği takdirde
..., sunucu, istenen yöntemini gerçekleştirmek ZORUNLU Değişiklik tarihi, istekte bir If-Modified-Since başlık alanında sağlanan ile eşleşmiyor.
RFC yerine isteği gerçekleştirme, sunucular GET ve BAŞ istekleri için 304 (değiştirilmemiş) ile yanıtlaması gerektiğini ve hepsi diğer istek türleri için (önkoşul başarısız) 412 ile yanıtlaması gerektiğini söylemeye devam ediyor . Ancak bu sadece sunucuda istenen kaynağın bazı sürümleri varsa. Eğer herhangi bir varlıkları yoksa (herhangi bir şey olmadığı için muhtemelen 404 ile), o zaman isteği işlemek gerekir.
Bir isteği işlemek için önce, sunucunun başlığı bulunmuyorsa sunucunun ne yapacağını öğrenin. Bu isteğin sonucu değil 2xx veya 304 ise, isteği normal olarak sunun. Ancak, isteğinin sonucu,, 2xx veya 304 olur, If-None-Modified durumda. Bir yıldız olduğunda, o zaman hemen 304'ü (eğer If-Modified-Since tarafından ezilmediği sürece) döndürün. Bir veya daha fazla varlık etiketi varsa, bu etiketlerden herhangi birinin yanıt olarak sunmayı planladığınız şeyin etiketiyle eşleşip eşleşmediğini kontrol edin. Herhangi bir eşleşme varsa, 304; Eşleşme yoksa, normalde yapacağınız gibi servis yapın. Daha sonra RFC
, dahası var:
"If-None-Match: *" anlamı temsil kökeni sunucusu tarafından seçilen eğer yöntem uygulanmalıdır ZORUNLU olduğu (a veya Önbellek, Muhtemelen Vary mekanizmasını kullanarak, bkz. bölüm 14.44) var ve temsil yoksa, yapılmalıdır. Bu özellik PUT işlemleri arasındaki ırkların önlenmesinde yararlı olması amaçlanmıştır. olduğu
, yıldız müşteri demek verir "zaten orada bu dosyanın herhangi sürümü varsa bu dosyayı PUT etmeyin."
Eğer If-None-Match'de * varsa, 304'ü düzeltmenin tek yolu If-Modified-Since seçilip eşleşiyor mu? – AlexV
Ya, ya da 'If-Modified-Since' hiç. Yani 2 yol var. –