Http çok parçalı istek nedir?


300

Bir süredir iPhone uygulamaları yazıyorum, sunucuya veri gönderiyorum, veriyi alıyorum (HTTP protokolü üzerinden), çok fazla düşünmeden. Çoğunlukla teorik olarak sürece aşinayım, ama çok tanımadığım kısım HTTP çok parçalı istek. Temel yapısını biliyorum, ama özü beni atlatıyor.

Görünüşe göre düz metinden (fotoğraflar, müzik gibi) farklı bir şey gönderdiğimde, çok parçalı bir istek kullanmam gerekiyor. Birisi bana neden kullanıldığını ve avantajlarının neler olduğunu kısaca açıklayabilir mi?

Kullanırsam, fotoğrafları bu şekilde göndermenin neden daha iyi bir yolu var?


1
Bilgi için aşağıdaki bağlantıya bakın: http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2
zargarf

Yanıtlar:


286

HTTP çok parçalı isteği, HTTP istemcilerinin bir HTTP Sunucusuna dosya ve veri göndermek için oluşturdukları bir HTTP isteğidir. Tarayıcılara ve HTTP istemcileri tarafından sunucuya dosya yüklemek için yaygın olarak kullanılır.


4
Sadece çok parçalı form veri alanlarının sırayla gönderildiğini eklemek istedim . Bu hemen bariz bir şey değil - Buraya bir bağlantı listesi ekledim: github.com/balderdashy/skipper/blob/master/… PhantomJS / webkit kullanarak bir test davası oluşturmak için biraz zaman alırsam, ekleyeceğim orada da bağlantı. Tarayıcılar, IE6'ya kadar bile spesifikasyonun bu kısmına uyarlar.
mikermcneil

89
Zor kısım, dosya yükleme isteği gibi daha belirgin bir şey yerine neden çok parçalı istek olarak adlandırıldığını anlamaktır .
Rafael Eyng

28
OP felsefi bir yaklaşım ve cevap istedi. Bu cevap "neden" bölümünü açıklamıyor. Daha çok "ne" kısmı hakkında. Ben büyük bir aşağı oylama hayranı değilim, ama bu cevabın OP'nin istediği şey olmadığını ve araştırdım.
Saeed Neamati

6
"Application / x-www-form-urlencoded" içerik türü, büyük miktarlarda ikili veri veya ASCII olmayan karakterler içeren metin göndermek için yetersizdir. "Çok bölümlü / form verisi" içerik türü, dosyaları, ASCII olmayan verileri ve ikili verileri içeren formları göndermek için kullanılmalıdır. ORİJİNAL KAYNAK - w3.org/TR/html401/interact/forms.html#h-17.13.4.2
Aditya Aggarwal

2
Firebug ekran görüntüleri ile daha fazla ayrıntı için: cubicrace.com/2016/05/upload-files-https-using-java.html
Piyush Chordia

22

Resmi şartnamede ( https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html ) söylediği gibi, " bir veya daha fazla veri kümesi tek bir gövdede birleştirilir ". Bu nedenle, fotoğraf ve müzik soruda belirtildiği gibi çok parçalı mesajlar olarak işlendiğinde, muhtemelen bazı düz metin meta verileri de vardır, böylece çok parçalı kullanım anlamına gelen farklı veri türleri (ikili, metin) içeren istek yapılır.


2
Ben öyle düşünmüyorum. Bir görüntüyü yüklerken (meta verileri de dahil) tüm resim olacaktır tek isteği gövdesine veri kümesi. Vücutta sadece bir parça olsa bile, hala çok parçalı bir istek. Aynı anda birden fazla dosya yüklemek için bir istek de oluşturabilirsiniz.
Dario Seidl

1
@DarioSeidl standardı, dosya yüklemesinin kendisine ek olarak diğer veri alanlarını da içerebilen bir web formundan dosya yüklemesi yapabileceğinizi varsayar. Örneğin, orijinal dosya adına ek olarak, kullanıcı bir açıklama da içerebilir. Multipart ayrıca belirli bir menşe "dosya" kavramıyla bağlantısı kesilmiş genel ikili blobları da işler.
Ionoclast Brigham
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.