मैं सर्वर पोर्ट के घाट और बिलाव के कार्यान्वयन को देखा, और यह मेरा निष्कर्ष है:
- अनुरोध URL उस में एक बंदरगाह संख्या है जब (जैसे http (s): // वेबसाइट।कॉम: 8888/blah/बकवास करना), getServerPort() हमेशा लौट क्या है (उदाहरण के लिए, 8888) अनुरोध URL में शामिल किया गया था
- अनुरोध URL उस में एक पोर्ट संख्या है, तो
नहीं है जब यदि
- बिलाव = सच SSLEnabled देखता
- 443 लौटा दी जाएगी
- जेट्टी देखता स्कीमा = https
- 80 लौटा दी जाएगी अगर
- SSLEnabled देखता = false
- जेट्टी देखता स्कीमा = http
इसलिए, getServerPort() अपाचे HTTP सर्वर या लोड संतुलन यह के सामने बैठे के साथ कोई संबंध नहीं है (यदि कोई भी), या आईपी टेबल मार्ग टॉमकैट/जेट्टी सर्वर पर बैठे हैं। वे हमेशा http/https के आधार पर मानक पोर्ट नंबर वापस कर देंगे, जब तक अनुरोध URL में कोई पोर्ट नंबर निर्दिष्ट नहीं किया जाता है।
स्रोत
2017-09-27 19:02:48
मैंने पहली बार प्रश्न पढ़ते समय एपीआई पढ़ा, और यह तुरंत मेरे लिए स्पष्ट नहीं था कि जब तक मैंने जोआचिम के जवाब को देखा (और मैं इसे जीवित रहने के लिए करता हूं) तो अंतर क्या था। तो मुझे लगता है कि अंतर के साथ संघर्ष करने के लिए मूल पोस्टर (जो "सर्वलेट का अध्ययन" कर रहा है) के लिए यह काफी उचित है। –
@ जैक बिल्कुल, मैंने केवल एपीआई दस्तावेज़ को संदर्भ के रूप में चिपकाया (और होस्ट हेडर सामान के लिए)। –