טכנולוגיות מתקדמות הסבר

HTTP/3 ו-QUIC: מה השתנה מתחת לפני השטח, ומה זה נותן לאתר

HTTP/3 מחליף את TCP ב-QUIC, פרוטוקול מעל UDP שמשלב הצפנה בלחיצת היד ומבטל את ״חסימת ראש התור״. הרווח גדול ברשתות סלולריות ובחיבורים שמחליפים רשת, וכמעט לא מורגש ברשת מהירה ויציבה.

שלושה מסלולים מקבילים שאחד מהם נקטע, בצבעי סגול ומנטה על רקע כהה

במשך 25 שנה כל גרסה של HTTP רצה מעל TCP. HTTP/3 (RFC 9114, 2022) הוא הראשון שלא: הוא רץ מעל QUIC (RFC 9000, 2021), פרוטוקול חדש שבנוי מעל UDP. זה לא שינוי קוסמטי. הוא נוגע באיך נוצר חיבור, איך מוצפן, ומה קורה כשחבילה אחת הולכת לאיבוד.

הבעיה שרצו לפתור

HTTP/2 הכניס multiplexing: כמה בקשות ותשובות על חיבור TCP אחד, במקביל. אבל TCP מבטיח סדר: אם חבילה מספר 7 אבדה, כל מה שאחריה מחכה עד שהיא תגיע מחדש, גם אם זה שייך לתמונה אחרת לגמרי. זו ״חסימת ראש התור״ (head-of-line blocking), והיא הופכת אובדן חבילה אחד לעיכוב של כל העמוד. ברשת קווית יציבה זה קורה לעיתים נדירות. ברשת סלולרית או Wi-Fi עמוס זה קורה כל הזמן.

מה QUIC עושה אחרת

  • זרמים עצמאיים. כל בקשה היא זרם משלה בתוך החיבור. חבילה שאבדה מעכבת רק את הזרם שלה. שאר התמונות ממשיכות להגיע.
  • הצפנה כחלק מהפרוטוקול. QUIC משלב את לחיצת היד של TLS 1.3 בתוך לחיצת היד שלו. אין QUIC בלי הצפנה, ואין שלב נפרד. חיבור חדש נוצר בסיבוב הלוך-ושוב אחד, וחיבור חוזר לשרת מוכר יכול לשלוח נתונים כבר בחבילה הראשונה (0-RTT).
  • חיבור ששורד החלפת רשת. חיבור TCP מזוהה לפי כתובות IP ופורטים; כשהטלפון עובר מ-Wi-Fi לסלולר, הכתובת משתנה והחיבור מת. חיבור QUIC מזוהה לפי מזהה חיבור, ויכול להמשיך מכתובת חדשה.
  • מימוש בתוכנה, לא במערכת ההפעלה. TCP חי בליבת מערכת ההפעלה ומשתנה לאט. QUIC מומש בדפדפנים ובשרתים כספרייה, וזה מה שאפשר לו להתפתח מהר. זה גם מחיר: הוא צורך יותר CPU, לפחות כיום.

למה מעל UDP

לא כי UDP טוב יותר, אלא כי הוא כמעט ריק. כל מה ש-TCP עושה (סדר, אישורים, בקרת גודש) QUIC עושה בעצמו, בדרכו, מעל UDP. הסיבה המעשית: פרוטוקול חדש ברמת IP לא היה עובר דרך הראוטרים, הפיירוולים וה-NAT של העולם. UDP עובר.

מה זה נותן בפועל

כאן חשוב לדייק. ברשת ביתית מהירה ויציבה ההבדל בין HTTP/2 ל-HTTP/3 קטן, ולפעמים לא מדיד. הרווח מורגש בעיקר כש:

  • יש אובדן חבילות: סלולר, Wi-Fi ציבורי, מדינות עם תשתית חלשה.
  • ה-latency גבוה: גולש בישראל מול שרת בארה״ב מרוויח מלחיצת יד קצרה יותר.
  • המשתמש זז בין רשתות: אפליקציות ואתרים שנשארים ״חיים״ במעבר.

מי שמודד Core Web Vitals לפי מדינה ומכשיר בדרך כלל רואה את השיפור באחוזונים הגבוהים (הגולשים האיטיים), לא בחציון. וזה בדיוק המקום שבו הספים נמדדים.

איך בודקים אם האתר שלכם משתמש בזה

ב-DevTools, לשונית Network, הוסיפו את העמודה Protocol. h3 פירושו HTTP/3; h2 פירושו HTTP/2. שימו לב שהחיבור הראשון לאתר כמעט תמיד יהיה h2: הדפדפן לומד על תמיכה ב-HTTP/3 מכותרת Alt-Svc שהשרת שולח, ועובר ל-h3 בבקשות הבאות או בביקור הבא.

באחסון משותף, התמיכה תלויה בשרת שהספק מריץ. LiteSpeed (נפוץ ב-cPanel) תומך ב-HTTP/3 כבר כמה שנים; ב-Apache התמיכה הגיעה מאוחר ועדיין לא ברירת מחדל ברוב ההתקנות. אם האתר מאחורי CDN כמו Cloudflare, ה-CDN מדבר HTTP/3 עם הגולש גם אם השרת שלכם לא, וזה הרוב המכריע של המקרים בפועל.

מה עדיין פתוח

צריכת ה-CPU בצד השרת גבוהה יותר מ-TCP בחומרה הנוכחית, כי אין האצה ברמת מערכת ההפעלה; זה משתפר, ולא נעלם. חלק מרשתות ארגוניות עדיין חוסמות UDP בפורט 443, ואז הדפדפן נופל בשקט ל-HTTP/2. ולבסוף, כלי ניטור ואבחון רשת רבים עדיין מבינים TCP טוב יותר מ-QUIC. שום דבר מזה לא סיבה לא להפעיל; רק סיבה לא לצפות לקסם.

המשך קריאה

פיתוח ותוכנה 1 דק׳ קריאה

הבאג הנדיר במטמון של Hyperdrive

תחקיר על הבאג הנדיר במטמון של Hyperdrive במהלך הבטא של תמיכת MySQL: מדוע תשובות ריקות הופיעו רק כששני רכיבים פירשו אותו מטמון אחרת, ואיך תיק…

מערכת BestSites