2010-07-29 23 views
40

मैं करने के लिए एक HTTP अनुरोध करना कहते हैं: foosite.com लेकिन बंदरगाह मैं वास्तव में 6103 है करने के लिए अनुरोध भेज सकते हैं और मैं नहीं उदाहरण के लिए Host शीर्षक में है कि बंदरगाह रखूँ:क्या पोर्ट नंबर HTTP "होस्ट" हैडर पैरामीटर में आवश्यक है?

GET /barpage HTTP/1.1 
Host: foosite.com 
Method: GET 

http सर्वर तो पहचान करनी चाहिए कि मैं पोर्ट 6103 पर बात करने की कोशिश कर रहा हूं? या जब से अनुरोध हेडर में छोड़ा गया था, क्या मैं वास्तव में यह पहचानता हूं कि क्या सर्वर वास्तव में इसे पहचानता है?

मैं यह सवाल कहने के लिए कहता हूं: मुझे पता चला है कि ब्राउज़र, कम से कम फ़ायरफ़ॉक्स + क्रोम, बंदरगाह को Host शीर्षलेख रखता है। लेकिन मैं जिस जावा ऐप का उपयोग कर रहा हूं वह नहीं है। और जब पोर्ट Host में पारित नहीं होता है तो सर्वर वापस सोचता है कि मैं पोर्ट 80 पर हूं। तो मुझे बैजर करने की आवश्यकता कौन है? सर्वर ऑपरेटर, या जावा प्रोग्रामर?

+4

6103 HTTP – NullUserException

+0

के लिए एक अजीब बंदरगाह है I @UullUserException से सहमत हूं। एचटीटीपी पोर्ट 80 पर डिफ़ॉल्ट है, इसलिए मैं आपके जावा डेवलपर के साथ यह सुनिश्चित करने के लिए प्राप्त करूंगा कि वे अपने कॉल में गैर मानक पोर्ट शामिल करें। – kbrimington

+0

यह मूल रूप से अचल संपत्ति लिस्टिंग के लिए एक एपीआई सेवा के लिए है। विशेष रूप से आरईटीएस http://www.rets.org/documentation। कई लिस्टिंग सेवाओं के लिए आरईटीएस प्रदान करने वाली कंपनियां या तो उन्हें अपने मुख्य डोमेन से सबडोमेन या पोर्ट प्रदान करती हैं जैसे कि socalmls.someretscompany.com या someretscompany.com:6111। मुझसे मत पूछो कि वे बंदरगाहों का उपयोग क्यों करते हैं। मैं बस यहाँ काम करता हूं;) –

उत्तर

46

section 14.23 of the HTTP spec देखें जो यह बताता है कि बंदरगाह #, के रूप में के लिए आवश्यक है, तो के 80

+2

हाँ मैंने इसे आरएफसी में भी पढ़ा। मुझे शायद यह ध्यान रखना चाहिए था। मैं उम्मीद कर रहा था कि किसी को यह जानकर कुछ जानकार हो कि कुछ वेब सर्वर और वेब ऐप ढांचे इस तरह के अनुरोध पर प्रतिक्रिया कैसे करते हैं: "कुछ वेब सर्वर/ऐप ढांचे इसे संभालते हैं, लेकिन एक्स और वाई नहीं करते हैं" इत्यादि। आखिरकार मुझे यह स्वीकार करने की उम्मीद थी कि आरएफसी को क्या कहना है, लेकिन मैं हारने से एक दिन पहले यह प्रश्न देने जा रहा हूं। –

+4

@ सुपरफेल का मतलब है कि आपको सही होना चाहिए और सही नहीं होना चाहिए? – Pacerier

+0

धन्यवाद, अब मुझे पता है कि यह एक है [आईई 11 मोबाइल में बग] (https://answers.microsoft.com/en-us/winphone/forum/-/-/23abc83b-c28f-4838-ac82-5b043e48d8e2)! – Eric

4

ब्राउज़र (और कर्ल) ने अपने नहीं डिफ़ॉल्ट पोर्ट बंदरगाह जोड़ देगा केवल जब यह मानक पोर्ट नहीं है शामिल किया जाना चाहिए HTTP spec और @ superfell के answer में नोट किया गया।

ब्राउज़र इस दिन (2013), वास्तव में स्ट्रिप पोर्ट हेडर से पोर्ट (मानक पोर्ट पोर्ट 80, https पोर्ट 443) होगा। कुछ ग्राहक, जो अपनी विधि का उपयोग करते हैं, जैसे कि Baidu स्पाइडर, include the port number even when the port is 80

चाहे यह उचित है या नहीं, मुझे नहीं पता। कल्पना यह नहीं कहती कि पोर्ट ठीक है या नहीं, पोर्ट बंद करने के लिए यह सही है या नहीं।

अपने comment का उत्तर देने के लिए, सर्वर स्पेस का अनुपालन करने के लिए जो भी करने की ज़रूरत है, वह करेंगे, और spec केवल वही मामलों को सुझाता है जब इसकी आवश्यकता होती है। इस वजह से, मुझे लगता है कि यह वास्तव में कोई सवाल नहीं है कि सर्वर इसके साथ कैसे व्यवहार करता है - यह क्लाइंट अनुरोध को जारी करता है: होस्ट हेडर में पोर्ट नंबर शामिल है या नहीं।

+0

spec स्पष्ट रूप से कहता है कि बंदरगाह संख्या (नामकरण प्राधिकरण पोर्ट शामिल है) को शामिल करना ठीक है, यानी पोर्ट नंबर * आवश्यक * है, जब तक कि यह सेवा के लिए डिफ़ॉल्ट न हो। –

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