דילוג לתוכן
חיפוש באתר

כללי

מה זה HTTP? איך הדפדפן והשרת מדברים

מה זה HTTP: בקשה ותשובה, שיטות כמו GET ו-POST, קודי סטטוס 2xx עד 5xx, למה הפרוטוקול לא זוכר כלום, וההבדל בין HTTP ל-HTTPS.

· 1 צפיות ·

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

מה זה HTTP: בקשה ותשובה

לפי הסקירה של MDN, HTTP הוא פרוטוקול לקוח-שרת: תמיד הלקוח — בדרך כלל הדפדפן — פותח את הבקשה, והשרת עונה. כך נראית בקשה פשוטה והתחלה של תשובה:

GET /blog/ HTTP/1.1
Host: webup.co.il
Accept-Language: he

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8

בבקשה יש שיטה (GET), נתיב (/blog/), גרסת פרוטוקול, וכותרות — למשל באיזו שפה הדפדפן מעדיף תוכן. בתשובה יש קוד סטטוס (200), כותרות — למשל סוג התוכן — ואחריהן גוף התשובה: ה-HTML של העמוד.

השיטות הנפוצות

  • GET — לקבל משאב. כל כניסה לעמוד היא GET.
  • POST — לשלוח נתונים לשרת, למשל טופס צור קשר או הזמנה.
  • HEAD — כמו GET, אבל רק הכותרות, בלי התוכן. כלים שבודקים אם עמוד קיים משתמשים בו.
  • PUT, PATCH, DELETE — עדכון ומחיקה. נפוצים בעיקר ב-API, למשל בREST API של וורדפרס.

קודי סטטוס: מה השרת אומר

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

קבוצה משמעות דוגמאות שתפגשו
2xx הצלחה 200 OK
3xx הפניה — המשאב נמצא במקום אחר 301 הפניה קבועה, 302 הפניה זמנית, 304 לא השתנה
4xx שגיאה בצד הבקשה 403 אין הרשאה, 404 לא נמצא, 429 יותר מדי בקשות
5xx שגיאה בצד השרת 500 שגיאת שרת, 502 שער שגוי, 503 שירות לא זמין

לכל אחת מהשגיאות הנפוצות יש מאמר משלה: 404, 500 ו-503, 403 ו-502. ועל ההבדל בין 301 ל-302 — ולמה הוא חשוב כשמשנים כתובות — במאמר הפניה 301.

HTTP לא זוכר כלום — ואיך בכל זאת יש התחברות

MDN מדגישה ש-HTTP הוא פרוטוקול חסר מצב (stateless): אין שום קשר בין שתי בקשות, גם אם הן מגיעות מאותו דפדפן באותה שנייה. אז איך אתר זוכר שהתחברתם, או מה יש לכם בעגלה? בעזרת עוגיות: השרת שולח לדפדפן מזהה קטן, והדפדפן מצרף אותו לכל בקשה הבאה. כך נבנית "שיחה" מתוך בקשות נפרדות. על השימוש בעוגיות — וחובת ההסכמה לחלק מהן — כתבתי במאמר עוגיות באתר.

הגרסאות: HTTP/1.1, HTTP/2 ו-HTTP/3

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

  • HTTP/1.1 הוסיף חיבורים שנשארים פתוחים, אבל בקשה אחת חוסמת את הבאה בתור.
  • HTTP/2 מעביר הרבה בקשות במקביל על חיבור אחד.
  • HTTP/3 רץ מעל QUIC, פרוטוקול שבנוי על UDP, ומתמודד טוב יותר עם רשתות לא יציבות כמו סלולר.

לבעל אתר, אין מה לשנות בקוד: הגרסה נקבעת בשרת או בשירות שמתווך לפניו. פירטתי במאמר HTTP/2 ו-HTTP/3.

HTTP מול HTTPS

ב-HTTP רגיל, כל מה שעובר — כולל סיסמאות ופרטי טפסים — עובר כטקסט שאפשר לקרוא בדרך. HTTPS עוטף את אותן הודעות בחיבור מוצפן (TLS) ומאמת שהשרת הוא באמת מי שהוא טוען שהוא, באמצעות תעודה. היום אין סיבה לאתר בלי HTTPS — ראו תעודת SSL ומעבר ל-HTTPS.

שאלות נפוצות

איך אני רואה את בקשות ה-HTTP של אתר?

בכלי המפתחים של הדפדפן (F12), בלשונית Network. כל שורה היא בקשה, עם הקוד, הגודל והזמן שלה.

למה הדפדפן מראה "לא מאובטח"?

כי העמוד נטען ב-HTTP ולא ב-HTTPS, או שחלק מהקבצים בו עדיין נטענים ב-HTTP.

מאמרים קשורים: מה זה URL? פירוק של כתובת אינטרנט לחלקים וMixed content: תוכן מעורב אחרי מעבר ל-HTTPS — איך מוצאים ומתקנים.

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

אהבתם את המאמר?

בואו נבנה יחד!

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

חיפוש באתר