PracticU

פרוטוקול HTTP

בלי כתוביותעם כתוביות
PracticU › קורס דוט-נט - NET Core. - עם Rest API › פרוטוקול HTTP
מילון מושגים:
.NET - פלטפורמת פיתוח של מיקרוסופט להרצת יישומים בשפות כמו C#, הכוללת ספריות וסביבת ריצה משותפות.
TCP - פרוטוקול תקשורת אמין שמוודא שכל חבילות המידע מגיעות ליעד בשלמות ובסדר הנכון.
תגובה - המידע שהשרת מחזיר ללקוח בתשובה לבקשה, הכולל בדרך כלל נתונים וקוד סטטוס.
GET - שיטת HTTP לבקשת מידע מהשרת בלי לשנות אותו. הפרמטרים מועברים בדרך כלל בכתובת.
POST - שיטת HTTP לשליחת נתונים לשרת כדי ליצור או לעדכן משאב, למשל שליחת טופס.
טופס - אזור בממשק שבו המשתמש מזין נתונים בשדות ושולח אותם, למשל טופס הרשמה או התחברות.
קוד סטטוס - מספר שהשרת מחזיר בתגובת HTTP ומציין את תוצאת הבקשה, למשל 200 להצלחה או 404 לא נמצא.
HTML - שפת הסימון שבה בונים את מבנה ותוכן דפי האינטרנט, באמצעות תגיות שמגדירות כותרות, פסקאות, קישורים ועוד.

פרוטוקול HTTP
מכירים את פרוטוקול HTTP, הבסיס לכל תקשורת באינטרנט ולבניית Services ב-.NET Core.
איך זה עובד
HTTP (Hypertext Transfer Protocol) הוא פרוטוקול התקשורת שמשמש לבקש ולקבל דפי אינטרנט. הוא עצמו רץ מעל פרוטוקול בסיסי יותר בשם TCP (Transmission Control Protocol), שמעביר את הנתונים בפועל. בפועל HTTP הוא שני מסמכי טקסט: בקשה (Request) שהדפדפן שולח לשרת, ותשובה (Response) שהשרת מחזיר.
השלבים העיקריים
1. מבנה הבקשה: כולל method (כמו GET - בקשת מידע, או POST - שליחת מידע), נתיב הדף בשרת, וגרסת ה-HTTP.
2. Headers בבקשה: רשימת שורות מטא-דאטה (הוראות מערכתיות), כל אחת בפורמט שם:value, כמו כתובת הדפדפן או סוג הדפדפן המבקש.
3. שורה ריקה ו-Body: שורה ריקה מסמנת את סוף ה-Headers. לאחריה מגיע ה-Body - הדאטה העיקרי שנשלח (למשל תוכן טופס), ולרוב לא קיים בבקשות GET.
4. מבנה התשובה: כולל גרסת HTTP, קוד סטטוס (מספר תלת-ספרתי שמתאר את התוצאה) ותיאור קצר שלו, ולאחריהם Headers ושורה ריקה, ואז ה-Body - התוכן הראשי שמוחזר (למשל קוד ה-HTML של הדף).
5. דוגמה לבקשת GET: דפדפן מבקש דף מסוים (למשל football.html), אין לו Body, והשרת מחזיר קוד 200 עם הדף המבוקש.
6. דוגמה לבקשת POST: דפדפן שולח מידע לשרת (למשל כותרת והודעה לפרסום בפורום) בתוך ה-Body, והשרת מחזיר קוד 201 (Created) לאחר שהוסיף את המידע.
7. דוגמה לשגיאה: בקשה לדף שלא קיים בשרת מחזירה קוד 404 (Not Found) עם דף שמסביר שהדף המבוקש לא נמצא.
שימו לב
מספר ה-Headers בבקשה או בתשובה אינו קבוע - אין הגבלה על כמה יהיו, ולכן השורה הריקה היא הסימן היחיד שמבדיל בין סוף ה-Headers לתחילת ה-Body.
בסיום ההרצאה מבינים את מבנה הבקשה והתשובה ב-HTTP, בסיס הכרחי לכל עבודה עם שירותי אינטרנט.
השיעור הבא בקורס: הבנה של HTTP Status Codes

פרקי ההרצאה: פרוטוקול HTTP

  1. 00:00

    פרוטוקול HTTP לבניית Services

  2. 00:38

    פרוטוקול TCP שמתחתיו

  3. 02:11

    מבנה בקשת HTTP וה-method

  4. 03:11

    כותרות בקשת HTTP

  5. 04:43

    מבנה ה-HTTP Response וה-Status Code

  6. 06:20

    דוגמה לבקשת GET

  7. 08:10

    דוגמה לבקשת POST

תמלול ההרצאה: פרוטוקול HTTP

הטקסט המלא של הדקות הראשונות בהרצאה «פרוטוקול HTTP» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    הדבר הראשון שאנחנו בעצם מתחילים איתו זה הבנה של פרוטוקול HTTP. אחד הדברים המרכזיים שאפשר לבנות עם.NET Core זה Services שנמצאים באינטרנט ונותנים לנו איזה שהוא שירות.

  2. 00:17

    בשביל לדעת איך באמת לבנות Services אנחנו צריכים להכיר ממש ב-High Level את פרוטוקול התקשורת HTTP. בואו נבין קודם כל מה זה HTTP.

  3. 00:27

    ראשי תיבות Hypertext Transfer Protocol זה בעצם... פרוטוקול התקשורת של רשת האינטרנט, שנבנה לצורך בקשה וקבלת דפי אינטרנט. התקשורת עצמה שבעזרתה אני מבקש את המידע ומקבל את המידע, או מעביר דאטה ומקבל דאטה, זה תקשורת TCP.

  4. 00:49

    TCP זה Transmission Control Protocol, וזה בעצם הפרוטוקול הבסיסי יותר, שבעזרתו הוא שולח את הדאטה עצמו. אז מה זה HTTP?

  5. 01:00

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

  6. 01:29

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

  7. 01:44

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

  8. 01:56

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

  9. 02:16

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

  10. 02:32

    method זה הייעוד של הבקשה. get זה אומר שאני רוצה לקבל מידע, ו-post זה אומר שאני רוצה לשלוח דאטה לשרת. לאחר מכן אני מתאר איזה דף אני רוצה, כאן אני מתאר רק את הדף עצמו, אני לא מתאר את כל הכתובת לשרת, רק נתיב פנימי איפה הדף נמצא בשרת.

  11. 02:55

    לאחר מכן יש לנו את הגרסה של ה-HTTP, יש מספר מצופצם של גרסאות, אבל פה הגרסה מתוארת, שימו לב שזה סך הכל מסמך טקסטואלי. לאחר מכן יש רשימה שנקראת HTTP Request Headers.

  12. 03:08

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

  13. 03:23

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

  14. 03:51

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

  15. 04:11

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

  16. 04:36

    הפורמט של הבקשה שהדפדפן שולח לשרת השרת מקבלת הבקשה ואז הוא מחזיר תשובה אנחנו כמובן בHDP רוצים דפים ולשרת אמור לשלוח דף אבל לשרת לא שולח את כל הדף as is שולח HTTP response איך בנוי הרספונס?

  17. 04:53

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

  18. 05:07

    איזשהו קוד שמתאר מה קרה. מיד לאחר מכן יש תיאור קצר בין מילה אחת או שתיים שמתאר את הקוד הזה. לדוגמה, אם יש הצלחה, אז אולי יהיה כתוב פה סך הכל את המילה, אוקיי?

  19. 05:19

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

  20. 05:35

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

  21. 06:03

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

  22. 06:18

    בואו נראה כמה דוגמאות יותר ספציפיות. דוגמה ראשונה, דפדפן רוצה לקבל איזה שהוא דף, אז כמובן סטוגה בקשה תהיה get, והוא גולש פנימית לאיזה שהוא אתר, אני לא רואה פה לאיזה אתר, כי זה לא הכתובת המלאה, זה רק פנימה בתוך האתר, יש איזה שהיא ספרייה שנקראת news, בתוכה sports, בתוכה דף html שנקרא football.html, איזה

  23. 06:42

    שהיא גרסה של ה-http שאנחנו עובדים איתה כרגע, הנה רשימת ה'לדוגמה, פה אנחנו רואים מי הכתובת האמיתית של השרת, זאת אומרת שהכתובת הסופית זה זה ביחד עם זה, זה נקרא header host, מי אני בתור לקוח, בתור request, בתור דפדפן, זה הכתובת ה-IP של הדפדפן עצמו, מה סוג הדפדפן?

  24. 07:06

    פה אנחנו רואים שזה אופרה אולי, אז אנחנו רואים שיש כל מיני הוראות מערכתיות כאלה, data מערכתי, זה ההדרים, יש פה עוד הדרים, ההדרים ממשיכים עד לכאן, ואז יש לנו שורה הריקה, ואז המידע הראשי.

  25. 07:20

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

  26. 07:33

    זהו, הנה פה הכתובת של האתר. לכן הרבה פעמים קורה שבבקשות Get אין לנו Buddy. עכשיו השרת צריך להחזיר תשובה. אשר את אומר, אוקיי, אני עובד איתכם, אני הגרסה הזאת, שייתי פי 1.1, מתי זה הצלחה?

  27. 07:48

    אוקיי, הכל בסדר, אני קיבלתי את הבקשה שלך, אני הבנתי מה אתה רוצה, יש לי את הדף הזה, הכל בסדר. הנה כל מיני הדרים שאני אומר לך, מי אני? אני סרבר מסוג הפאצ'י.

  28. 07:59

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

  29. 08:10

    אתה רצית את הדף פוטבול, הנה הקרוב. הקוד שלו, קוד HTML, קח אותו, הדפדפן שולף מפה את הדף ומציג. אוקיי, בואו נראה סוג אחר של בקשה. הדפדפן מייצר בקשת פוסט, פוסט זה אומר, הדפדפן רוצה לשלוח

לקורס המלא: קורס דוט נט NET Core. אונליין

ההרצאה הקודמת: מערכת NuGet - התקנת ספריות

ההרצאה הבאה: הבנה של HTTP Status Codes

הרצאות קשורות מקורסים אחרים

  • פרוטוקול HTTP הסבר על Request
  • פרוטוקול ARP
  • פרוטוקול Ethernet
  • חטיפה של HTTP Session

קורסים נוספים במסלול

  • קורס Entity Framework Core - עבודה עם מסד נתונים בדוט-נט
  • קורס ASP.NET
  • קורס MVC
  • קורס Git ו-GitHub עם Visual Studio