Back to "HTTP दशक के पार: डॉक्टर की एक कहानी"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

HTTP Networking Opinion Web Development

HTTP दशक के पार: डॉक्टर की एक कहानी

Sunday, 28 December 2025

एचटीटीपी ने विकास नहीं किया. यह था बाध्य करें भौतिक रूप से, देर - देर तक, और दुरुपयोग से बदलाव करने के लिए ।

हर संस्करण मौजूद है क्योंकि पिछले एक कठिन प्रतिबन्ध मारा. यदि आप उन प्रतिबन्धों को समझते हैं, आप समझते हैं कि क्यों वेब काम करता है यह करता है - और क्यों इतने सारे "सबसे अच्छे अभ्यास" वास्तव में प्रोटोकॉल सीमाओं के लिए हल कर रहे हैं हम तीस साल के लिए खींच रहे हैं.

मैं 1997 से वेब अनुप्रयोगों को निर्माण किया गया है. मैंने HTTP/ हक़ कनेक्शन को बंद किया है, ब्राउज़र को प्रति होस्ट पर छह कनेक्शन खुला एक "feature" के रूप में देखा है, HTTP/2 के सिर पर शापित है, और अंत में देखा कि हम क्या जानते हैं: नेटवर्क के साथ सभी समस्या है:

यह एक प्रोटोकॉल शिक्षण नहीं है. यह कैसे हम यहाँ मिला की कहानी है.

एचटीटीपी/ UID: अ- बिना पाठ जो अनेबल पाइपों पर नहीं हैं

यह दुनिया जिसे बनाया गया था

HTTP/ हक़ एक ऐसे संसार के लिए १९९६ में बनाया गया था जो अब मौजूद नहीं है. यह क्यों काम करता है समझने के लिए, आपको यह समझने की ज़रूरत है कि १९९६ में इसका क्या मतलब है:

  • डायलअप कनेक्शन 28.8kbs में (यदि आप भाग्यशाली थे)
  • पृष्ठ दस्तावेज़ थे - पाठ, शायद कुछ छोटी छवि, हायपरलिंक्स
  • उपयोक्ता क्लिक किया गया और इंतजार कर रहा है - तत्काल प्रतिक्रिया वांछित नहीं था
  • सर्वर महँगे थे - विश्वव्यापी और कंपनियों, सभी नहीं

इस दुनिया में, बोतल शीर्ष था बिटरेट, देर से नहीं. एक ५०केबी पृष्ठ को डायल अप पर डाउनलोड करने के लिए 15 सेकंड लगते हैं. एक अतिरिक्त 200 mms हाथ की परवाह कौन करता है?

के लिए एचटीटीपी/1.0 का क्या कारण है:

  • सिमुलेटिकता (टेलेट के साथ उपयोगी)
  • स्टेटीज (सर्वर को ट्रैक नहीं करता है)
  • मानव पढ़ने की क्षमता (पाठ प्रोटोकॉल)
  • एक निवेदन, एक प्रतिक्रिया, कनेक्शन बन्द
GET /index.html HTTP/1.0
Host: example.com

HTTP/1.0 200 OK
Content-Type: text/html

<html>...

सरल. एल. एल. एल. सी.

इसका दबाव जो इसे प्रभावित करता है

तब वेब बदल गया. फास्ट.

1998 तक, पृष्ठ सिर्फ दस्तावेज़ नहीं थे. उनके पास स्टाइलशीट, जावास्क्रिप्ट, बहुत सी छवियाँ थीं. एक एकल पृष्ठ 20-30 अलग संसाधनों की आवश्यकता होगी.

प्रत्येक निवेदन आवश्यक:

  1. टीसीपी हैंड- बुक (1 दौर यात्रा)
  2. निवेदन भेजा (1 दौर यात्रा)
  3. प्रतिक्रिया प्राप्त हुई
  4. कनेक्शन बन्द
  5. प्रत्येक छवि के लिए दोहराएँ, स्टाइलशीट, स्क्रिप्ट...

20 संसाधनों के साथ एक पृष्ठ का अर्थ 20 TCP हाथ मिलाना था. 200 बजे से लेकर (अभी तक), यह 4 सेकंड का है सिर्फ हाथों से चेकिंग किसी भी स्थानांतरित सामग्री से पहले।

एचटीटीपी/1.0 का बुनियादी अनुमान:

समय बहुत महँगा था ।

सन्‌ 1999 के आते - आते, सिरिया फिर से ठीक हो गयी मगर फिर भी वह ठीक हो गयी । लेटण्डी नहीं था - और अचानक उन दौरों के बारे में बात की.

एचटीटीपी/1.0 दस्तावेज़ के लिए डिजाइन किया गया था. वेब अनुप्रयोग मंच बन गया था. कुछ देने के लिए दिया गया था.

एचटीटीपी/1.1: हम यह पैच करेंगे

यह दुनिया जिसे बनाया गया था

HTTP/1.1 1997 में आया था, जैसे कि वेब हिलना शुरू हो रहा था. हर व्यवसाय के लिए एक वेबसाइट की जरूरत थी. वेब पृष्ठ खाका, जावास्क्रिप्ट के लिए जटिल तालिका हो रही थी हर जगह छवियों.

दबाव स्पष्ट था: कनेक्शन-पर-पुंसता ही हत्या कर दी गई थी. लेकिन पूरी तरह से पुनःविचारित HTTP एक विकल्प नहीं था. बहुत ज्यादा इन पर पहले से ही निर्भर है. समाधान को पीछे की आवश्यकता थी.

क्या बदल गया:

  • पथ में बदलें (Connection: keep-alive डिफ़ॉल्ट से - टीसीपी कनेक्शन फिर प्रयोग करें
  • क्लीड ट्रांसफर एनकोडिंग (चैट प्रतिक्रियाएं बिना आकार के)
  • होस्ट शीर्ष (v) प्रति आईपी साइट, साझा होस्टिंग के लिए अनिवार्य)
  • कैशिक्स (Cache-Control, ETag, शर्तबद्ध निवेदन
  • पाइप कापी करें ( जवाब के लिए इंतजार किए बगैर बहुत से निवेदन भेजें)

क्या नहीं बदला:

  • अभी भी अनुक्रमीय प्रतिक्रिया (यह भी पाइप प्रतियाँ के साथ)
  • अभी भी पाठ शीर्ष (हर निवेदन पर संकेत करें)
  • एक समय में एक अनुक्रिया
GET /page.html HTTP/1.1
Host: example.com
Connection: keep-alive

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Cache-Control: max-age=3600

...

क्यों यह काम से लिया गया

HTTP/1.1 वास्तव में प्रदर्शन समस्या को हल नहीं किया. यह सिर्फ चारों ओर ले गया.

पाइप पिल्ला एक विफलता थी. संकेतक को एक कनेक्शन पर बहुत से निवेदन भेजने की अनुमति दी गई, लेकिन:

  • प्रतिक्रियाओं को वापस आना पड़ा अनुक्रम (- ऑफ- लाइन ब्लॉक)
  • एक धीमी प्रतिक्रिया ने उसके पीछे सब कुछ बंद कर दिया
  • बगय प्रॉक्सी पुरूष आपस में समझौता किए गए निवेदन
  • अधिकांश ब्राउज़रों ने इसे पूरी तरह अक्षम किया

इसी प्रकार ब्राउज़रों ने धोखा दिया। प्रोटोकॉल को ठीक करने के बजाय, वे उसके चारों ओर काम करते थे:

  • खोलें 6 एक सेना के साथ मिलते - जुलते कनेक्शन (ब्लr सीमा)
  • प्रयोक्ता डोमेन एस- हार्डिंग (static1.example.com, static2.example.comकनेक्शन को गुणा करने के लिए
  • स्पाइट्स छवियों को मिलाएँ
  • सीएसएस/JMS क्लैण्डिंग निवेदन कम करने के लिए
  • सीडीएनएस देर से मुद्रा कम करने के लिए

यह बनावट के रूप में काम किया जा रहा प्रोटोकॉल में से कोई भी था. यह सम्पूर्ण पर्यावरण व्यवस्था थी HTTP/1.1 के बुनियादी सीमा.

एचटीटीपी/1 नकल करने के द्वारा स्केल किया गया है, मॉडल को ठीक करने के द्वारा नहीं.

क्यों?

एचटीटीपी/1. 1 काम किया पर्याप्त पंद्रह वर्ष तक नहीं, क्योंकि यह अच्छा था, परन्तु इसलिये कि पर्यावरण का बदला दिया गया था।

  • बाँग्लादेश आ गया । 200 बजे के बजाय 20 बजे हाथ मिलाना मुश्‍किल था ।
  • मूर की कानून मदद की. सर्वर 2005 के आते - आते छः कनेक्शनों को संभाल सकता है ।
  • सीडीएन ने समस्या को मास्क किया. किनारा सर्वर 20ms 200ms के बजाय दूर.
  • डेस्कटॉप न्यूनतम. तारी कनेक्शन, कम संतुलन, भरोसेमंद नेटवर्क.

प्रोटोकॉल अभी भी टूट गया था. हम सिर्फ भाग्यशाली दुनिया इसे छिपा रहा था.

वास्तविक लागत

उन छह कनेक्शन प्रति होस्ट मुक्त नहीं थे:

  • प्रत्येक कनेक्शन का अर्थ एक अन्य टीसीपी हैंड- बुक था
  • प्रत्येक कनेक्शन TX के लिए प्रयास किया गया
  • सर्वर को तथाकथित कनेक्शन को बनाए रखना था
  • शीर्ष- ऑफ- लाइन ब्लॉक सिर्फ टीसीपी में ले जाया गया - एक कनेक्शन पर एक पैकेट खो देते हैं, कि कनेक्शन कवर्ट

HTTP/1 युग में वेब तेजी से मिला. लेकिन HTTP/1.1 के कारण नहीं है. यह तेजी से हो गया क्योंकि:

  • नेटवर्क तेजी से मिल गया
  • कैशिंग स्मार्टर मिला
  • सीडीएनएएस देर से संदर्भ करता है
  • ब्राउज़र समानांतरता पर बेहतर मिला

हम एक दस्तावेज़ वापसी प्रोटोकॉल पर एक अनुप्रयोग मंच पर निर्माण कर रहे थे. प्रोटोकॉल खो रहा था. हम अभी तक महसूस नहीं किया था.

अविश्‍वसनीय सत्य कोई भी स्वीकार नहीं करता

सन्‌ 2010 तक, वेब अभियान सिर्फ HTTP के खिलाफ किया गया था ।

युग का "सबसे अच्छा अभ्यास" कहानी बताता है:

  • अपने जावास्क्रिप्ट को एक फ़ाइल में शामिल करें
  • अपने सभी छवियों को एक साथ साझा करें
  • इनलाइन सीएसएस
  • निवेदित छोड़ने के लिए आंकड़ा URI का प्रयोग करें
  • अधिक कनेक्शन खोलने के लिए डोमेन एसडी हार्ड
  • पृष्ठ के तल पर स्क्रिप्ट रखें

इन में से हर एक के लिए समाधान है "HTTP/1.1 कई अनुरोधों को कुशलता से नहीं संभाल सकता. "

मैंने इन बहुत से छोटे औज़ारों को स्पाइट जेनरेटर जैसे बना दिया, सीएसएसों, हम प्रतिक्रिया संपीडन आदि का उपयोग शुरू कर दिया ...

ब्राउज़र तेजी से नहीं थे क्योंकि एचटीटीपी सुधार किया गया था. वे तेजी से थे क्योंकि वे वे थे क्योंकि HTTP के आसपास कार्य करें.

छः कनेक्शन प्रति होस्ट एक सुविधा नहीं है. यह हैक. डोमेन ट्रिंग एक सबसे अच्छा अभ्यास नहीं है. यह असफलता की एक स्वीकृति है.

मैंने सालों में ढेर सारा सामान, स्पीरी छवियों, और इनलाइन संसाधनों को सिखाने में लगा दिया था. उस में से कोई भी "अच्छी इमारत" नहीं थी. यह था. प्रोटोकॉल क्षति नियंत्रण.

"HHTTP सरल है" कल्पना लगी क्योंकि जटिल में छिपा था:

  • ब्राउज़र कनेक्शन प्रबंधन
  • सीडीएन किनारा तर्क
  • एक फाइल निर्माण करें
  • सर्वर कनेक्शन पूलिंग

HTTP/1.1 काम किया क्योंकि सब कुछ चारों ओर इससे ज़्यादा वक्‍त बरबाद हो गया ।

यदि आपने कभी 28 का आरेख देखा है जो देर नहीं दिखाता, नुकसान या असफलता के मोड नहीं दिखाता, यह आप से झूठ बोल रहा है. प्रोटोकॉल सरल है. वास्तव में नहीं है.

एचटीटीपी/2: हमने गलत परत को स्थिर किया

यह दुनिया जिसे बनाया गया था

सन्‌ 2010 तक, वेब ने फिर से बदला था ।

1. मोबाइल हुआ. सन्‌ 2007 में आईफोन चालू किया गया. 2012 तक मोबाइल वेब ट्रैफ़िक जाम हो गया था. अचानक उपभोक्ताों ने तारीय चौड़े कमरे पर नहीं थे - वे 3G, फिर 4G के साथ थे, और कभी - कभी पैकेटों की कमी के साथ. अनुमान है कि HTTP/1 बनाया गया था. वे नीचे गिर रहे थे.

वेब अनुप्रयोगों ने वेब पृष्ठ बदल दिया. Gmail. गूगल नक्शे. फेसबुक. ये लिंक के साथ दस्तावेज़ नहीं थे. वे कर रहे थे दर्जनों या सैकड़ों संसाधनों, वास्तविक समय अद्यतन, और तत्काल प्रतिक्रिया. "चारियों प्रति मेजबान" अपनी उम्र दिखा रहा था.

गूगल ने महसूस किया कि यह दर्द गंभीर रूप से. वे विशाल पैमाने पर था, प्रदर्शन्ड इंजीनियर, और डेटा है कि डेटा HTTP/1 साबित करने के लिए है. वर्ष 2009 में, वे SPY - एक प्रयोगिक प्रोटोकॉल शुरू कर दिया जो कि HTTP/2 बन जाएगा.

क्या बदल गया:

  • द्विचर fuding (कोई चयन नहीं)
  • बहुलxing (multip अनुरोध / reting एक कनेक्शन पर छोड़ देता है)
  • शीर्षिका संपीडन (Hपिक - फिर से एक ही हेडर को दोहराता नहीं)
  • सर्वर पुश ( क्लाएंट पूछता है - हालांकि यह सही ढंग से गपशप करने के लिए कठिन साबित हुआ है और अब ज़्यादातर पदावनत हो गया है)
  • एकल कनेक्शन प्रति उद्गम (कोई अन्य कनेक्शन विस्फोट नहीं)
┌──────────────────────────────────────────┐
│           Single TCP Connection          │
├──────────────────────────────────────────┤
│ Stream 1: GET /page.html                 │
│ Stream 3: GET /style.css                 │
│ Stream 5: GET /app.js                    │
│ Stream 7: GET /logo.png                  │
│ (all interleaved, no ordering required)  │
└──────────────────────────────────────────┘

यह है HTTP/1 पाइप कॉलर किया जाना चाहिए. स्ट्रीम स्वतंत्र है. एक धीमी गति से दूसरों को ब्लॉक नहीं कर रहे हैं. शीर्ष समानता संपीडित हैं. प्रोटोकॉल अंततः कैसे हम वास्तव में वेब का उपयोग करते हैं.

इसने क्यों कार्य किया (सही नेटवर्क पर)

एचटीटीपी/2 था चौड़ा जाल के लिए सही तरह से भरेंऔर 2015 में, जब यह मानक साबित हुआ, विकसित दुनिया में विस्तार - भंगकारी था ।

क्या सुधार किया गया:

  • प्रकाश भार के नीचे लेट जाता है (एक कनेक्शन, प्रति निवेदन के लिए कोई हाथ मिलाना नहीं)
  • कम से कम कनेक्शन (कम सर्वर के ऊपर, कम टीसीपी धीमा प्रारंभ)
  • बेहतर क़िस्म की नक़ल (कोई कृत्रिम कनेक्शन सीमा नहीं)
  • शीर्षिका संपीडन (कलर्स को अब कोई लागत नहीं व जिम्मेदारी के रूप में)
  • अब आवश्यक नहीं (बहुत सी छोटी फ़ाइलें अभी ठीक हैं)

कम पैकेट नुकसान के साथ तारी कनेक्शनों के लिए HTTP/2 एक असली सुधार था. कनेडमार्क्स बहुत अच्छा लगा. गूगल की जीत की घोषणा की.

इसका दबाव जो इसे प्रभावित करता है

लेकिन यह दुनिया पहले ही चल चुकी थी । अब मोबाइल यातायात का अधिकांश हिस्सा था ।

और मोबाइल नेटवर्क में एक बुनियादी संपत्ति है कि विस्तारबैंड नहीं है: पैकेट नुकसान स्थिर है.

टीसीपी गारंटी इंक्रम में. अगर पैकेट 47 खो गया है, पैकेट 48-100 इंतजार कर रहे हैं जब तक कि 47 वापस नहीं हो जाता - तब तक अगर वे पूरी तरह स्वतंत्र HTTP/2 नदियाँ न हों.

┌──────────────────────────────────────────┐
│              TCP Receive Buffer          │
├──────────────────────────────────────────┤
│ [pkt 45][pkt 46][  ?  ][pkt 48][pkt 49]  │
│                   ↑                       │
│         Waiting for packet 47             │
│                                          │
│ Stream 1 data: BLOCKED                   │
│ Stream 3 data: BLOCKED                   │
│ Stream 5 data: BLOCKED (has pkt 48-49)   │
│ Stream 7 data: BLOCKED                   │
└──────────────────────────────────────────┘

एचटीटीपी/2 ने अनुप्रयोग परत पर सर- लाइन ब्लॉक को हल किया. फिर TCP ने ट्रांसपोर्ट परत पर इसे पुनःसमंजित किया.

एक पैकेट बंद सभी नदियों. साफ तारल कनेक्शन पर, पैकेट नुकसान कम होता है. सेल नेटवर्क पर, नुकसान, विफ़ी, या साथ दिए गए लिंक? पैक ब्रेक स्थिर है. और क्योंकि HTTP/2 उपयोग करता है एकल कनेक्शन ( डिजाइन द्वारा, एक गुम पैकेट अब ब्लॉक गुम हो गया है) सभी सिर्फ छहों कनेक्शनों में से एक के बजाय.

एचटीटीपी/2 प्रदर्शन:

  • तार, कम नुकसान: बहुत अच्छा
  • मोबाइल, स्थिर नुकसान: कभी - कभी बदतर एचटीटीपी/1 से अधिक. 1
  • उच्च संतुलन, किसी भी नुकसान: कैफीफीनी

आयरन: HTTP/2 मोबाइल के लिए बनाया गया था, लेकिन टीसीपी की गारंटी यह मोबाइल पर इससे भी बदतर बना दी है.

क्यों HTTP/2 Felt फास्ट (इसेस्ट नहीं किया गया)

आरंभिक HTTP/2 तैनाती ने असली सुधार दिखाया:

  • कम से कम कनेक्शनों का अर्थ प्रारंभिक भार होता है (TLS हाथ में एक बार, छः बार नहीं)
  • शीर्ष- सूचना संपीडन कम हो गई@ info: whatsthis
  • समान उद्‌गम पर संपत्ति के लिए बहुत काम किया

लेकिन पूंछ देर से एक अलग कहानी कह रही थी । मीडिया बेहतर हो गया। P99 बदतर हो गया।

मैंने खुद देखा था: एक ग्राहक ने अपने सीडी में HTTP/2 सक्षम किया और मोबाइल P99 देर से देखा वृद्धि 40% से. 33%. डाओबोर्ड ने डेस्कटॉप पर सुधार दिखाया. समर्थन टिकट मोबाइल उपभोक्ताों से आया. हमने एक सप्ताह बिताया कि HTTP/2 का "प्रयोग" अपने अधिकांश यातायात के लिए बदतर बना रहा था.

जब HTTP/2 काम करता है, तो यह बहुत ही खूबसूरत काम करता है. जब एक पैकेट सबसे खराब क्षण में मोबाइल कनेक्शन पर बरसाता है, सब कुछ चक्कर. और उपभोक्ताओं को ध्यान देने के बजाय वे तेजी से मीडिया को देखते हैं.

बुनियादी समस्या:

एचटीटीपी/2 को लगता है कि टीसीपी काफी अच्छा था.

विस्तार के लिए, यह था. मोबाइल के लिए, यह नहीं था. और समय तक, जब तक HTTP/2 मानक किया गया था, मोबाइल पहले से ही जीत गया था. हम जहां तक TCP हमें ले जा सकता था.

HTTP/3: ठीक है, हम स्टैक नीचे ले जाऊँगा

यह दुनिया जिसे बनाया गया था

सन्‌ 2015 तक इस बात का सबूत साफ था: टीसीपी समस्या थी.

Google 2012 से उपयोगात्मक रूप से चल रहा था. वे डेटा था. मोबाइल नेटवर्क पर, नुकसानी, और उच्च शक्तिीय कनेक्शन, HTTP/2 ऐसे तरीकों में असफल रहा है जो परिवहन परत को बदलने के बिना तय नहीं किया जा सकता है.

लेकिन आप सिर्फ "fx टीसीपी" नहीं कर सकते. यह ऑपरेटिंग सिस्टम कर्नेल में लागू किया गया है. यह इंटरनेट पर हर रास्ते, फायरवाल, और मध्य-ट बाक्स में बनाया गया है. TCP का मतलब है कि पूरे इंटरनेट के उन्नत करने के लिए इंतज़ार कर रहे हैं.

इसलिए गूगल ने एक अजीब काम किया: यूडीपी के शीर्ष पर उन्होंने एक नया ट्रांसपोर्ट प्रोटोकॉल बनाया.

UDD है डिजाइन द्वारा "Dym" - यह सिर्फ पैकेटों को कोई गारंटी नहीं के साथ भेजता है. लेकिन यह वास्तव में है कि अगर आप लागू करना चाहते हैं तो ठीक है. अपने आप को माना जाता है. QUCCPRE Kycary की गारंटी (पुष्ट्य, वितरण) लेकिन यह करता है प्रति स्ट्रीम प्रति कनेक्शन के बजाय.

एचटीटीपी/3 (2022) QUI से अधिक HTTP है. यह स्वीकार करता है कि हम HTTP को ठीक करने के लिए नीचे जाने की जरूरत है.

क्या बदल गया:

  • यूडीपी पर क्यूयूआईए ( टीसीपी नहीं)
  • स्ट्रीम- लेवल नुकसान (एकही खोया पैकेट केवल इसके स्ट्रीम को कवर करता है)
  • फास्ट कनेक्शन सेटअप (0-टंस रीम्परेशन संभव)
  • डिफ़ॉल्ट से एनक्रिप्शन (TLS1 क्यूयूआई में बनाया गया)
  • कनेक्शन उत्प्रवासन (रजेसीसीएस आईपी पता परिवर्तन)
┌──────────────────────────────────────────┐
│              QUIC Connection             │
├──────────────────────────────────────────┤
│ Stream 1: [pkt][pkt][pkt] ← flowing      │
│ Stream 3: [pkt][ ? ][pkt] ← waiting      │
│ Stream 5: [pkt][pkt][pkt] ← flowing      │
│ Stream 7: [pkt][pkt]      ← flowing      │
│                                          │
│ Lost packet only affects Stream 3        │
└──────────────────────────────────────────┘

जो कुछ उसी में रह गया:

  • एचटीटीपीमिक्स (जीएक्स, पोस्ट, स्थिति कोड)
  • कैशिंग तर्क
  • सहायक पैटर्न
  • अनुप्रयोग परत पर सब कुछ

एचटीटीपी/3 ने एचटीटीपी को नहीं बदला. यह बदल गया है कि कैसे HTTP सच में जीवित रहता है.

क्यों ज़रूरी बातों की कदर करें

क्यूयूआईआईसी के लिए टीसीपी की भरोसेमंद गारंटी प्रति स्ट्रीम, प्रति कनेक्शन नहीं. यह महत्वपूर्ण अन्तर्दृष्टि है.

टीसीपी का वादा: "हर बाइट क्रम में आता है।" क्यूआईएसआई का वादा: "हर बाइट इस स्ट्रीम में ठीक आ गया।"

यही कारण है कि HTTP/3 ny संजाल पर पतन क्यों नहीं करता है.

लंबी खड़ी समस्याओं को ठीक करने के लिए अन्य क्यूUIC विशेषताएँ:

कनेक्शन उत्प्रवासन

Phone on WiFi → walks out of range → switches to cellular
TCP: Connection dies. Restart everything.
QUIC: Connection ID maintained. Streams continue.

यह कार्य इसलिए किया जा रहा है क्योंकि मोबाइल उपयोक्ता हमेशा नेटवर्क स्विच करें. अपने घर से बाहर निकलो, विफ़ि, सेल के लिए स्विच. TCP के साथ, हर कनेक्शन मर जाता है. QUC के साथ कनेक्शन जारी है.

0-REC रीमेशन:

First connection: Full handshake (1-RTT)
Returning user: Send data immediately (0-RTT)

हर जगह एनक्रिप्शनः

TCP + TLS: Handshake, then encrypted tunnel
QUIC: Encryption is the handshake (TLS 1.3 integrated)

दुनिया जिसे इसकी ज़रूरत है

एचटीटीपी/3 दुनिया के लिए बनाया गया है हम वास्तव में में में रहते हैं:

  • मोबाइल- प्रथम: आधी से भी ज़्यादा वेब ट्रैफ़िक हो रहा है
  • अनेबल नेटवर्क: विफ़ी, सेपरे, सार्वजनिक नेटवर्कों से
  • वैश्विक उपयोक्ता: दूर सर्वरों में उच्च क्षमता कनेक्शन
  • गोपनीयता अपेक्षाएँ: एनक्रिप्शन अनिवार्य है, वैकल्पिक नहीं

प्रोटोकॉल अंत में नेटवर्क वास्तविकता से मेल खाता है. HTTP/1.0 के तीस साल के बाद भरोसेमंद तारी कनेक्शन माना गया, HTTP/3 स्वीकार करता है कि भरोसे योग्यता अपवाद है, नियम नहीं.

प्रगति की क़ीमत

एचटीटीपी/3 मुक्त नहीं है:

  • UDP प्रायः तालाबंद है कर्मचारी फायरवाल्स द्वारा ( HTTP/2 की आवश्यकता है)
  • ज्यादा सीपीयू QUUIC के उपयोक्ता स्पेस कार्यान्वयन के लिए (कोई कर्नेल की तरह नहीं है), हालांकि यह अंतराल कर्नेल के साथ बन्द है तथा डिम्बित स्टैक्स के साथ बन्द है)
  • नया डिबगिंग उपकरण (cpptuepppEPEDDLEAS, पढ़ने योग्य HTTP)
  • मध्य- बॉक्स विन्यास (कुछ नेटवर्कों को हिलाना अप्रचलित)

लेकिन मोबाइल प्रथम अनुप्रयोगों के लिए, अविश्वसनीय नेटवर्क सेवा तथा देर के लिए, HTTP/3 पहला संस्करण है जो कि कैसे नेटवर्क वास्तव में बर्ताव करता है.

सभी अनुवादों के बीच वास्तविक सबक़

क्योंकि हर एचटीटीपी संस्करण परिवर्तन हुआ प्रोटोकॉल से वातावरण तेजी से बदल गया है.

20वीं सदी के दौरान, दुनिया - भर में बहुत - से लोग इस बीमारी से जूझ रहे हैं । |---------|-----|-------------|------------|--------------| UNICONIT HTTP/ हक़ हक़त 1996 Oandthbe Bandthack पृष्ठ है, देर से विषयों के बारे में बात की UNINI HTTP/1. 199-201999 ब्बबबैंडे, वेब एप्पस कम आड़ी के साथ पैकेट नुकसान के साथ आया UNICOS HTTP/2CLLLLLLCONAL Libis HTTP/332022+CKS पहले, विश्वस्त कुछ भी नहीं है कि अभी भी तैनात कर रहा है ...

पैटर्न स्पष्ट है:

  1. प्रोटोकॉल वर्तमान वातावरण के लिए डिजाइन किया गया है
  2. एनवायरनमेंट परिवर्तन (अनुप्रयोगियों से अलग हो सकते हैं)
  3. कार्य वैकल्पिक है. (c) bases, कनेक्शन हैक, bundling)
  4. नया प्रोटोकॉल स्वीकार्य है
  5. दुहरायें

लेकिन जब पर्यावरण की माँग की जाती थी, तब ऐसा लगता था कि हर खिलाड़ी को पीछे हटा दिया जा रहा है ।

अन्य टिप्पणियाँ:

  • "अमेय" एक झूठ है जो हम खुद को रात में सोने के लिए कहते हैं. हर सत्र कुकी, समर्थन संकेत, और कैश शीर्ष प्रबंधन हम पर बोल दिया है.
  • अधिकांश प्रदर्शन जीत इससे आयी कार्य- सूचीप्रोटोकॉल शुद्धता नहीं. CDN, conM प्रॉक्सी, कनेक्शन पूलिंग, प्रोटोकॉल सीमाओं के लिए कोयले की माँग करता है.
  • "एक सरल बात को आगे रखा जा रहा है." HTTP/1.0 सरल था. फिर हमें लगातार कनेक्शन की आवश्यकता थी. फिर कई बार ट्रांसपोर्ट. जटिल समस्याओं की प्रत्येक परत ने असली समस्या को हल किया.
  • समय का पाबंद होना । एचटीटीपी/2 सही होता यदि यह 2005 में आया होता. 2015 तक, मोबाइल खेल पहले ही बदल चुका था. प्रोटोकॉल कल की समस्या को हल कर रहा था.

सन्‌ 1.0 से क्या नहीं बदला है

यहाँ अजीब हिस्सा है. प्रोटोकॉल विकास के तीस साल के बावजूद के बारे में:

निवेदन अभी भी असफल. नेटवर्क विभाजन. सर्वर क्रैश हो गया. टाइमआउट होने के लिए आपका कोड अभी भी तर्क फिर से कोशिश की आवश्यकता है.

नेटवर्क अब भी झूठ है. 200 OK अनुक्रिया का मतलब सही नहीं है. कनेक्शन बन्द करने का मतलब यह नहीं है कि निवेदन सफल नहीं हुआ. टाइमआउट सर्वर का मतलब नहीं है आपके निवेदन प्रक्रिया कर रहा है.

कैश अभी भी रियल डाटा सेवा करते हैं. Cache-Control एक निवेदन है, कमांड नहीं. gixies वे क्या चाहते हैं. सीडी अवैधीकरण सबसे अच्छी तरह से समाप्त हो रहा है.

क्लाएंट अभी भी बुरी तरह से कोशिश करते हैं. उपयोक्ता क्लिक बटन, कुछ नहीं होता, क्लिक फिर से होता है. अब आपके पास दो निवेदन हैं. 'dicdicadphidpadpadicadicadpadp, मामले के बारे में.

विकासकर्ता अभी भी गलत पहचान. आउटपुट को सुरक्षित होना चाहिए. सबसे अधिक जंगली पश्चिम है. अधिकांश API यह गलत मिलता है.

// This is still your problem, regardless of HTTP version
public async Task<Result> CreateOrderAsync(Order order)
{
    // What happens if this times out?
    // Did the server receive it?
    // Did it process it?
    // Will the client retry?
    // Will you create duplicate orders?
    
    // HTTP/3 doesn't save you here.
    // Idempotency keys do.
}

यदि आप इन्हें नहीं समझते हैं, HTTP/3 आप को नहीं बचा लेंगे.

मैंने असल में जो सीखा

इन सभी प्रोटोकॉल संस्करणों के पार वेब अनुप्रयोग बनाने के बाद, यहाँ क्या फंस गया है:

1. प्रोटोकॉल आपके भरोसेमंद परत नहीं है.

एचटीटीपी आपको अनुरोध/ SERPELENECKY देता है BAR यह गारंटी नहीं देता है कि आप काम करते हैं BAR यह आपके काम की गारंटी नहीं देता BAR यह आपकी नौकरी है BAR

2 विस्तार दुश्मन है, नहीं TX.

अधिकतर प्रदर्शन समस्या गोल हैं, नहीं बाध्य के द्वारा. रेडीकरण के मामले को लोड करने से ज्यादा की मांग कर रहे हैं.

3. हर "सबसे अच्छा अभ्यास" एक एक्सपायरेशन तारीख है.

डोमेन fuging HTTP/1 के लिए आवश्यक था. यह HTTP/2 के लिए बुरा है. सामग्री में सीएसएस स्मार्ट था. अब हमारे पास सर्वर धक्का है (जो भी असफल) और जल्दी संकेत. रणनीति परिवर्तन. लक्ष्य (संग्रेति के अंत में) एक ही रहता है.

4 असली नेटवर्क पर माप.

स्थानीय होस्ट पर बेचमार्क्स कुछ भी साबित नहीं करते ।

5. उबाऊ भाग सबसे ज्यादा मायने रखता है.

समय समाप्त. सर्किट ब्रेकर्स. सर्किट ब्रेकक. Idmadmamade. updmaking. इन fargils विवरण निर्धारित करते हैं कि क्या आपका तंत्र लोड के अंतर्गत काम करता है.

कंटेनमेंट

HTTP तेजी से नहीं मिला क्योंकि यह स्मार्ट मिल गया. यह तेजी से हो गया क्योंकि हम अंत में स्वीकार किया नेटवर्क समस्या थी.

हर संस्करण अपने समय के लिए सही था:

  • एचटीटीपी/1.0 डायलअप दस्तावेज़ प्राप्ति के लिए सही था
  • एचटीटीपी/1. 1 चौड़ा वेब अनुप्रयोगों के लिए सही था
  • एचटीटीपी/2 निम्न विस्फोटकों तार्ड कनेक्शनों के लिए सही था
  • एचटीटीपी/3 मोबाइल के पहले, अविश्वसनीय नेटवर्क वास्तविकता के लिए बनाया गया है हम वास्तव में में में में रहते हैं

जब पर्यावरण बदल गया, तब प्रोटोकॉल को पालन करना पड़ा ।

एचटीटीपी संस्करण उपभोक्ता भाव में उन्नयन नहीं कर रहे हैं. वे विभिन्न विफलता वितरणों के लिए व्यवसायित हैं.

और फिर भी, कि सभी के बाद, बुनियादी बातें बनी रहती हैं:

  • निवेदन असफल
  • नेटवर्क झूठ
  • कैशिंग हार्ड है
  • आई. वी.

प्रोटोकॉल विकास. समस्या गायब नहीं हुई. वे सिर्फ प्रेरित.

तंत्रों का निर्माण करें जो असफल हो जाते हैं. वास्तविक नेटवर्क पर जाँच करें. यह समझते हैं कि हर एचटीटीपी संस्करण इसके युग द्वारा आकार का व्यापार आकार है, एक ऐसा उन्नयन नहीं जो पहले आया था.

यह HTTP के तीस साल है. यह वेब है जो हमने बनाया है. और एक और दशक में, HTTP/3 के अनुमान शायद एचटीटीपी/0 के रूप में अब देखे होंगे.

आगे पढ़ा जा रहा है

logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.