Yüklenen dosyanın uzantısı yoksa bir MIME türü belirtmem gerekir mi? Başka bir deyişle, varsayılan bir genel MIME türü var mı?
Yüklenen dosyanın uzantısı yoksa bir MIME türü belirtmem gerekir mi? Başka bir deyişle, varsayılan bir genel MIME türü var mı?
Yanıtlar:
application/octet-stream
Bilinmeyen türler için kullanabilirsiniz .
RFC 2046 bölüm 4.5.1'de belirtilmektedir:
"Sekizli akış" alt türü, bir gövdenin rasgele ikili veriler içerdiğini belirtmek için kullanılır.
application/octet-stream
dosyanın yürütülebilir olduğunu varsayması için hiçbir neden yoktur . Bir tarayıcı bile Ve edilir bilerek bir çalıştırılabilir dosya indirme, kullanıcı için sormadan "muhtemelen yürütme" değildir; sadece çalıştırılabilir bir dosya indirmek, şu anda çalıştırılmasını istediğim anlamına gelmez. application/octet-stream
İndirme sırasında dosyaları otomatik olarak çalıştırabilecek bir tarayıcı varsa , bize davranışın hangisini ve nasıl yeniden oluşturulacağını söyleyin. Şu anda sana inanmıyorum.
Soru açıkça HTTP İçerik Türü ile ilgili olduğu için RFC-7231'i (HTTP / 1.1 Anlambilim ve İçerik) RFC-2046 (Medya Türleri) yerine referans olarak kullanmalıyız.
Ayrıca RFC-2046 bilinmeyen türleri açıkça tanımlamaz, ancak RFC-7231'i açıkça tanımlar.
Bilinmeyen veriler için MIME türü göndermeyin.
Daha açık olmak gerekirse: İçerik Türü başlığını hiç kullanmayın.
RFC-7231
Köprü Metni Aktarım Protokolü (HTTP / 1.1): Anlambilim ve İçerik
3.1.1.5. İçerik türüYük gövdesi içeren bir mesaj üreten bir gönderici , ekteki sunumun amaçlanan ortam türü gönderen tarafından bilinmiyorsa
, bu mesajda bir İçerik Tipi başlık alanı oluşturmalıdır .
Kesin olarak bilmiyorsanız, bu bölüm açık bir şekilde dışarıda bırakmanızı söyler. Ayrıca, alıcının türün application / octet-stream olduğunu varsayabileceğini söyler, ama bir şey de başka bir şey olabilir.
RFC-2046
4.5.1. Octet-Stream Alt TürüBir
"application / octet-stream" varlığı alan bir uygulama için önerilen eylem , verileri
herhangi bir Content-Transfer-Encoding geri alındığında bir dosyaya koymayı veya belki de
kullanıcı tarafından belirtilen bir girdi olarak kullanmayı teklif etmektir. süreci.
Ve yukarıda belirtildiği gibi:
RFC-7231
3.1.1.5. İçerik türüBir İçerik Türü başlık alanı yoksa, alıcı "media / octet-stream" ortam türünü alabilir
([RFC2046], Bölüm 4.5.1) veya türünü belirlemek için verileri inceleyebilir.
Eğer "application / octet-stream" olarak tanımlarsanız, bunun "application / octet-stream" olduğunu bildiğinizi söylersiniz.
Eğer onu tanımlamazsanız, bunun ne olduğunu bilmediğinizi ve alıcı ve alıcıya karar vermenin, ördek gibi yürüdüğünü kontrol edebileceğini söylüyorsunuz ...
Tercih ederim application/unknown
, ama sonuç kesinlikle aynı olacakapplication/octet-stream
application/octet-stream
veya olarak sunuluyor application/unknown
? İcat etmelerinin bir nedeni var image/png
.