2010-09-23 20 views
36

Resim kaynağını döndürürken 301/302/303 kodunu döndürmek tamam mı? Bunu geçmişte yaptım ve işe yarıyor gibi görünüyor. Bu iyi bir uygulama mıdır ve çoğu tarayıcıyla uyumlu mu?HTTP yönlendirme görüntüleri tamam mı?

cevap

40

Evet, yönlendirebilirsiniz görüntüleri kullanmalı ve tarayıcılar yönlendirmeleri takip edecektir. Ancak genellikle yönlendirme işlemlerini asgari düzeyde tutmak isteyeceksiniz çünkü her yönlendirme ayrı bir HTTP isteği gerektiriyor, bu da sunucu ek yükünü artırıyor ve son kullanıcı sayfa yükleme süresini biraz artırıyor.

Kesinlikle kaçınmanız gereken tek şey, bir sayfaya birçok görüntüyü yeniden yönlendirmektir. Bu, özellikle her yeni HTTP isteğinin uzun sürdüğü yüksek gecikmeli ağlarda (ör. Telefon, Çin, uydu internet) sayfa yükleme süresini ciddi şekilde yavaşlatır. Ayrıca, HTTP istemcileri sunucu ana bilgisayar adı başına az sayıda eşzamanlı HTTP bağlantısıyla sınırlıdır, bu nedenle hızlı ağlarda bile bir darboğazla sonuçlanırsınız.

Bir sayfaya 1 veya 2 fotoğrafı yeniden yönlendirmek pek bir şey değil.

Görüntüleri yeniden yönlendirirseniz ve önbelleğe alınabilirlerse, uzak gelecekte bir tarih için bir HTTP Geçerlilik üstbilgisini (ve uygun Önbellek Denetleme üstbilgisini) ayarlayabilirsiniz, böylece en azından sayfa kullanıcılarına yapılan sonraki ziyaretlerde tekrar yönlendirme yapmak zorunda kalmayacak.

Yönlendirmenin nedeni yeni bir URL şemasına uymaksa, çoğu web sunucusunun istemciye gerçek bir yönlendirme göndermeye gerek kalmadan sunucudaki URL'leri yeniden yazmanın kolay bir yolu vardır. Başka bir deyişle, istemci /static/bar.jpg'u talep edebilir, ancak sunucu bunu /media/images/bar.jpg'a çevirecek şekilde yapılandırılabilir. Bu URL yeniden yazma yaklaşımı çoğu durumda yeniden yönlendirmeye tercih edilir, çünkü içeriğinizin sunucuda istemci veya sunucu tarafında yeniden yönlendirme yüküne neden olmadan nerede yaşayacağını yeniden düzenleyebilirsiniz.

+0

Tercih edilen projeye göre 301 ya da tekrar yazılanları desteklemiyorum, ancak ek bir yeniden değerlendirme sözünü belirtmek istedim. Yeniden yazmalar maliyet içermez, bir dereceye kadar ek işlem kaynakları gerektirir. Pek çok durumda, toplam kaynak tüketimi karmaşıklığı ve yürütme sayısını yeniden yazmak için karşılık geldiğinden, bu bir sorun değildir. Sadece, herkesin her iki yöntemin de, her potansiyel çözümde olduğu gibi, maliyetlerinin olduğunu anladığından emin olmak istedim. – TechZilla

6

Evet, işe yarıyor.

İyi uygulama hakkında, alternatifler nelerdir? Bir hata yanıtı döndürüyor (404)? Çok yararlı değil. Yeniden yönlendirilen kaynağın döneceği görüntüyü döndürmek? Muhtemelen mümkün değil, aksi halde yönlendirmeyeceksin. Img etiketlerini yeni URL ile sabitlemek mi istiyorsunuz? Elbette, mümkün olduğu sürece, belki de tarayıcının yeniden yönlendirmeye (belki bir sayaç) gitmesini istiyorsunuz.

6

kod aslında gerçeği yansıtır olması sorun yaratmaz - bir görüntü gerçekten permanenetly hareket etmesi durumunda, örneğin, sen bir 301.

İlgili konular