HTTP/2

2015-07-29 6 views
22

के साथ आरईएसटी एपीआई महीने पहले जोड़े, HTTP/2 को RFC7540 के रूप में प्रकाशित किया गया है। यह HTTP/1.1HTTP/2

पर निर्मित मौजूदा REST API को कैसे प्रभावित करेगा wikipedia के अनुसार, HTTP/2 ने नई विशेषताएं जोड़ दी हैं। हम इन नई सुविधाओं का लाभ कैसे उठा सकते हैं?

इस प्रश्न को बेहतर बनाने के लिए स्वतंत्र महसूस करें।

धन्यवाद।

उत्तर

18

HTTP का मुख्य अर्थात् HTTP/2 में बनाए रखा गया है। इसका मतलब यह है कि संसाधनों की पहचान के लिए अभी भी HTTP methods जैसे GET, POST, आदि, HTTP headers, और URIs हैं।

क्या HTTP करने के लिए HTTP/2 सम्मान के साथ में बदल गया है/1.1 रास्ता HTTP अर्थ (जैसे "मैं मेजबान domain.com पर PUT संसाधन /foo करना चाहते हैं") तार पर ले जाया जाता है है।

इस प्रकाश में, HTTP/1.1 पर निर्मित आरईएसटी एपीआई पहले से ही पारदर्शी रूप से काम करना जारी रखेंगे, अनुप्रयोगों में कोई बदलाव नहीं किया जाएगा। अनुप्रयोगों को चलाने वाले वेब कंटेनर अनुप्रयोगों की ओर से सामान्य HTTP अर्थात् में नए तार प्रारूप का अनुवाद करने का ख्याल रखेंगे, और एप्लिकेशन केवल उच्च स्तर HTTP अर्थपूर्ण दिखाई देगा, भले ही इसे HTTP/1.1 या HTTP/तार पर 2।

क्योंकि HTTP/2 तार प्रारूप अधिक कुशल है (विशेष रूप से मल्टीप्लेक्सिंग और संपीड़न के कारण), HTTP/2 के शीर्ष पर आरईएसटी एपीआई इसका भी लाभ उठाएंगे।

HTTP/2, HTTP/2 Push में मौजूद अन्य प्रमुख सुधार, सहसंबंधित संसाधनों के कुशल डाउनलोड को लक्षित करता है, और यह शायद आरईएसटी उपयोगकेस में उपयोगी नहीं है।

टीएलएस पर HTTP/2 की एक सामान्य आवश्यकता तैनात की जानी चाहिए। इसके लिए http से https पर जाने के लिए नियोक्ता की आवश्यकता होती है, और उस समर्थन के लिए आवश्यक आधारभूत संरचना सेट करें (विश्वसनीय प्राधिकारी से प्रमाणपत्र खरीदें, उन्हें नवीनीकृत करें, आदि)।

+0

तो आपको वेब एप्लिकेशन/एपीआई के बारे में कुछ भी बदलने की ज़रूरत नहीं है?बस इसे सर्वर (टीएलएस सहित) पर कॉन्फ़िगर करें और यह सही काम करता है? – greenhoorn

+0

सही। मैं वहां हर वेब सर्वर के लिए बात नहीं कर सकता, लेकिन जेटी के लिए (मैं एक कमिटर हूं) आप जेटी को 'http2' मॉड्यूल के साथ कॉन्फ़िगर करते हैं और आप जाने के लिए अच्छे हैं। – sbordet

4

HTTP/2 spec जानबूझकर एप्लिकेशन प्रोग्रामर के लिए नए अर्थशास्त्र पेश नहीं किया। वास्तव में, प्रमुख क्लाइंट-साइड लाइब्रेरीज़ (आईओएस पर एनएसयूआरएलशन, एंड्रॉइड पर ओकेएचटीपी, रिएक्ट नेटिव, ब्राउज़र वातावरण में जेएस) एक डेवलपर के रूप में आपके लिए HTTP/2 पारदर्शी रूप से समर्थन करते हैं।

एकल टीसीपी कनेक्शन पर कई अनुरोधों को मल्टीप्लेक्स करने की HTTP/2 क्षमता के कारण, अतीत में लागू कुछ अनुकूलन अनुप्रयोग डेवलपर, जैसे कि request batching अप्रचलित और यहां तक ​​कि प्रति-उत्पादक भी बन जाएंगे।

पुश सुविधा का उपयोग घटनाओं को वितरित करने के लिए किया जाएगा और कुछ अनुप्रयोगों में मतदान और संभावित रूप से वेबसाइकिलों को प्रतिस्थापित करने में सक्षम होंगे।

HTTP/2 में आरईएसटी एपीआई में सर्वर पुश सुविधा का एक संभावित अनुप्रयोग क्लाइंट को समय से पहले अपेक्षित अनुरोधों को दबाकर विरासत अनुप्रयोगों को तेज करने की क्षमता है, ताकि वे आने के इंतजार कर सकें। अर्थात। लॉग इन अनुरोध पूरा होने के ठीक बाद उपयोगकर्ता प्रोफ़ाइल के जवाब पुश करें, और अन्य सामान्य एपीआई कॉल।

हालांकि पुश अभी तक सर्वर और क्लाइंट इंफ्रास्ट्रक्चर में व्यापक रूप से लागू नहीं हुआ है।

+0

मुझे लगता है कि HTTP/2 कुछ नए अर्थशास्त्र (जैसे सर्वर पुश) पेश करता है, लेकिन यह मौजूदा HTTP/1.x अर्थशास्त्र में से कोई भी नहीं बदलता है, इसलिए यह पीछे की ओर संगत है। इस प्रकार वेब अनुप्रयोगों को पारदर्शी रूप से HTTP/2 में अपग्रेड किया जा सकता है। – zeronone

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