2010-02-16 16 views
5

HTTP içsellerini daha iyi anlamayı deniyorum ve genellikle "varlık" ve "iletiler" belirtiminde belirtildiği gibi, yeterli açıklama olmadan garip bir şekilde, inanın ya da inanmayın. Bir araya getirdiğim şeyden biri, bir istek/yanıt zincirine bölünmüş ve/veya kodlama parçalanma kurallarını aktarırken bile içeriğin kendisini tanımlar, diğeri ise tek bir HTTP isteğinin içeriğini tanımlar - yani başlıkları izleyen ve bir CRLF ile biten bir şey. Benim problemim hangisinin tam olarak olduğunu anlayamıyorum.İleti hangisi ve HTTP terminolojisindeki varlık hangisidir?

cevap

8

bir HTTP-message bir talep veya yanıt biri geçerlidir:

HTTP-message = Request | Response  ; HTTP/1.1 messages 

bir HTTP mesaj sıfır veya daha fazla mesaj -başlık ⁠s sahip olabilen bir ileti-gövdesi:

generic-message = start-line 
        *(message-header CRLF) 
        CRLF 
        [ message-body ] 

Yani değil her HTTP mesajı bir mesaj gövdesi sahiptir. Bir mesaj gövdesi varsa, o zaman bu da varlık vücut var: Yani Kısacası

message-body = entity-body 
       | <entity-body encoded as per Transfer-Encoding> 

: Bir ileti bütün HTTP isteği veya yanıttır. Ve varlık, iletinin gövdesi (varsa) ve ilgili entity header fields'dur.

+0

Tamam, ama yukarıdaki bir varlık-beden nedir? Dosya verilerini taşıyan "multipart/form-data" olarak belirtilen içerik türünde bir POST isteğini ve bir çift değişken değer çiftini ele alalım. İstekte bir mesaj tüm istek, başlık ve hepsi doğru mu? Mesajın gövdesi başlıkları izleyen ikili blob, değil mi? Şey, varlık bedeninin başka bir şey olduğunu düşünüyorum ... Neyse, görebildiğiniz gibi neredeyse kafam çok karışık ... – amn

+1

@amn: Varlık mesajda. Varlık * varlık-başlık * ⁠s ve * varlık-gövdesi * (* mesaj gövdesi *) toplamıdır. * İleti başlığının * bazıları iletiyi açıklar ve bazıları varlığı tanımlar. * Tarih *, örneğin, bir * mesaj başlığı * (mesajı tanımlar) ve * İçerik Türü * bir * varlık-başlığıdır * (varlığı açıklar). – Gumbo

+0

Evet, bu her şeyi açıklıyor, teşekkürler! Bir öğenin bir türünü kodladığını ve aktardığını, ancak bir öğenin türü olduğunu ve her ikisinin de farklı başlıklar tarafından tanımlandığını düşündüm. – amn

İlgili konular