2012-04-29 31 views
16

क्या प्रॉक्सी सर्वर द्वारा सर्वर पर अग्रेषित करने से पहले कोई अनुरोध हेडर जोड़ा गया है या HTTP अनुरोध में संशोधित है?क्या HTTP प्रॉक्सी सर्वर अनुरोध पैकेट संशोधित करते हैं?

यदि हां, तो क्या समान पैकेट में किए गए परिवर्तन हैं, या संशोधनों के साथ नए अनुरोध पैकेट बनाने के लिए उपयोग की जाने वाली सामग्री हैं?

उत्तर

25

कुछ अलग प्रकार के प्रॉक्सी सर्वर हैं। चूंकि आपने अनुरोध हेडर का उल्लेख किया है, इसलिए मुझे लगता है कि आप HTTP प्रॉक्सी सर्वर के बारे में बात कर रहे हैं, जो HTTP अनुरोधों को आगे बढ़ाते हैं, पैकेट नहीं।

नोट: (CONNECT के माध्यम से TLS/SSL) HTTPS requests के विशेष मामले में, प्रॉक्सी सर्वर होगा टीसीपी पैकेट की बस आगे सामग्री (और पैकेट का निरीक्षण करने में असमर्थ हैं जब तक कि एक man-in-the-middle प्रॉक्सी के रूप में कार्य) ।


बेशक यह प्रॉक्सी सॉफ्टवेयर और इसके विन्यास पर निर्भर करता है, लेकिन HTTP प्रॉक्सी उम्मीद कर रहे हैं W3C Guidelines for Web Content Transformation Proxies है, जो बहुत सी बातें कहता है पालन करने के लिए है, लेकिन सबसे प्रासंगिक:

  • HEAD और GET प्रॉक्सी के बीच कनवर्ट करने के अलावा अनुरोध विधियों को परिवर्तित नहीं करना चाहिए।

  • यदि अनुरोध में Cache-Control: no-transform निर्देश है, तो प्रॉक्सी को आरएफसी 2616 HTTP अनुभाग खंड 14.9.5 और खंड 13.5.2 में परिभाषित पारदर्शी HTTP व्यवहार का अनुपालन करने के अलावा अनुरोध को परिवर्तित नहीं करना चाहिए और इसमें वर्णित हेडर फ़ील्ड जोड़ने के लिए 4.1.6 Additional HTTP Header Fields

  • RFC 2616 HTTP प्रॉक्सी के लिए आवश्यक User-Agent, Accept, Accept-Charset, Accept-Encoding, और Accept-Language हेडर फील्ड के अलावा अन्य शीर्ष लेख फ़ील्ड के मूल्यों को संशोधित नहीं किया जाना चाहिए संशोधनों से

    अन्य और शीर्ष लेख फ़ील्ड को नष्ट नहीं करना चाहिए।

  • प्रॉक्सी को X-Forwarded-For HTTP शीर्षलेख फ़ील्ड में अल्पविराम से अलग सूची के अंत में अनुरोध के आरंभकर्ता का आईपी पता जोड़ना चाहिए।

  • प्रॉक्सी (आरएफसी 2616 के अनुसार) में Via HTTP शीर्षलेख फ़ील्ड शामिल होना चाहिए।


सारांश में, आप आम तौर पर उम्मीद कर सकते हैं इन HTTP हेडर परिवर्तित करने की/जोड़ा मानकों का अनुपालन करने के लिए प्रॉक्सी द्वारा:

  • User-Agent
  • Accept
  • Accept-Charset
  • Accept-Encoding
  • Accept-Language
  • X-Forwarded-For
  • Via
+0

मैं भाग "आगे अनुरोध नहीं पैकेट" नहीं मिलता है। क्या आपका मतलब है कि यह आने वाले पैकेट से http अनुरोध का पुनर्निर्माण करेगा और फिर उन्हें संशोधित करेगा? – Ashwin

+0

@ अश्विन: मुझे लगता है कि आप यहां HTTP प्रोटोकॉल को गलत समझ रहे हैं। HTTP एक अनुप्रयोग प्रोटोकॉल है, जो [ओएसआई मॉडल] की _application_ परत में है (http://en.wikipedia.org/wiki/OSI_model)। सभी HTTP 'पैकेट' वास्तव में टीसीपी पैकेट हैं, और HTTP सीधे पैकेट से निपटता नहीं है (यह सब _transport_ और [ओएसआई मॉडल] की _network_ परतों पर होता है (http://en.wikipedia.org/wiki/OSI_model))। – Xenon

+0

जब मैं "www.google.com" जैसे बॉसर में अनुरोध करता हूं, तो यह अनुरोध एप्लिकेशन स्तर (ब्राउज़र) से सीधे भौतिक स्तर (जो एनआईसी है) से जाता है। अब प्रॉक्सी सर्वर इसे पुनर्प्राप्त करता है और फिर भौतिक स्तर डेटा को लेयर 2 पर डीकोड करता है और इसी तरह ... परिवहन (परत 4) पर। यहां यह डेटा को संशोधित करता है और फिर इसे सही करता है? – Ashwin