2012-03-19 27 views
8
önbellek değil varlıkları yapar

Senaryo:Tarayıcı (Krom) CloudFront

Ben kurulum ilerici akışına özel kökenli bir CloudFront distribuition (benim sunucu) mp4 video dosyalarının bir listesi.

Bu dosyalar çevrimiçidir ve Chrome yerel HTML5 video API'si aracılığıyla oynatılır. Videonun ne zaman bittiği Chrome, dosyaya başka bir istekte bulunur. sunucumdan dosyayı çalarken

, Krom CloudFront aynı dosyayı oynatırken ise

Status Code:206 Partial Content (from cache) 
her istek üzerine

, Krom asla dosyayı önbelleğe döner ve her isteği üzerine indirmeden tutar!

Bunlar Amazon CloudFront gelen yanıt başlıkları Chrome'da şunlardır: aynı dosyanın Chrome'da

HTTP/1.0 206 Partial Content 
Date: Mon, 19 Mar 2012 19:47:44 GMT 
Server: Apache 
Last-Modified: Mon, 19 Mar 2012 12:35:37 GMT 
ETag: "a78e87ba-335d8e-4bb97cb9f887f" 
Accept-Ranges: bytes 
Content-Type: video/mp4 
Content-Range: bytes 4228-3366285/3366286 
Content-Length: 3362058 
Age: 3819 
X-Cache: Hit from cloudfront 
X-Amz-Cf-Id: xxxxxx 
Via: 1.0 xxxxxx.cloudfront.net (CloudFront) 
Connection: keep-alive 

Yanıt Başlıkları sunucumdan (köken):

HTTP/1.1 206 Partial Content 
Date: Mon, 19 Mar 2012 20:50:40 GMT 
Server: Apache 
Last-Modified: Mon, 19 Mar 2012 12:35:37 GMT 
ETag: "a78e87ba-335d8e-4bb97cb9f887f" 
Accept-Ranges: bytes 
Content-Length: 3366286 
Content-Range: bytes 0-3366285/3366286 
Keep-Alive: timeout=2, max=256 
Connection: Keep-Alive 
Content-Type: video/mp4 

Ben bir şey eksik?

Belki neden CloudFront yanıtından Keep-Alive başlık eksikliğinden kaynaklanıyor? ya da belki farklı HTTP protokolü sürümünde (1.0 vs 1.1)?

GÜNCELLEME: Ben de eklendi

Expires ve Cache-Kontroller başlıkları, hiçbir şey değişmedi. Bu ne yazık ki, HTML5 video api ve Amazon CloudFront'u bir araya getirerek numaralı no'lu yararsızdır.

Müfettiş gelen bir ekran görüntüsü, dosya her döngü tekrar indirilmektedir olduğunu görebileceğiniz gibi: http://i.imgur.com/go1zN.jpg

GÜNCELLEME: Bu, yerel sunucudan yüklenen dosya ile başka bir ekran görüntüsü http://i.imgur.com/0VyZD.jpg

2:

Bu kesinlikle CloudFront ile ilgili değil gibi görünüyor. Çeşitli testlerden sonra bunun Content-Range başlık (0'dan başlamalı yukarıdaki değişik örneğe bakın)

Ve düşünmüyor

1) dosyası 2Mb 2) daha büyük olması durumunda Chrome videoyu önbelleğe almaz görünüyor yalnızca yerel HTML5 video API'sı ve 206 Kısmi İçerik Durumu ile ilgilidir.

cevap

8

:

HTTP/1.0 206 Kısmi İçerik

HTTP/1.0 bir 206 yanıt kodu (yani/HTTP 1.1 mL) böylece Chrome'un önbellek içermiyor katman, cevabı tekrar kullanmayı reddeder. http://crbug.com/128116'daki kroma özel detaylar ancak kısa cevap, CloudFront'un HTTP/1.1, /1.0 değil 206 yanıtı sunması gerektiğidir.

+0

FTR, AWS CF'ye https://forums.aws.amazon.com/thread.jspa?threadID=96247 adresinde bildirilmiştir – Ami

+2

Bunun için istemci tarafı bir çözüm var mı? Tüm videolarınm önbelleğe alınmasından nefret ediyorum. –

+0

Ayrıca bakınız: https://forums.aws.amazon.com/thread.jspa?threadID=124998 –

2

Belirtilen son kullanma/önbellek denetimi üst bilgisi yok. Chrome, son kullanma tarihi gelmediyse, öğelerin önbelleğe alınması konusunda özellikle yararlı olabilir (özellikle DOM ile javascript aracılığıyla dinamik olarak eklendiğinde).google

http://code.google.com/speed/page-speed/docs/caching.html

:

birini belirtmek önemlidir Expires veya Cache-Control max-age ve alınabilecek tüm kaynaklar için Last-Modified veya ETag biri. Hem Expires ve Cache-Control: max-age değerini belirtmek hem de Last-Modified ve ETag öğelerini belirtmek gereksizdir. senin CloudFront yanıt itibaren

+0

Teşekkürler, bir Expires başlığı ekleyeceğim ve deneyeceğim. Yine de Chrome'un neden dosyayı önbelleğe aldığını ve Cloudfront'tan değil, sunucumu önbelleğe aldığını anlayamıyorum. – achairapart

+0

Hem yerel sunucudan hem de Amazon'dan sunulurken dosyadaki diğer öğeler aynı mı? Belki de önbellek bulma sezgisi, bu dosya için onunla birlikte gelen komşu içeriğe göre farklı olarak ne yapacağını değerlendiriyor. – javram

+0

Expires başlıklar eklendi, hiçbir şey değişmedi. Diğer nesneler aynı davranışa sahiptir. 206 kısmi içerik durumuyla ilgili bir şey olduğundan şüpheleniyorum. Ayrıca Chrome Inspector'dan bir ekran görüntüsü ekledim. – achairapart