פרוטוקול HTTP/2: מה זה בכלל? יתרונות, הטמעה ועוד

במאמר היום נבחן את הפרוטוקול החדש, HTTP/2 או Http2 והמשמעות שלו מבחינתנו כבעלי או מקדמי אתרים ב-Google.

http2 זהו פרוטוקול די מהפכני מבחינת היכולות, הוא הושק ב-2015, ובהתחשב בכך שהוא החליף פרוטוקול מ1999 – הוא נחשב גם לצעיר מאד.

מדריך HTTP/2

במאמר הבא:

  • ננסה להבין מהו HTTP/2 (דגש על ננסה, אני בקושי הצלחתי)
  • מה http 2 בא להחליף
  • מהם יתרונותיו
  • מהן המשמעויות לגבינו
  • כיצד עובדים עם HTTP/2

* והערה קטנה לפני החפירה – המאמר הזה טכני נורא, גם אני לא מבין חצי מהמילים שכתבתי כאן, אבל היי – אולי חסכתי לכם קצת מאמץ 🙂

מה כל כך נורא ב-HTTP או HTTP1.1?

HTTP, ראשי תיבות של Hypertext Transfer Protocol – הוא הפרוטוקול באמצעותו הדפדפן מתקשר עם השרת בשביל להעביר את כל המידע שדרוש לשם הצגת דף מסוים.

זה בעצם התהליך של טעינת הדף. כאשר מדברים על 'זמן טעינה', מדברים על תהליך שבנוי משלושה שלבים:

  • שליחת בקשה מהמחשב לשרת לקבלת קובץ
  • אתחול חיבור ה-TCP (Transmission Control Protocol)
  • הורדת הקובץ

כאשר הוצג פרוטוקול הHTTP-, אתרי האינטרנט היו מאד פשוטים והכילו מעט אלמנטים. גם מהירות החיבור היתה איטית יותר כאשר מודמים DIAL-UP היו בערך פי 100 יותר איטיים.

המשמעות של העניין, לאור שלושת שלבי טעינת האתר, היא שזמן הורדת הקובץ היה מאד משמעותי. לכל אלמנט הייתה אומנם נשלחת בקשה לשרת והיה זמן איתחול קשר, אבל מספר האלמנטים היה קטן יחסית. צוואר הבקבוק היה בהורדת האלמנטים, בעיקר התמונות, והוא נבע מרוחב פס מוגבל.

בחזרה לתקופתנו, האתרים בנויים היום ממספר רב של קבצים שונים שצריכים להטען בכדי להציג אותם. כל קובץ כזה אומר בקשה ואתחול קובץ מחדש.

מה שזה אומר בעצם זו שליחת בקשה לצד השני של העולם והמתנה לתשובה.

מכיוון שהתהליך קורה מספר פעמים, אחד אחרי השני, העיכובים הללו מצטברים ויוצרים את זמן הטעינה הממושך. שני דברים צריך לאמר כאן:

  • התיאור הזה מאד פשטני כי כן היו נסיונות שצלחו לפתור את הבעיה, בעיקר על ידי פתיחת שתי התקשרויות שונות במקביל ואז ארבעה ואפילו שישה. בעיקרון, זו הבעיה שHTTP/2- פותר בצורה די יפה, מיד נראה כיצד.
  • שימו לב שלא כתבתי מילה על זמני ההורדה עצמם של האלמנטים השונים מפני שכיום זהו נתון זניח.

איך HTTP/2 עושה את הדברים יותר טוב

ישנם מספר שינויים עקרוניים לפרוטוקול החדש:

  • מולטיפלקסינג (MULTIPLEXING) או "ריבוב" בעברית – זהו החידוש הגדול והחשוב (וגם זה עם השם היותר מפוצץ). מולטיפלקסינג זו היכולת של השרת והקליינט (באמצעות הדפדפן) להשתמש רק בחיבור TCP אחד בשביל להעביר מספר אלמנטים.
    האלמנטים השונים: תמונות, קבצי CSS -JavaScript למשל, מועברים ביחד בחיבור אחד. זה מצמצם את העיכובים הקטנים והרבים שנגרמים בHTTP1.
  • תעדוף ותלות (Dependency, Prioritization) – בפרוטוקול החדש יש יכולת לתת תעדוף של משאבים שונים על פני אחרים, על מנת לייעל את תהליך זרימת הנתונים.
  • דחיפת קבצים על ידי השרת (Server Push) – הפרוטוקול החדש מאפשר לשרת "לדחוף" קבצים למטמון הדפדפן עוד לפני הבקשה עצמה – חיסכון וייעול של זמן.

 בשביל להסביר את זה בשפה עממית יותר דמינו את הסיטואציה הבאה:

אתם יושבים בקפה קטן, קוראים למלצר ומזמינים קפוצ'ינו. המלצר מביא לכם והולך. אתם מגלים שתצטרכו סוכר. אתם קוראים למלצר, הוא מגיע, אתם מבקשים סוכר, הוא הולך ומביא. וכך הלאה לגבי בקשות נוספות שלכם (מפית, סנדביץ', כוס מים וכו').

אשמח לבדוק את האתר שלך בחינם!

על מנת לראות את הפוטנציאל האורגני ותוך כמה זמן נכפיל לך את ההכנסות

ניתן לחייג למספר 052-9095200 או למלא את הטופס:

הקריאות הדחופות למלצר וזמן ההמתנה שיגיע בכל פעם היו נחסכים אם הוא היה מביא את כל הדברים ביחד ואפילו 'מגדיל ראש' ומביא גם סוכרזית, קיסמי שיניים או כל דבר אחר שהוא משער שתצטרכו. זמן ההליכה שלו הוא זניח בבית קפה קטן.

יש?

הוידאו הזה מסביר את הדברים בצורה די טובה:

כיצד מיישמים HTTP/2?

להלן תהליך הישום של הפרוטוקול החדש:

  1. לפני ההטמעה של HTTP/2, נצטרך לוודא שאנחנו עובדים עם אתר מאובטח. הרוב המוחלט של הדפדפנים לא יעדו עם HTTP/2 אם האתר לא עובר דרך HTTPS. מה שיקרה זה שהם יעברו אוטומטית לפרוטוקול הקודם HTTP 1.1.
    סיבה נוספת לעבור לאתר מאובטח בכל הדפים היא כמובן גוגל וקידום אתרים. גוגל מתעדף אתרים מאובטחים וכיום זו ממש דרישה אלמנטרית מכל אתר.
  2. כצעד ראשון, ניתן להעביר רק את הנכסים הסטטיים לHTTP/2-. מדובר בעיקר על תמונות. זה כבר ישפר את מהירות הטעינה.
  3. ביצוע מעבר אל HTTP/2בשרת. זו פעולה שניתן לעשות לבד או להיעזר בספק השרות שלכם. Nginx וApache תומכות בHTTP/2 מגרסאות 1.9.5 ו 2.4.17 בהתאמה.
  4. לבדוק שהכל עובד. ממש כמו כל עדכון, אתם רוצים לוודא שהוא עבר בשלום ולבחון את השיפורים.
  5. ישנן שתי טכניקות נפוצות בהן השתמשו בכדי ליעיל את התהליך בשימוש עם הפרוטוקול הישן HTTP 1.1.
    אחת מהן היא Spriting – זה בעצם ההפיכה של מספר תמונות קטנות לתמונה גדולה, שליחתה ופירוקה על ידי הדפדפן.
    השיטה השניה היא שרשור קבצים אחד עם השני Concatenation – זה שילוב של קבצים שונים שמשורשרים לזרם אחד של מידע בכד לחסוך פתיחת התקשרויות TCP. ברגע שעוברים לHTTP/2, אין יותר צורך להשתמש בטכניקות הללו ועדיף להסיר אותן משימוש.
  6. לגבי אתרי WordPress – זה מאד פשוט, האתר צריך להיות מאוחסן על שרתים שתומכים בHTTP/2-. יש לשים לב להתניה שעדיין קיימת לאתר מאובטח. אם הוא איננו מאובטח – ההתקשרות תתבצע בסופו של דבר דרך HTTP1 מהסיבות שציינו.

סיכום

הפרוטוקול הצעיר HTTP/2 נהיה יותר ויותר נפוץ. לפי הערכות שונות כבר יותר מ- 25% מהתנועה באינטרנט עוברת באמצעותו ויותר מ75% מהדפדפנים תומכים בו. הפרוטוקול יכול להוריד בכ-50% את זמן הטעינה של האתר. ככל שהאתר עמוס ביותר אלמנטים וקבצים שונים, כך השיפור יהיה גדול יותר.

רוב הסיכויים שבשנים הקרובות נראה יותר ויותר אחסונים תומכים באופציה הזו וכנראה גם גוגל יעודדו בעלי אתרים לעשות את המעבר.

בהקשר זה ממליץ לקרוא גם את המדריך שכתבתי על אבטחת אתרים.

בהצלחה 🙂

מדריכים נוספים:

אהבת? גם ברשימת תפוצה שלי אני מפנק :-) ועל הדרך נותן מתנה >>
הרשמה לרשימת תפוצה
יש מצב שגם אלו יעניינו אותך...
Call Now Button חייגו עכשיו