ניתוח HTTP באמצעות Wireshark

Http Analysis Using Wireshark



מהו HTTP?

ראשית, כל הצורה המלאה של HTTP היא פרוטוקול העברת HyperText. HTTP הוא פרוטוקול שכבת יישום במודל ISO או TCP/IP. עיין בתמונה למטה כדי לגלות HTTP הנמצא מתחת לשכבת היישום.







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



לדוגמה, כאשר אתה מזין כתובת אתר בדפדפן (Internet Explorer, Chrome, Firefox, Safari וכו ') הוא למעשה שולח פקודת HTTP לשרת. והשרת משיב בפקודה מתאימה.



שיטות HTTP:

ישנן מספר שיטות עבור HTTP/1.1 (זוהי גרסת HTTP)





קבל, ראש, פוסט, שים, מחק, התחבר, אופציה ועקוב אחר.

לא ניכנס לפרטי כל שיטה, אלא נלמד להכיר את השיטות הנראות לעיתים קרובות למדי



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

הודעה: שיטת POST משמשת כאשר היא נדרשת לשלוח נתונים לשרת.

HTTP הוא Wiresahark:

בואו ננסה משהו מעשי כדי להבין כיצד HTTP עובד?

אז בדוגמה הזו נוריד alice.txt (קובץ נתונים קיים בשרת) מ gaia.cs.umass.edu שרת.

סטים:

  1. פתח את כתובת האתר http://gaia.cs.umass.edu/wireshark-labs/alice.txt [אנו יודעים את כתובת האתר המלאה להורדת alice.txt] בדפדפן המחשב.
  2. כעת אנו רואים את הקובץ שהורדת בדפדפן. הנה צילום המסך

  1. במקביל תפסנו את המנות ב- Wireshark.

חילופי מנות HTTP ב- Wireshark:

לפני שנכנס ל- HTTP עלינו לדעת כי HTTP משתמש ביציאה 80 וב- TCP כפרוטוקול שכבת תחבורה [נסביר על TCP בדיון בנושא אחר].

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

להלן צילום המסך של

לחיצת יד 3-כיוונית TCP ——-> HTTP OK ——-> נתוני TCP [תוכן alice.txt] ——->

HTTP-OK

כעת נראה מה יש בתוך מנות HTTP GET ו- HTTP OK.

הערה: נסביר חילופי TCP בדיון בנושא אחר.

קבל HTTP:

לאחר לחיצת יד 3-כיוונית TCP [מנות SYN, SYN+ACK ו- ACK], נשלחת בקשת HTTP GET לשרת והנה השדות החשובים במנה.

1. שיטת בקשה: קבל ==> המנה היא HTTP GET.

2. בקש URI: /wireshark-labs/alice.txt ==> הלקוח מבקש קובץ alice.txt המופיע תחת /Wireshark-labs

3. גרסת בקשה: HTTP/1.1 ==> זוהי גירסת HTTP 1.1

4. קבל: טקסט/HTML, יישום/xhtml+xml, image/jxr, */ * ==> מספר לשרת לגבי סוג הקובץ שהוא [דפדפן בצד הלקוח] יכול לקבל. כאן הלקוח מצפה ל- alice.txt שהוא סוג טקסט.

5. קבל שפה: en-US ==> תקן שפה מקובל.

6. סוכן משתמש: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv: 11.0) כמו Gecko ==> סוג דפדפן בצד הלקוח. גם אם השתמשנו ב- Internet Explorer אבל אנחנו רואים את זה תמיד/זמן מקסימלי אומר מוזילה

7. קבל קידוד: gzip, לנפח ==> קידוד מקובל בצד הלקוח.

8. מארח: gaia.cs.umass.edu ==> זהו שם שרת האינטרנט שאליו שולח הלקוח בקשת HTTP GET.

9. חיבור: Keep-Alive ==> חיבור קובע אם חיבור הרשת יישאר פתוח לאחר השלמת העסקה הנוכחית. סוג החיבור הוא שמור על החיים.

להלן צילום המסך של שדות מנות HTTP-GET

אישור HTTP:

לאחר נתוני TCP [תוכן alice.txt] נשלח בהצלחה HTTP OK נשלח ללקוח והנה השדות החשובים בחבילה.
1. גירסת תגובה: HTTP / 1.1 ==> כאן שרת גם בגרסת HTTP 1.1
2. קוד סטטוס: 200 ==> קוד סטטוס נשלח על ידי השרת.
3. משפט תגובה: בסדר ==> ביטוי תגובה נשלח על ידי השרת.

כך שבין 2 ו -3 נקבל 200 אישור מה שאומר שהבקשה [HTTP GET] הצליחה.

4. תאריך: יום ראשון, 10 בפברואר 2019 06:24:19 GMT ==> התאריך הנוכחי, השעה ב- GMT כאשר HTTP GET התקבל על ידי השרת.
5. שרת: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16 mod_perl/2.0.10 Perl/v5.16.3 ==> פרטי שרת וגירסאות תצורות.
6. השתנה לאחרונה : שבת, 21 באוגוסט 2004 14:21:11 GMT ==> התאריך והשעה האחרונים של הקובץ alice.txt.
7. תג: 2524a-3e22aba3a03c0 ==> ה- ETag מציין שהתוכן אינו משתנה כדי לסייע למטמון ולשפר את הביצועים. או אם התוכן השתנה, etags שימושי כדי לסייע במניעת עדכונים בו זמנית של משאב להחליף אחד את השני.
8. קבל טווחים: בתים ==> בייט היא היחידה המשמשת בשרת לתוכן.
9. אורך התוכן: 152138 ==> זהו האורך הכולל של alice.txt בבייטים.
10. Keep-Alive: פסק זמן = 5, מקסימום = 100 ==> שמור על פרמטרים חיים.
11. חיבור: להשאיר בחיים ==> חיבור קובע אם חיבור הרשת יישאר פתוח לאחר השלמת העסקה הנוכחית. סוג החיבור הוא שמור על החיים.
12. סוג תוכן: טקסט/רגיל; ערכת תווים = UTF-8 ==> סוג התוכן [alice.txt] הוא טקסט ותקן chars הוא UTF-8.

להלן צילום המסך לשדות שונים של מנות HTTP OK.

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

סיכום:

HTTP הוא פרוטוקול יישומים פשוט שאנו משתמשים בו כל יום בחיינו. אבל זה לא מאובטח ולכן HTTPS יושם. ש- S מייצג מאובטח. לכן אתה כל כך מקסימום שם שרת האינטרנט מתחיל ב- http s: // [שם אתר] . המשמעות היא שכל התקשורת בינך לבין השרת מוצפנת. נקיים דיון נפרד בנושא HTTPS זה בעתיד.