2016-09-01 12 views
5

एचटीएमएल 5 इवेंटसोर्स ऑब्जेक्ट के माध्यम से एसएसई का उपयोग करते समय, अनुरोध HTTP/2 मल्टीप्लेक्सिंग/पाइपलाइनिंग सुविधाओं का उपयोग करते हैं? विशेष रूप से, क्या विभिन्न टैब (एस) में एसएसई अनुरोध समान HTTP/2 कनेक्शन का उपयोग करेंगे?क्या सर्वर-प्रेषित घटनाएं HTTP/2 पाइपलाइनिंग का उपयोग करती हैं

मुझे ऐसा लगता है, चूंकि एसएसई HTTP/1.1 chunked_encoding तकनीक पर आधारित है (AFAIK), लेकिन जांचना चाहता था।

+1

एचटीटीपी/2 परिवहन स्तर पर काम करता है और यह टीएलएस के करीब है (सटीक होने के लिए इसे टीएलएस को अधिकतर एप्लिकेशन-लेयर प्रोटोकॉल वार्ता (एएलपीएन) एक्सटेंशन के रूप में लागू किया गया है) HTTP 1.1 के प्रतिस्थापन के रूप में। इस प्रकार सर्वर-प्रेषित घटनाओं में HTTP/2 के साथ संयोजन में कोई समस्या नहीं है और * * पाइपलाइनिंग सुविधाओं का उपयोग करना चाहिए। HTTP/2 के डिज़ाइन लक्ष्य में से एक था: पुराना अनुप्रयोग, जिसे HTTP 1.1 का उपयोग करने के लिए विकसित किया गया था, को स्वचालित रूप से HTTP/2 के सबसे अधिक फायदे का उपयोग करना चाहिए (एक को अभी भी सर्वर पुश का उपयोग करने के लिए संशोधन करना होगा)। – Oleg

उत्तर

2

हां वे करेंगे। क्रोम का http2 टैग यह जानने का एक शानदार तरीका है कि http2 अनुरोध कैसे उत्सर्जित होते हैं: chrome: // net-internals/# http2।

SSE द्वारा उत्सर्जित अनुरोधों के लिए, आप की तरह कुछ देखना चाहिए:

   HTTP2_SESSION_SEND_HEADERS 
         --> exclusive = true 
         --> fin = true 
         --> has_priority = true 
         --> :method: GET 
          :authority: h2.example.org 
          :scheme: https 
          :path: /demo_sse.php 
          accept: text/event-stream 
          cache-control: no-cache 
          referer: https://h2.example.org/ 
          accept-encoding: gzip, deflate, sdch, br 
          accept-language: en-US,en;q=0.8,fr;q=0.6,es;q=0.4 
         --> parent_stream_id = 0 
         --> priority = 1 
         --> stream_id = 7 

आप इस उदाहरण में देख सकते हैं, ब्राउज़र स्ट्रीम आईडी 7 पर अनुरोध भेजा, कनेक्शन यह करना पड़ा पुनः उपयोग एचटीएमएल लाओ।

1

सैद्धांतिक रूप से, हाँ। और, व्यावहारिक रूप से जवाब वही होना चाहिए, क्योंकि अधिकांश ब्राउज़रों ने एसएसई को XmlHttpRequest2 ऑब्जेक्ट के शीर्ष पर लागू किया है।

(निष्पक्ष होने के लिए, मुझे एक निश्चित संदर्भ नहीं मिला है जो कहता है कि एक ही उत्पत्ति के लिए AJAX अनुरोध टैब पर साझा किए जाते हैं, लेकिन यह कल्पना करना मुश्किल है कि ब्राउज़र ने ऐसा क्यों नहीं किया होगा - मैंने प्रबंधित नहीं किया है उदाहरण के लिए, सुरक्षा कारण के साथ आने के लिए।)

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