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

HTTTTP لم يتطور. قـر قـرن للتغير عن طريق الفيزياء، والتأخير، وإساءة الاستخدام.

كل نسخة موجودة لأن النسخة السابقة ضغطت على قيد صعب. إذا كنت تفهم هذه القيود، فأنت تفهم لماذا يعمل الويب بالطريقة التي يعمل بها - ولماذا العديد من "أفضل الممارسات" هي في الواقع

لقد كنت أبني تطبيقات الويب منذ 1997 لقد قمت بتنقية HTTP / 1.00 عواصف الاتصال، شاهدت المتصفحات تفتح ستة وصلات لكل مضيف كـ "مهارة"، ملعونة في HTTP/2 رئيس الخط الرئيسي TCP على الشبكات المتنقلة، وأخيرا رأيت HTTP/3 يعترف بما نعرفه طوال الوقت: الشبكة هي المشكلة.

هذه ليست بروتكولاً تعليمياً إنها قصة كيف وصلنا إلى هنا

HTTTTP/LD: عديم الجنسية

العالم الذي صنعها

HTTTP/ 1.0 تم تصميمها في عام 1996 لعالم لم يعد موجوداً. لفهم سبب نجاحها، تحتاج إلى فهم ما تعنيه "الويب" في عام 1996:

  • **** 28.8kkbps (إذا كنت محظوظاً)
  • كانت الصفحات هي وثائق - نص، ربما بعض الصور الصغيرة،
  • عدد المرات التي نُقرت وانتظرت - رد الفعل الحالي لم يكن متوقعاً
  • الخادمات كانت مكلفة - الجامعات والشركات، وليس الجميع

في هذا العالم، الزجاجة كانت النطاق التردديصفحة 50 كيلو بايت استغرقت 15 ثانية لتحميلها عند الطلب من يهتم بمصافحة 200 متر إضافية؟

ما هو HTTTP/ land أفضل ما يلي:

  • البساطة (يفك النقر مع tunet)
  • (الخوادم لا تتعقب الوصلات)
  • القابلية البشرية (بروتوكول النصوص)
  • طلب واحد، رد واحد، اتصال مقفل
GET /index.html HTTP/1.0
Host: example.com

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

<html>...

بسيط، ذكي، مثالي لعام 1996، وغير قابل للاستخدام تماماً لأي شيء أبعد من استرجاع الوثائق.

الضغط الذي كسره

ثم تغيرت الشبكة بسرعة

وبحلول عام 1998، لم تكن الصفحات مجرد وثائق. كان لديهم أوراق نمطية، ودفاتر جافاسكربت، وصور متعددة. صفحة واحدة قد تحتاج إلى 20-30 موارد منفصلة.

كل طلب واحد يتطلب ما يلي:

  1. الدالة TCP )١ رحلة ذهاب واحدة(
  2. طلب مُرسِل )١ رحلة ذهاب واحدة(
  3. المستلمة
  4. &
  5. تكرار لكل صورة، ورقة أسلوب، نص...

أي صفحة بـ 20 مورداً يعني 20 مصافحة لـ TCCP. على اتصال 200 ms contradition (ما زال شائعاً)، هذا يعني 4 ثوان من مـا يمـايـد مـن تمـايـد قبل نقل أي محتوى.

الافتراض الأساسي للHTTTP/1-0:

الوقت كان رخيصاً

في عام 1996، كانت كذلك في عام 1996، وكان باندويدث هو عنق الزجاجة. وبحلول عام 1999، كان عرض العرض يتحسن ولكن التأخير في المواني لم يكن - وفجأة تلك الرحلات الدوارة كانت مهمة

تم تصميم HTTTP / 1.0 من أجل الوثائق. لقد أصبحت الشبكة منصة تطبيق. شيء ما كان يجب أن يعطي.

HTTTTTT t t t t t t t t t t t t: سوف نرفعه

العالم الذي صنعها

وصل HTTTP/1.1 في عام 1997، تماما كما ان الوب كان ينفجر. بدأ ازدهار دوتكوم. كل عمل يحتاج إلى موقع على الإنترنت. صفحات الويب كانت تحصل على جداول معقدة للتصميم، جافاسكربت للتفاعل، الصور في كل مكان.

كان الضغط واضحاً: كان أداء الأداء في مجال القتللكن إعادة تصميم HTTP بالكامل لم يكن خياراً، الكثير من البنية التحتية تعتمد عليه بالفعل، الحل يجب أن يكون متوافقاً مع الوراء

ما الذي تغيّر:

  • المواصلات الثابتة (Connection: keep-alive - إعادة استخدام وصلة TCP
  • تنفيذ هذا هذا (الاستجابات الرئيسية دون معرفة الحجم مقدما)
  • مقدمات (الاستضافة الافتراضية - مواقع متعددة لكل شريك من شركاء التنفيذ، حاسمة بالنسبة للاستضافة المشتركة)
  • الكلName (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

...

لِمَ أُعْرِفَتْ أَعْمَلَتْ

HTTTP/1.1 لم تحل في الواقع مشكلة الأداء. فقط حركتها حولها.

كانت عملية التناصف فاشلة. المواصفات المسموح بها لإرسال طلبات متعددة على اتصال واحد، ولكن:

  • كان لا بد من الرجوع إلى لـدى (سد رأس خط العرض)
  • رد واحد ببطئ حجب كل شيء وراءه
  • طُلبت طلبات طُرِطَت
  • معظم المتصفحات عطلته كلياً

لذا فإن المتصفحين غشوا. بدلاً من إصلاح البروتوكول، عملوا حوله:

  • & علِم 6 موصلات موازية لكل مُضيف (الحد المعجز)
  • **** (static1.example.com, static2.example.com) على نحو مضروب لوصلات
  • **** إلى مُوحِج
  • تجميعة CSSSSCS/JSS تقديم طلبات بشأن خفض عدد الطلبات
  • **** (النقصان)

ولم يكن أي من هذا البروتوكول يعمل كما هو مصمم، بل كان النظام الإيكولوجي بأكمله يعوض الحد الأساسي للHTTTP/1.1.

HTTTP/Impleed by الغش، وليس عن طريق تحديد النموذج.

لِمَ نُجِزَتْ مَثَلًا

HTTTT/ 1 يعمل مـن جـيـف جـيـف جـيـف جـيـف جـيـف لخمسة عشر عاماً، ليس لأنها كانت جيدة، ولكن لأن البيئة عوضت:

  • -وصلت . -وصلت . 20m مصافحة بدلاً من 200m. الألم كان محتملاً.
  • ساعد قانون مورز في المساعدة. يمكن للخوادم أن تتعامل مع 6 وصلات لكل متصفح بحلول عام 2005.
  • المُقرّرات المُقرّرة تُقنع المُشكلة. خوادم الواجهة على بعد 20 متراً بدلاً من 200 متراً.
  • يُهيمن عليها من قبل. وصلات سلكية، وتأخر منخفض، وشبكات موثوق بها.

كان البروتوكول لا يزال معطلاً كنا محظوظين أن العالم يخبئه

التكلفة الحقيقية

تلك الوصلات الست لكل مضيف لم تكن مجانية:

  • كل صلة كانت تعني مصافحة أخرى
  • كل اتصال متنافس على العرض
  • كان على الخادمات الحفاظ على مزيد من الاتصالات المتزامنة
  • تم الانتقال للتو إلى TCP - افقد حزمة على اتصال واحد، هذا الرابط يتعطل

أصبحت الشبكة أسرع في عصر HTTTP/1.1. ولكن ليس بسبب HTTP/1.1. أصبحت أسرع لأن:

  • الشبكات حصلت على أسرع
  • تَحَصَلَ المُصَلَ على الأذكَى
  • مُتم مُسود
  • المتصفحات أصبحت أفضل في التوازي

كنّا نبني منصة تطبيق على بروتوكول إسترجاع الوثائق، البروتوكول كان يخسر، لم نشعر به بعد.

الحقيقة غير المطمئنة غير المعترف بها

وبحلول عام 2010، كان أداء الشبكة العالمية معركة مستمرة ضد HTTP نفسها.

"أفضل الممارسات" في هذه الحقبة تروي القصة:

  • مُكّون الكل لـك جافاSCCrest في ملف واحد
  • اجمع كل صورك معاً
  • CSS
  • استخدام البيانات URIs لتجنب الطلبات
  • حرّر مجال المجال إلى فتح المزيد من المراسلات
  • وضع في أسفل الصفحة

كل واحدة من هذه هي حل عملي لـ "HTTTP/1.1، لا يمكن التعامل مع العديد من الطلبات بكفاءة."

بنيت العديد من هذه الأدوات الصغيرة مثل المولدات العطرية، ضاغطات CSS، بدأنا باستخدام ضغط الاستجابة...

المتصفحات لم تكن أسرع لأن HTTTTP تحسنت. كانت أسرع لأنها العمل حول HTTP.

ستة إتصالات لكل مضيف ليست ميزة، إنه إختراق، تشقق المجال ليس أفضل ممارسة، إنه إقرار بالفشل

لقد قضيت سنوات في تعليم المطورين تجميع الأصول، والصور، والموارد الحيوية. لا شيء من ذلك كان "البنيان الجيد". (أ) (أ) )).

أسطورة "HTTTP بسيطة" استمرت لأن التعقيد كان مخفيا في:

  • إدارة الاتصال بوصل المتصفح
  • يجري

HTTTTTT/ 1 1 يعمل لأن كل شيء + عملت بشكل إضافي للتعويض.

إذا رأيت رسماً بيانياً من HTTP لا يظهر الميعاد أو الخسارة أو أنماط الفشل، فإنه يكذب عليك. البروتوكول بسيط. الواقع ليس كذلك.

HTTTP/2: قمنا بتثبيت الطبقة الخاطئة

العالم الذي صنعها

بحلول عام 2010، تحول الويب مرة أخرى. تحولان هائلان غيرا كل شيء:

1 - حدث النقل. بدأ تشغيل الآي فون عام 2007 وبحلول عام 2012، انفجرت حركة الشبكة المحمولة. فجأة لم يكن المستخدمون على النطاق العريض السلكي - كانوا على 3G، ثم 4G، مع تغير التأخير وفقدان الحزم المتكررة. والافتراضات التي جعلت HTTP/1.1 قابلة للتقبل كانت تنهار.

2 - استعيض عن صفحات الإنترنت بالتطبيقات الشبكية. Gmail. Gogle Maps. فيسبوك. تويتر. هذه لم تكن وثائق مع روابط. كانت تطبيقات تحتاج إلى العشرات أو المئات من الموارد، تحديثات آنية، واستجابة فورية. الإختراق "ستة وصلات لكل مضيف" كان يظهر عمره.

شعر جوجل بهذا الألم بشكل حاد. كان لديهم نطاق ضخم، المهندسين المهووسين بالأداء، والبيانات لإثبات HTTP/1.1 كانت عنق الزجاجة. في عام 2009، بدأوا SPDY - بروتوكول تجريبي من شأنه أن يصبح HTTP/2.

ما الذي تغيّر:

  • تأويلاً ثنائياً (لا نص - أكثر كفاءة صياغات)
  • (م) (التعددات/الطلبات/الإجابات المتبادلة على صلة واحدة)
  • **** (HHPAK - لا مزيد من تكرار نفس الترويسات)
  • & دفع دفع دفع (اصرف الموارد قبل أن يسأل العميل - على الرغم من أن من الصعب ضبط هذا بشكل صحيح وقد تم الانتقاص إلى حد كبير الآن)
  • النسبـة الوحيدـة حسب الأصل )لا مزيد من الانشــجار الانفجار(
┌──────────────────────────────────────────┐
│           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)  │
└──────────────────────────────────────────┘

هذا ما كان يجب أن يكون HTTTP/ 1.1. السلاسل مستقلة. استجابة بطيئة واحدة لا تمنع الآخرين. الترويسات مضغوطة. البروتوكول يطابق أخيراً كيف نستخدم الوب فعلياً.

سبب نجاحها (على شبكات الحقوق)

HTTTP/2 كان الكمالية لشبكة الإنترنت العريضةوفي عام 2015، عندما تم توحيده، كان النطاق العريض في كل مكان في العالم المتقدم.

ما هي التحسينات:

  • التأخر تحت حمولة خفيفة (وصلة واحدة، لا توجد مصافحة عامة لكل طلب)
  • عدد أقل من الوصلات (خادوم أقل، مطروحاً منها TCP بطء بدء التشغيل)
  • الاستخدام الأفضل (لا حدود اتصال اصطناعي)
  • الضغط الرأسي (الرأس المكررة الرأس مثل البسكويت التي لم تعد تكلفة العرض)
  • لا حاجة إلى مزيد من الاختنانة/الرهنة (الملفات الصغيرة كثيرة هي الآن دقيقة)

بالنسبة للمستخدمين على الاتصالات السلكية مع فقدان حزمة منخفضة، HTTP/2 كان تحسن حقيقي. المقاييس بدت كبيرة. القياسات تحسنت. جوجل أعلنت النصر.

الضغط الذي كسره

ولكن العالم قد انتقل بالفعل. أما الآن فقد أصبحت شركة موبيل (Mobile) غالبية حركة المرور على شبكة الإنترنت.

ولشبكات الهواتف النقالة خاصية أساسية لا يملكها النطاق العريض: الخسارة التي كانت ثابتة.

(ج) ضمانات في طلب التسليموإذا فُقدت الحزمة 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                   │
└──────────────────────────────────────────┘

وقام HTTTP/2 بحل سد رأس الخط عند طبقة التطبيق، ثم أعاده TCP إلى طبقة النقل.

واحد خسر حزمة كل الجداول. على اتصال سلكي نظيف، فإن خسارة الحزم نادرة. على شبكات الهاتف النقال، أو WiFi المفقودة، أو الوصلات المزدحمة؟ خسارة العبوة ثابتة. ولأن HTTP/2 يستخدم a. واحد (بالربط (حسب التصميم)) واحد مفقود حزمة الآن " كل شيء " بدلاً من مجرد واحد من ستة ملامسات.

أداء HTTTTP/2:

  • مُنكر، خسارة منخفضةمُمتاز، مُمتاز، مُمتاز، مُمتاز، مُمتاز، مُمتاز، مُمتاز، مُمتاز، مُمتاز
  • طائرة طراز MOC، خسارة معتدلةفي بعض الأحيان: - - - - - - - - - - - - - - - - - - - - - - - - - - من HTTTTTT/ 1.1
  • (أ) أي خسارة: مُزْكِكَة

المفارقة: HTTTP/2 كانت مصممة للتنقل، ولكن ضمانات TCP جعلتها أسوأ على الهاتف المحمول من البروتوكول الذي استبدلته.

لماذا HTTTP/2 أشعر أسرع (حتى لم يحدث)

أظهرت عمليات نشر HTTTP/2 الأولية تحسينات حقيقية:

  • عدد أقل من الوصلات يعني تحميل أولي أسرع (TLS مصافحة مرة واحدة، لا ست مرات)
  • مقدم مقدمات مخفضة
  • التعددات تعمل بشكل كبير لأصول من نفس المصدر

لكن التأخير في كتابة قصّة مختلفة. المتوسط لقد أصبحت أفضل، الـ (بي 99) أصبحت أسوأ

رأيت هذا مباشرة: عميل مكّن HTTTP/2 عبر CDN وشاهد المتنقل P99 الزيادة(أ) 40%. أظهرت لوحات العرض تحسناً على سطح المكتب. جاءت تذاكر الدعم من مستخدمي الهواتف المحمولة. قضينا أسبوعاً في معرفة أن "تحسين" HTTP/2 كان يزيد الأمور سوءاً بالنسبة لغالبية حركة مرورهم.

عندما يعمل HTTTP/2، فإنه يعمل بشكل جميل. عندما تسقط حزمة على اتصال جوال في أسوأ لحظة، فإن كل شيء يتجمد. ويجمد المستخدمون إشعارات أكثر مما يلاحظون متوسطات سريعة.

المشكلة الأساسية:

إفترض HTTTP/2 أن TCP كانت جيدة بما فيه الكفاية.

بالنسبة للنطاق العريض، كان كذلك. بالنسبة للهاتف المحمول، لم يكن كذلك. وبحلول الوقت الذي تم توحيد HTTP/2، كان الهاتف المحمول قد فاز بالفعل. كنا قد دفعنا بقدر ما يمكن أن يأخذنا TCP.

HTTTTP /3: حسناً، سنحرك أسفل الرك

العالم الذي صنعها

وبحلول عام 2015، كانت الأدلة واضحة: كان هذا هو المشكلة.

كان جوجل يعمل على تشغيل QUIC تجريبياً منذ عام 2012. كان لديهم البيانات. على شبكات الهواتف النقالة، والواي فاي الخاسرة، والاتصالات عالية السرعة، HTTP/2 على TCP كان يفشل بطرق لا يمكن إصلاحها بدون تغيير طبقة النقل.

لكن لا يمكنك أن "تثبت TCP" فقط. إنه ينفذ في نوافذ نظام التشغيل. إنه مُحَصَّل إلى كل جهاز توجيه، جدار ناري، و صندوق وسط على الإنترنت. تغيير TCP يعني انتظار عقود من أجل تطوير البنية التحتية للإنترنت بالكامل.

إذاً فقد فعل جوجل شيئاً مُجحفاً: قاموا ببناء بروتوكول نقل جديد على رأس UDP.

UDP هو "dumb" بالتصميم - إنه فقط يرسل حزماً بدون ضمانات. لكن هذا بالضبط ما تحتاجه إذا كنت تريد تنفيذ لـكـلـكككـل إعادة تنفيذ ضمانات TCP (التي يمكن التعويل عليها، والتسليم بأمر التسليم) ولكنها تفعل ذلك بدلاً من الوصلة.

HTTTP/3 (2022) هو HTTP / QUIC. هو الاعتراف أننا بحاجة إلى الذهاب تحت HTTP لإصلاح HTTP.

ما الذي تغيّر:

  • CO CO UDP (لم تُدرج في المرفق الأول)
  • استرداد الخسارة على مستوى المشروع فُقِدَ واحد حزمة فقط يَعْملُ يَجْهرُه
  • إعداد مُك (مستحيلة الاستئناف)
  • **** (TLS 1.3 بُنيت في QUC)
  • & قيد (البقاء على قيد الحياة: تغييرات في عنوان عنوان العنوان)
┌──────────────────────────────────────────┐
│              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        │
└──────────────────────────────────────────┘

ما بقي على حاله:

  • HTTTTTP معدنات (GGET، PPOP، ترويدات، رموز الحالة)
  • الأنماط
  • كل شيء عند طبقة التطبيق

HTTTP/3 لم يغير HTTP. غير كيف أن HTTP ينجو من الواقع.

لِمَ السبب السبب السبب السبب السبب في المسائل

تنفيذ ضمانات ضمانات موثوقية شركة TCP هذه هي البصيرة الرئيسية

وعد TCP: "كل بايت يصل بالترتيب" وعد quilic's quilic' s الوعد: "كل جزء من كل في هذا الشكل في النظام ".

هذا التمييز هو السبب في أن HTTP/3 لا ينهار على الشبكات الخاسرة.

(أ) خصائص ثاني أكسيد الكربون التي تسبب مشاكل طويلة الأمد:

الاتصال::

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

هذا مهم لأن مستخدمي الهاتف النقال (تابع) أخرجوا من منزلكم، وافقدوا الواي فاي، وحوّلوا إلى الهاتف الخلوي، مع TCP، كل اتصال يموت، مع QUIC، تواصل الاتصال.

الاستئناف:

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)

العالم الذي يحتاج إليه

HTTTP/3 مصممة للعالم الذي نعيش فيه فعلياً:

  • المرحلة الأولىأكثر من نصف حركة المرور عبر شبكة الإنترنت هي حركة متنقلة
  • الشبكات غير الموثقةالشبكات العامة المزدحمة
  • مستعملات: وصلات عالية التأخير إلى خواديم بعيدة
  • ****التشفير إلزامي، وليس اختيارياً

وأخيراً يطابق البروتوكول واقع الشبكة. فبعد ثلاثين عاماً من افتراض HTTP/1.0 اتصالات سلكية موثوقة، يعترف HTTP/3 بأن الموثوقية هي الاستثناء وليس القاعدة.

تكلفة التقدم

HTTTP/3 ليس حرّاً:

  • غالباً ما يُسدّ بواسطة جدار حماية الشركات (الحاجة إلى الرجوع إلى HTTTTP/2)
  • المزيد المعالج أكثر (ليس في النواة مثل TCP، على الرغم من أن هذه الفجوة تضيق بتجاوز النواة والأكوام المتحسنة)
  • (ttccpddump تظهر UDP، لا يمكن قراءة HTTTTP)
  • الصنف (بعض الشبكات تتغلب على UDP لا يمكن التنبؤ به)

ولكن بالنسبة للتطبيقات الأولى المتنقلة، والشبكات غير الموثوقة، والخدمات الحساسة للتأخر، HTTP/3 هي النسخة الأولى التي تطابق كيفية تصرف الشبكات في الواقع.

الدرس الحقيقي عبر كل انجيل

كل تغيير في نسخة HTTTTTP حدث بسبب تغير البيئة أسرع من البروتوكول.

□ الإصدار □ أَرْ □ البيئة □ لِمَ تُفَكِّر □ □ |---------|-----|-------------|------------|--------------| □ HTTTP/ 1.0 ° 1996 □ Dialup، الوثائق □ Bandwidth هي الاختناق القنينة HTTTTP/1.1 JIU 1999-2015 owldward, Web Polities o Low Lo Low Lot Translated by conference systems TM HTTTP/ 1. HTTTP/2 JIU 2015-2022 o 2015-2022 ° ذروة النطاق العريض، الإرتفاع المتنقل TMCP هو موثوق به بما فيه الكفاية HTTTP/3 o 2022+ o Mobile-First، عالمي لا شيء يمكن التعويل عليه

والنمط واضح:

  1. البروتوكول مصمم للبيئة الحالية
  2. التغيرات في البيئة (أكثر مما يمكن أن تتكيف عليه البروتوكولات)
  3. المراكم (الحاجات المحلية، واختراقات الربط، والجمع)
  4. يعترف البروتوكول الجديد بالواقعية
  5. )كُرس

البروتوكول يستمر في الحصول على دفع أكثر قربا إلى الشبكة. كل عملية تجريدية بدت كافية حصلت على قشرة مرة أخرى عندما طلبتها البيئة.

ملاحظات أخرى:

  • "اللاذعة" كذبة نقول لأنفسنا أن ننام في الليل. كل جلسة بسكويت، أو أي شيء آخر، و عنوان المخبأ هي إدارة الولاية التي وضعناها عليها.
  • وجاءت معظم مكاسب الأداء من: مُدّات العملليس نقاء بروتوكوليّ، أجهزة التنصّت، أجهزة التنصّت، تجمّع الوصلات، طلب التواؤم، كلّها تعوض عن قيود البروتوكول.
  • الشيء "البسيط" استمر بالتحرك. HTTP/ 1.0 كان بسيطا. ثم احتجنا إلى اتصالات مستمرة. ثم التعدد. ثم النقل الجديد. كل طبقة من التعقيد حلت مشاكل حقيقية.
  • -الأمور الزمنيّة . HTTTP/2 كان يمكن أن يكون مثاليا لو وصل في عام 2005. وبحلول عام 2015، كان الهاتف المحمول قد غير اللعبة بالفعل. البروتوكول كان يحل مشكلة الأمس.

ما الذي لم يتغير منذ 1

هنا الجزء غير المريح على الرغم من ثلاثين سنة من تطور البروتوكول

الطلبات لا تزال فاشلة. تحطّم الخوادم، توقّف، توقّفات يحدث، شفّرتك لا تزال بحاجة إلى منطق إعادة التّجربة.

الشبكات لا تزال موجودة. % 200 لا يعني أن الرد صحيح. الاتصال المغلق لا يعني أن الطلب لم ينجح. التوقيت لا يعني أن الخادم لم يجهز طلبك.

الشوكولاتة لا تزال تخدم البيانات القديمة. Cache-Control الوكلاء يفعلون ما يريدون. إبطال الـ CDN هو في نهاية المطاف في أحسن الأحوال.

العملاء مازالوا في حالة سيئة. نقرات مستخدم زر لا شيء يحدث انقرات مرّة أخرى الآن لديك طلبان

ولا يزال المطورون يسيئون فهم القدرة القصوى. يجب أن يكون آمنًا، يجب أن يكون (بوت) قادرًا على فعل ذلك، الوظيفة هي الغرب المتوحش، معظم الـ(آي بي آي) يخطئون في فهم هذا.

// 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 - البروتوكول ليس طبقتك الموثوقة.

HTTP يعطيك الطلب/الاستجابة الدلالات. هذا لا يضمن التسليم، الدقة، أو المعالجة بالضبط. هذا هو عملك.

2 - أن تكون الاستقامة هي العدو وليس عرض النطاق الترددي.

فمعظم مشاكل الأداء ملزمة بالرحلة ذهابا وإيابا وليست ملزمة بالناتج، أما خفض الطلبات فيهم أكثر من الحمولات المضغوطة.

3 - لكل "ممارسة فضلى" تاريخ انتهاء.

كان تجليد المجال أساسياً لـ HTTTP/1.1. هو ضار لـ HTTP/2. في وضع الـ CSS كان ذكياً. الآن لدينا خادم دفع (الذي فشل أيضاً) وتلميحات مبكرة. التكتيكات تتغير. الهدف (الرفع المتأخر) يبقى نفسه.

4- قياس الشبكات الحقيقية.

المعايير على المضيف المحلي لا تثبت شيئاً، مستخدموكم على شبكات الهواتف المحمولة، والواي فاي الفندقية، وروابط المقهى المشبعة، اختبروا هناك.

والأجزاء المملّة هي الأكثر أهمية.

فترات ، فترات ، فترات ، فترات ، فواصل ، فواصل الدوائر ، عدم قدرة ، تجمّع الإتصال ، تجمّع ، هذه التفاصيل غير المتوافقة تحدّد ما إذا كان نظامك يعمل تحت الحمولة.

ثالثاً - استنتاج

HTTTTP لم يصبح أسرع لأنه أصبح أكثر ذكاءً. أصبح أسرع لأننا أخيراً اعترفنا الشبكة كانت المشكلة.

وكانت كل نسخة مناسبة لوقتها:

  • HTTT/... مُتقن لـ مُح مُرفق لـ مُرفق
  • HTTTTT/ 1 الكمالية لتطبيقات الإنترنت
  • HTTTT/2 كان مثالياً للوصلات المنخفضة الخسارة
  • HTTTL/3 في الواقع الذي نعيش فيه في الواقع

فالخطأ هو الاعتقاد بأن أياً من هذه الحلول هي حلول دائمة، وكلها استجابات لضغوط بيئية محددة، وعندما تتغير البيئة، يتعين على البروتوكول أن يتبعه.

إصدارات HTTP ليست تحديثات بالمعنى الاستهلاكي، بل هي مقايضات مفضلة لمختلف توزيعات الفشل.

ومع ذلك، بعد كل ذلك، تبقى الأساسيات:

  • الطلبات التي لا
  • يجري إنشاء الشبكة
  • المُكَوِّد هو صعب
  • المسائل المتعلقة بعدم الأهلية

تطور البروتوكول، المشاكل لم تختفي، لقد تحركوا للتو

بناء الأنظمة التي تنجو من الفشل. اختبار على الشبكات الحقيقية. فهم أن كل نسخة HTTP هي مقايضة على شكل عصرها، وليس ترقية التي عفا عليها الزمن ما جاء من قبل.

هذه ثلاثون سنة من HTTP. هذه هي الشبكة التي بنيناها. وفي عقد آخر، افتراضات HTTP/3 على الأرجح ستبدو مؤرخة كما يفعل HTTP/1.0 الآن.

& ما

logo

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