2010-07-01 12 views
9

reversehttp.net वास्तव में क्या विपरीत है और इसका सबसे अच्छा उपयोग कैसे किया जा सकता है, इस बारे में थोड़ा तत्काल अंतर्दृष्टि प्रदान करता है, ऐसा लगता है कि यह टूल यथार्थ रूप से कार्यान्वित करना बहुत मुश्किल है। वातावरण के किस प्रकार में यह वास्तविक वास्तविक समय की वेब डेटा स्थिति हो सकती है और यह कब काम नहीं करेगी, कौन से ब्राउज़र इस विधि का समर्थन करते हैं, और यह वास्तव में क्या है?पृथ्वी पर क्या है रिवर्स एचटीटीपी और यह उपयोगी क्यों होगा?

  • अन्य पुश कार्यान्वयन से रिवर्सhttp अद्वितीय क्या बनाता है?

किसी भी व्यक्ति का धन्यवाद जो आपकी मदद कर सकता है और इसमें से सभी को यह सुना है, और जानता है कि यह क्या है।

उत्तर

6

रिवर्स HTTP क्लाइंट के लिए एक वेब सर्वर के साथ एक खुला कनेक्शन रखने का एक तरीका है ताकि वेब सर्वर क्लाइंट को अपडेट को धक्का दे सके (क्लाइंट को लगातार अपडेट के लिए पूछना पड़ता है)।

उदाहरण के लिए अपने क्लासिक ट्विटर क्लाइंट को लें।

वर्तमान में, ग्राहक आपके पास कोई अपडेट होने पर समय-समय पर ट्विटर से पूछता है। यदि नहीं, तो यह एक बर्बाद अनुरोध है।

रिवर्स HTTP जैसी तकनीक के साथ, ट्विटर पर कनेक्शन स्थापित करने के बाद ... ट्विटर आपको अपडेट करेगा जब आप दोनों और ट्विटर दोनों बैंडविड्थ, ओवरहेड और थोड़ा प्रयास सहेजते हैं।

सर्वर के साथ संचार करने वाले ब्राउज़र के अंदर एक वेब सर्वर चलाकर HTTP कार्यों को रिवर्स करें।

ऐसी ही तकनीकें हैं जो एक ही सुरक्षित, अधिक सुरक्षित तरीके से एक ही लक्ष्य को पूरा करती हैं। माइक्रोसॉफ्ट.NET क्लाइंट और सर्वर के बीच कनेक्शन को बनाए रखने के बाद डब्ल्यूसीएफ में डुप्लेक्स बाइंडिंग सेवाओं के रूप में इन प्रकार की सेवाओं को लागू करता है (क्लाइंट पर एक अलग सर्वर चलाने की बजाए)। धूमकेतु नामक एक तकनीक भी है जो एक ही चीज़ की अनुमति देती है।

+0

यह पुश बताता है, खुद को रिवर्स नहीं करता है। – Tom

+1

आमतौर पर PUSH कहलाता है जिसे वास्तव में वेब ब्राउज़र को मतदान करने की आवश्यकता होती है। यदि उपयोगकर्ता इसे इस तरह समझता है तो इसे अक्सर पुश कहा जाता है। हालांकि, यह वास्तव में तकनीकी स्तर पर धक्का है। –

1

बस पृष्ठ ब्राउज़: मेरे पढ़ने के बजाय, की, कहते हैं कि अद्यतन के लिए एक वेब ब्राउज़र मतदान और कोई नया डेटा खींच, वेब सर्वर के बजाय ग्राहक पर नए डेटा धक्का जब यह उपलब्ध हो जाता है।

उन अनुप्रयोगों के लिए जिनके लिए किसी भी नए डेटा की त्वरित प्रतिक्रिया की आवश्यकता होती है, इससे बार-बार मतदान के कारण बहुत सारे ट्रैफिक खत्म हो जाएंगे।

+0

धन्यवाद, मुझे अपने प्रश्न को फिर से लिखना होगा। मैं धूमकेतु और गलत वास्तविक समय के वेब तंत्र के अन्य तंत्र को समझता हूं, लेकिन यह वेबसाकेट्स, लांग पोलिंग आदि जैसे अन्य तरीकों के विपरीत कैसे काम करता है – Tom

+0

@ टॉम: आपके संपादन के जवाब में, आपको क्या लगता है कि कुछ भी है इसके बारे में अद्वितीय? क्या इसमें कुछ अन्य गलत समाधानों के समान कुछ गलत है? –

+0

नहीं, ऐसा नहीं है। लेकिन जो मैंने एकत्र किया है उससे एक बड़ा अंतर है, और यह उपयोगकर्ता और सर्वर दोनों को एक दूसरे के रूप में भूमिकाओं पर ले जाने का निहितार्थ है, संक्षेप में द्वि-दिशात्मक (लेकिन यह HTTP है, इसलिए नहीं वास्तव में)। मैं क्या जानना चाहता हूं कि यह भ्रम कैसे पूरा हुआ और इसके प्रभाव क्या हैं (यानी संगतता)। – Tom

0

कुछ डेमो (उदा। this one) को देखने से ऐसा लगता है कि यह के शीर्ष धूमकेतु-शैली इंटरफ़ेस के शीर्ष पर बनाया गया है। कार्यान्वयन सिर्फ क्लाइंट को एक पूर्ण HTTP सर्वर के रूप में प्रस्तुत करता है।

तो आपके जावास्क्रिप्ट में, यह "ऐसा लगता है" आप एक वेब सर्वर होस्ट कर रहे हैं जो "http://reversehttp.net/demo12345/" के अनुरोधों का जवाब देता है लेकिन असल में, "वास्तविक" वेब सर्वर से अनुरोधों को जावास्क्रिप्ट को धूमकेतु अनुरोधों के माध्यम से सुरंग किया जा रहा है क्लाइंट ब्राउज़र में चल रहा है और फिर से वापस।

जब ऐसा वर्णन किया गया है, तो यह अक्षम है, लेकिन जब आप मानते हैं कि ज्यादातर स्थितियों में, क्लाइंट और सर्वर दोनों एक ही कंप्यूटर पर चल रहे होंगे (इसलिए यह केवल दो कंप्यूटर एक दूसरे से बात कर रहे हैं) तो अक्षमता ज्यादातर गायब हो जाता है।

1

मैंने आपके द्वारा लिंक किए गए रिवर्स HTTP के स्रोत को देखा है।कार्यान्वयन में दो भाग होते हैं:

  1. HTTP रिले। यह वेबसाइट reversehttp.net पर होस्ट किया गया है। यह बस एक निश्चित यूआरएल (जो उत्पन्न होता है) के अनुरोधों के लिए इंतजार कर रहा है और इसे एक चैनल (आगे देखें 2) के लिए आगे भेजता है। यह फिर एक और चैनल (2 देखें) पर इंतजार करता है, और आगे अनुरोधकर्ता को।

  2. HTTP जावास्क्रिप्ट सर्वर। अजाक्स का उपयोग कर आने वाले किसी भी अनुरोध के लिए "क्लाइंट सर्वर" "सर्वर सर्वर" का चुनाव करता है। फिर, जब आपने "सर्वर सर्वर" पर यूआरएल का अनुरोध किया है, और इसे किसी चैनल को अग्रेषित किया गया है, तो यह "क्लाइंट सर्वर" को भेजा जाएगा। क्लाइंट सर्वर चरण 1 पर अनुरोध से मूल HTTP अनुरोध को पार्स करेगा, एक उत्तर (HTTP उत्तर) बनाएँ। यह उत्तर "सर्वर सर्वर" पर वापस भेजा जाएगा जो चैनल में समाप्त होता है जो अनुरोधकर्ता को वास्तविक उत्तर भेजता है।

यह क्लाइंट पर वास्तविक HTTP सर्वर होस्ट करने पर बिल्कुल नहीं है। इसके लिए एक खुली बंदरगाह 80 की आवश्यकता है, जिसमें अधिकांश लोगों के पास नहीं है। यदि आप एनएटी या फ़ायरवॉल के पीछे हैं, तो इसे कॉन्फ़िगर किया गया है, तो इसे किसी भी तरह अवरुद्ध कर दिया जाएगा।

मुझे लगता है कि लंबे मतदान या धूमकेतु का उपयोग करने का अनुमान लगाने से बेहतर विचार है। क्लाइंट पर HTTP शीर्षलेखों को पार्स करने का ओवरहेड काफी बोझिल है।

विनिर्देश HTTP अनुरोधों को रिले करने का एक तरीका बताता है। यह Content-Type "सर्वर सर्वर" से message/http पर किसी भी अनुरोध के शीर्षलेख को सेट करके किया जाएगा। मुझे लगता है कि एचटीएमएल अनुरोधों को प्रॉक्सी करने या रिले करने के लिए बेहतर समाधान हैं, बस Host को-टू-रिलेड-टू-फील्ड के क्षेत्र को बदलकर, एक विशेष फ़ील्ड जिसमें मूल प्रेषक के कुछ संदर्भ और पथ को घुमाया गया है, और भेजना अगले सर्वर पर संशोधित HTTP अनुरोध। फिर रिसीवर अनुरोध को वापस भेज देगा, और रिसीवर विशेष क्षेत्र की तलाश करता है, इसकी उत्पत्ति के पॉप, और श्रृंखला में आगे जवाब भेजता है।

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