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

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

HTTP protokolünde İçerik Uzunluğu'nun ayrıntılı yorumu

[Bağlantıyı kopyala]
Yayınlandı 24.09.2019 15:53:29 | | |
Content-Length, mesaj gövdesinin transfer uzunluğunu tanımlamak için kullanılır. HTTP protokolünde, mesaj varlığının uzunluğu ile iletim süresi arasında fark vardır; örneğin gzip sıkıştırmada, mesaj varlığının uzunluğu sıkıştırmadan önceki uzunluk, mesaj varlığının iletim uzunluğu ise gzip sıkıştırmadan sonraki uzunluktur.

Belirli HTTP etkileşimlerinde, istemcinin mesaj uzunluğunu nasıl elde ettiği esas olarak aşağıdaki kurallara dayanır:

Yanıt 1xx, 204, 304 veya baş istekse, mesaj varlık içeriği doğrudan göz ardı edilir.
Transfer-Kodlama varsa, Transfer-Encoding yöntemi uygun uzunluğu bulmak için tercih edilir. Örneğin, Chunked modeli.
"Kafada bir İçerik-Uzunluğu varsa, bu İçki-Uzunluğu hem gövde uzunluğunu hem de iletim uzunluğunu temsil eder. Varlık uzunluğu ve transfer uzunluğu eşit değilse (örneğin Transfer-Encoding ayarlanmışsa), İçerik-Boyu ayarlanamaz.Transfer-Encoding ayarlanmışsa, İçerik Uzunluğu göz ardı edilir”。 Bu cümle çevirisinin avantajı, sadece bir noktanın olmasıdır: Transfer-Encoding ile İçerik-Uzunluk olamaz.
Menzil şanzımanı. Dikkat etmedim, detaylı okumadım :)
Sunucu üzerinden bağlantının kapatılması, iletilecek mesajın uzunluğunu belirler. (İstek veren, bağlantıyı kapatarak istek gövdesinin sonunu belirtemez, çünkü bu sunucunun yanıtlamaya devam etme şansı kalmaz.) Bu durum esas olarak kısa bağlantılara, yani canlı kalmama moduna karşılık gelir.
HTTP 1.1 chunk modunu desteklemelidir. Çünkü mesajın uzunluğu belirsiz olduğunda, bu durum parça mekanizması aracılığıyla yönetilebilir.
Mesaj içeriğini içeren başlıkta, içerik-uzunluğu alanı varsa, alanın karşılık gelen değeri mesaj konusunun uzunluğuyla tam olarak eşleşmelidir.
"Bir mesajın varlık uzunluğu, herhangi bir aktarım kodlaması uygulanmadan önceki mesaj gövdesinin uzunluğudur"
YaniBir parça varsa, içerik uzunluğu olamaz.

HTTP/1.0'ın kalıcı bağlantı mekanizması daha sonra tanıtıldı ve Connection: keep-alive başlığı aracılığıyla uygulanır; hem sunucu hem de istemci birbirlerine veriyi gönderdikten sonra TCP bağlantısını kesmelerine gerek olmadığını söyleyebilir.HTTP/1.1, tüm bağlantıların kalıcı olmasını gerektirirBağlantıyı açıkça eklemezseniz: başlığa yakın。 Yani aslında, HTTP/1.1'deki Bağlantı başlığı alanı artık keep alive değerine sahip değil, ancak tarihsel nedenlerle birçok web sunucusu ve tarayıcı HTTP/1.1 uzun bağlantılara Connection: keep-alive gönderme alışkanlığını hâlâ sürdürüyor.

Aslında, son birkaç bölüm neredeyse göz ardı edilebilir ve kısa bir özet şöyledir:


1. İçerik Uzunluğu: Eğer varsa ve geçerliyse, mesaj içeriğinin iletim uzunluğuyla tam olarak aynı olmalıdır. (Çok kısa ve zaman aşımına yol açmayacak kadar uzun olursa kesme testi yapıldı.) )
2. Eğer Transfer-Kodlama varsa (odak parçalanmışsa), başlıkta İçerik-Uzunluğu olamaz, bu da göz ardı edilir.
3. Kısa bir bağlantı kullanılırsa, mesajın iletim süresi doğrudan bağlantı sunucu üzerinden kapatılarak belirlenebilir. (Bu anlaşılması kolay)
Örneğin, HTTP protokolünün diğer özellikleriyle birleşince, Http1.1 canlı kalmayı desteklemiyordu. O zaman aşağıdaki sonuçlar çıkarılabilir:
1. Http 1.0 ve daha önceki sürümlerde, içerik uzunluğu alanı isteğe bağlıdır.
2. http1.1 ve sonraki sürümlerde. Canlı kalıyorsan, içerik uzunluğu ve tük ikisinden biri olmalı. Canlı tutulmazsa, http1.0 ile aynıdır. içerik uzunluğu.





Önceki:"Node.js: Let's Dozen C++ Extensions" pdf taranmış versiyon [146MB]
Önümüzdeki:Http protokolünün İçerik Boyu
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