2022-02-25 16:59:02 Admin

מה זה HTTP/3 ומה זה נותן לנו ?



הקדמה

לאחרונה פרסמנו  שYALLA בניית אתרים - תומכת מעתה בפרוטוקול HTTP/3, ובאופן צפוי קיבלנו הרבה פניות מבעלי חנויות וירטואליות ואתרים שלא לגמרי בקיאים בנושא ושרצו להבין קצת יותר. על כן החלטנו לפרסם את הכתבה הזו. נזהיר :) שמדובר בנושא שבמהותו הוא מעט טכני ואנחנו לא מעוניינים להיות כאן טכניים מדי - אז נעשה את המאמץ להסביר את הרעינות המרכזיים באופן כללי, כך שההסבר הוא רק על קצה המזלג ומי שמעוניין להתעמק בנושא יוכל להרחיב עליו במקורות נוספים.

קודם כל נקדים ונאמר ש HTTP זה קיצור של HyperText Transfer Protocol שאם ננסה לתרגם את הביטוי לעברית נקבל פרוטוקול להעברת דפי "היפר טקסט" שהרי הם - דפי אינטרנט (דפי HTML, תמונות וכדומה), כלומר מדובר בתצורת שליחה וקבלת נתונים, ולמעשה האופן שבו הדפדפן שלנו שולח בקשות לקבלת דפי אינטרנט. 

כפי שהסיפרה 3 מרמזת , HTTP/3 זוהי האבולוציה השלישית של פרוטוקול ה-HTTP. בתחילת הדרך בשנת 1991 נוצר HTTP/1 (וגם היה בהמשך HTTP/1.1), ולאחר מכן בשנת 2015 הושק HTTP/2. לגבי השנה שהושק HTTP/3 זה עוד לא לגמרי מוגדר כי זהו פרוטוקול חדש מאוד ונכון להיום (פברואר 2022) הוא אפילו לא שוחרר רשמית, ורק מי שמאוד חשוב לו מהירות וביצועים (כמו פייסבוק, גוגל, קלאודפלייר ו-גם YALLA) ועשה בעצמו את ההתאמות הנדרשות בשרתים יכול להשתמש בו. 



אז איזה יתרונות יש בלהשתמש באתרים בפרוטוקול החדש - HTTP/3 יחסית לHTTP/2

בקצרה - ביצועים יותר גבוהים, זמני טעינה יותר נמוכים, אבטחה ברמה יותר גבוהה ויציבות -

* עבודה ב-UDP (יותר מהיר, הסבר לגבי UDP בפסקה הבאה).
* חיבור ראשוני מהיר ("לחיצת-יד/ Handshake" מהירים) 
* יותר מהיר בתוכן מאובטח SSL/TLS (רלוונטי במיוחד לאתרי מכירות)
* יותר מאובטח - מקשה על התקפות מסוג DOS - התקפת מניעת שירות (Denial-Of-Service)
* פרטיות גבוהה יותר - מקשה על ציטוט למידע והתקפות מסוג Man in the middle.
* גלישה יותר יציבה גם ברשתות חלשות (בגלל תצורות UDP) וזה במיוחד רלוונטי ונותן יתרונות בגלישה מחוץ לבית, ובסמארטפונים.

כמובן שיתרונות אלו משפיעים לטובה גם על הגולשים באתרים, וגם על בעלי ומנהלי האתרים. 


מה ההבדל המרכזי בין HTTP/3 החדש לבין הפרוטוקולים הישנים - HTTP/1 ו- HTTP/2?

ההבדל העיקרי הוא ש HTTP/3 עובד בתצורת UDP - ונסביר:

נתחיל בכך שנסביר שכשמידע נשלח באינטרנט הוא נשלח ב"חתיכות"/"פאקטות" נפרדות (Packets), ולאחר מכן החלקים שהגיעו מתחברים.
ישנן שתי צורות עיקריות לחלוקה ושליחת המידע. תצורה אחת נקראת TCP שהיא יותר איטית אך יותר אמינה, והתצורה השניה ה-UDP שהיא יותר מהירה בפירוק שליחה וחיבור, אך היא פחות אמינה. לכן תצורת UDP היתה בשימוש בעיקר במקרים שרוצים לשלוח משהו שחשוב שיגיע מאוד מהר, אבל כאשר לא כל כך נורא אם יגיע לפעמים מעט משובש ולא מושלם. השימוש העיקרי של UDP הוא "סטרימינג" - דברים שמתרחשים בזמן אמת כגון שיחת ווידאו בווצאפ.

אם נרצה לשים את האצבע על הבדל עיקרי אחד אז זה יהיה ש- HTTP/1 ו-HTTP/2 (הפרוטורולים הישנים) עובדים בתצורת TCP לעומת  HTTP/3 שעובד בUDP תצורת הסטרימינג המהירה. בעצם הHTTP/3 מנצל את היתרונות של הביצועים המהירים של הUDP ושליחת נתונים בקצב ששימש עד עכשיו שיחות וסטרימינג בזמן אמת. חשוב לציין שבHTTP/3 קיימות שכבות נוספות לפצות על בעיית ה"אמינות" שב UDP.


כמה תמיכה יש ל HTTP/3 בדפדפנים?
נכון להיום כ-75% אחוז מהדפדפנים תומכים ב HTTP/3. כרום תומך בHTTP/3 כבר בגרסאות שהושקו החל ממאי 2021. 


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




תוכלו לפרט קצת מה היה קודם?

כן! הנה קצת "היסטוריה" בקצרה - והבדלים בין האבולוציות של ה-HTTP:

HTTP/1 
זהו הפרוטוקול הבסיסי משנות ה90 של האינטרנט. 
בקיצור על HTTP/1 - שולחים בקשה ומקבלים קובץ חזרה.
אם האתר צריך מספר קבצים (כמו תמונות, פונטים וכד') הם יישלחו אחד אחרי השני, לא במקביל. 

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

כמו כן, הפרוטוקול היה איטי מאוד כשמדובר באתרים מאובטחים בSSL – ונזכיר שפעם ההמלצה היתה לא לעבוד עם SSL ותוכן מאובטח אם רוצים שהאתר יטען מהר (ואם חייבים אבטחה כמו באתרי מכירות אז ההמלצה היתה לשים רק איפה שחייבים כגון דף התשלום, ולא בדף הבית או תמונות).

HTTP/2
פרוטוקול יותר מתקדם מHTTP/1, הושק ב2015 וזה הפרוטוקול הנפוץ כיום באתרים.
בקיצור על HTTP/2 - שולחים בקשה (נכנסים לאתר) ויכולים לקבל חזרה מספר קבצים במקביל (תמונות, פונטים וכד').

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

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


ו- HTTP/3 כפי שפורט לעיל

השנה 2022 והוא עוד לא הושק רשמית - אך ניתן כבר להשתמש בו למי שרוצה ללכלך את הידיים בהגדרות.

עובד בUDP (יותר מהיר)
עוד יותר מהיר מקודמיו בתוכן מאובטח SSL/TLS
יותר מאובטח מקודמיו  - מקשה על התקפות מסוג DOS - התקפת מניעת שירות (Denial-Of-Service)
פרטיות גבוהה יותר מקודמיו  - מקשה על ציטוט למידע והתקפות מסוג man in the middle.
חיבור ראשוני מהיר ("לחיצת-יד/ Handshake") לאתרים מאובטחים (ונזכור שאתרי מכירות הם מאובטחים, ולמעשה כיום גם אם לא מדובר באתר מכירות הדבר חשוב שכן אם אין אבטחה הדפדפנים מציגים הודעת אזהרה).
גלישה יותר יציבה גם ברשתות חלשות (בגלל UDP) - כך שגם בגלישה בסלולר מחוץ לבית טעינה של אתר תעבוד יותר חלק.


והכי חשוב:

מעוניינים בהקמת אתר אינטרנט (אפשר גם לשדרג אתר קיים) או בבניית חנות וירטואלית מקצועית שגם עובדים בHTTP/3? פנו אלינו לYALLA !