Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 9827|Yanıt: 0

HTTP protokolü Transfer-Kodlama (parçalı)

[Bağlantıyı kopyala]
Yayınlandı 24.09.2019 18:07:57 | | | |
1. Arka Plan:

  • Kalıcı bağlantı sorunları: Kalıcı olmayan bağlantılar için, tarayıcı bağlantının kesilip kesilmediğine göre talep eden veya yanıt veren varlığın sınırlarını tanımlayabilir; Sürekli bağlantılar için bu yaklaşım elbette işe yaramıyor. Bazen, tüm verileri göndermiş olsam da, tarayıcı açık bağlantıda yeni veri gelip gelmeyeceğini bilmiyor, bu yüzden sadece bekliyor.
  • İçerik Uzunluğu ile çöz: Varlık uzunluğunu hesaplayın ve karşı tarafa kafadan söyleyin. Tarayıcı, yanıt varlığının bittiğini İçerik-Uzunluğunun uzunluğu bilgisinden anlayabilir
  • İçerik uzunluğu ile ilgili yeni sorun: İçerik Uzunluğu alanı gerçekten varlık uzunluğunu yansıtmak zorunda, dinamik olarak üretilen içerik için uzunluk içerik oluşturulana kadar bilinmez. Şu anda, uzunluğu doğru anlamak için sadece yeterince büyük bir tampon açıp tüm içeriğin üretilmesini bekleyerek hesaplayabilirsiniz. Ancak bu, bir yandan daha fazla bellek yükü gerektirirken, diğer yandan istemci daha uzun bekletebilir.
  • Başlığın uzunluğuna dayanmayan ve varlıkların sınırlarını bilen yeni bir mekanizmaya ihtiyacımız var - Transfer-Encoding: chunked.

2. Transfer-Kodlama (parçalı)

  • Transfer-Encoding, kelime anlamıyla "aktarım kodlaması" anlamına gelen bir HTTP başlık alanıdır (yanıt başlığı alanı). En son HTTP spesifikasyonu yalnızca bir kodlama taşıma türünü tanımlar: chunked.
  • Parçalı aktarım kodlaması, Hipermetin Transfer Protokolü (HTTP) içinde bir web sunucusu tarafından istemciye gönderilen HTTP verilerinin birden fazla parçaya bölünmesine olanak tanıyan bir veri aktarım mekanizmasıdır. Blok taşıma kodlaması yalnızca HTTP protokolü 1.1 sürümünde (HTTP/1.1) mevcuttur.
  • Veriler, bir dizi parçaya ayrılır ve sunucunun gönderilen içeriğin toplam boyutunu önceden bilmeden veri gönderebilmesi için bir veya daha fazla parça halinde gönderilir.


Özel yöntemler

  • Transfer-Encoding: chunked başlığa eklendikten sonra, paket parçalanmış demektir. Bu durumda, paketteki varlıkların bir dizi parça halinde iletilmesi gerekir.
  • Her parça, onaltılık uzunluk değerini ve veriyi içerir ve uzunluk değeri yalnızca bir satıra özeldir; uzunluk, CRLF'nin sonundaki ve parçalanmış verinin sonundaki CRLF'yi içermez.
  • Son parça uzunluğu değeri 0 olmalı ve ilgili parça verisi içeriği içeriksizdir, bu da varlığın sonunu gösterir.




asp.net Çekirdek test kodu:







Önceki:Http protokolünün İçerik Boyu
Önümüzdeki:Chrome'u küçümsememe neden olan üç faktör
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com