2010-02-16 15 views
5

मैं HTTP आंतरिक की बेहतर समझ बनाने की कोशिश कर रहा हूं, और विनिर्देशन में अक्सर "संस्थाएं" और "संदेश" का उल्लेख किया गया है, हालांकि उचित स्पष्टीकरण के बिना आश्चर्यजनक रूप से पर्याप्त है, मान लीजिए या नहीं। जो मैंने एकत्र किया है, उससे कोई भी सामग्री को पहचानता है, भले ही अनुरोध/प्रतिक्रिया श्रृंखला और/या स्थानांतरण एन्कोडिंग विखंडन नियमों में विभाजित हो, जबकि दूसरा एक HTTP अनुरोध की सामग्री की पहचान करता है - यानी सीआरएलएफ के साथ शीर्षलेख और समाप्त होता है। मेरी समस्या यह है कि मैं यह नहीं समझ सकता कि कौन सा वास्तव में है।कौन सा संदेश है और HTTP शब्दावली में कौन सी इकाई है?

उत्तर

8

एक HTTP-message या तो एक अनुरोध या एक प्रतिक्रिया है:

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

एक HTTP-संदेश शून्य या अधिक संदेश हेडर ⁠s है और हो सकता है एक संदेश-शरीर:

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

तो नहीं हर HTTP-संदेश एक संदेश-शरीर है। लेकिन अगर यह एक संदेश-शरीर है, तो वह भी इकाई शरीर है:

message-body = entity-body 
       | <entity-body encoded as per Transfer-Encoding> 
संक्षेप में

तो: एक संदेश पूरे HTTP अनुरोध या प्रतिक्रिया है। और इकाई संदेश का शरीर है (यदि कोई है) और इसके संबंधित entity header fields है।

+0

ठीक है, लेकिन उपरोक्त में एक इकाई-शरीर क्या है? आइए सामग्री प्रकार के साथ एक POST अनुरोध पर विचार करें जिसे "मल्टीपार्ट/फॉर्म-डेटा" के रूप में निर्दिष्ट किया गया है, जिसमें फ़ाइल डेटा होता है, और कुछ चर-मूल्य जोड़े होते हैं। अनुरोध में, एक संदेश संपूर्ण अनुरोध, हेडर और सब है, है ना? संदेश का मुख्य भाग बाइनरी ब्लॉब है जो हेडर का पालन करता है, है ना? बात यह है कि, मुझे लगता है कि इकाई निकाय कुछ और है ... वैसे भी, जैसा कि आप देख सकते हैं, मैं लगभग उलझन में हूं क्योंकि मैं ... – amn

+1

@amn: इकाई संदेश में है। इकाई * इकाई-हेडर * ⁠s और * इकाई-शरीर * (* संदेश-शरीर *) का योग है। कुछ * संदेश-हेडर * ⁠ संदेश का वर्णन करते हैं और कुछ इकाई का वर्णन करते हैं। * तिथि *, उदाहरण के लिए, एक * संदेश-हेडर * है (यह संदेश का वर्णन करता है) और * सामग्री-प्रकार * एक * इकाई-शीर्षलेख * है (यह इकाई का वर्णन करता है)। – Gumbo

+0

हां, यह सब बताता है, धन्यवाद! मुझे लगा कि एक संदेश एन्कोड करता है और एक इकाई स्थानांतरित करता है, जबकि इकाई का एक प्रकार होता है - और इसलिए दोनों अलग-अलग शीर्षकों द्वारा परिभाषित किए जाते हैं। – amn

संबंधित मुद्दे