עד עכשיו ראינו דרך אחת בה הדפדפן “מדבר” עם השרת – על ידי בקשת get.
בכל פעם שרצינו לגשת לדף מסוים, הכנסנו כתובת URL לדפדפן ומאותו רגע, הדפדפן איתר את שרת האינטרנט, שלח לו בקשה וקיבל דף אינטרנט בחזרה.
בכל פעם שרצינו לגשת לדף מסוים, הכנסנו כתובת URL לדפדפן ומאותו רגע, הדפדפן איתר את שרת האינטרנט, שלח לו בקשה וקיבל דף אינטרנט בחזרה.
הנה דוגמא לבקשה כזו

בדוגמא למעלה אפשר לראות בקשת http שנשלחה מהדפדפן שלנו (Maxthon במקרה שלנו) לשרת האינטרנט.
נביט על השורה השלישית (השורה האפורה) ונראה כי הבקשה היא בקשת GET ותוכנה:
Expert Info (Chat/Sequence): GET /webhp?client=aff-maxthon-newtab&channel=t2 HTTP/1.1\r\n
נביט על השורה השלישית (השורה האפורה) ונראה כי הבקשה היא בקשת GET ותוכנה:
Expert Info (Chat/Sequence): GET /webhp?client=aff-maxthon-newtab&channel=t2 HTTP/1.1\r\n
כאשר אנו רוצים להעביר בקשה לעמוד מסוים או להעביר מילים למנוע חיפוש, נעביר בדרך כלל בקשות קצרות,
בקשות GET מאוד נוחות לשליחת כמויות קטנות של מידע, כמו למשל בקשה לקובץ מסוים על השרת או מספר מילים למנוע חיפוש (חפשו מילה בגוגל ותראו את הבקשה בשורת הכתובת).
אך כיצד נוכל להעביר כמות גדולה של מידע לשרת אינטרנט?
בקשות GET מאוד נוחות לשליחת כמויות קטנות של מידע, כמו למשל בקשה לקובץ מסוים על השרת או מספר מילים למנוע חיפוש (חפשו מילה בגוגל ותראו את הבקשה בשורת הכתובת).
אך כיצד נוכל להעביר כמות גדולה של מידע לשרת אינטרנט?
איך נעביר למשל פרסום סטאטוס מאוד ארוך בפייסבוק? באמצעות GET?
דבר אחד חשוב לגבי בקשות GET הוא העובדה שבקשות אלו מוגבלות באורכן, על פי ה- RFC:
The HTTP protocol does not place any a priori limit on the length ofa URI. Servers MUST be able to handle the URI of any resource theyserve, and SHOULD be able to handle URIs of unbounded length if theyprovide GET-based forms that could generate such URIs. A serverSHOULD return 414 (Request-URI Too Long) status if a URI is longerthan the server can handle (see section 10.4.15).
Note: Servers should be cautious about depending on URI lengths above 255 bytes, because some older client or proxy implementations may not properly support these lengths.
כלומר, על פי הפרוטוקול, שרת אינטרנט אמור לקבל בקשות GET בכל אורך, אך בפועל דפדפנים ישנים ושרתי PROXY מסוימים אינם מסוגלים להתמודד עם בקשות GET שאורכן עולה על 255 תווים.
שרתי אינטרנט מודרניים לעומת זאת, מאפשרים למנהל הרשת להגדיר את הגודל המקסימלי של בקשות ה-GET (בדרך כלל 8KB).
תכונה נוספת לשליחת מידע באמצעות GET היא הצגת הפרמטרים או הבקשה בשורת הכתובת, לא תמיד נרצה להעביר מידע דרך שורת הכתובת (איך נעביר סיסמת login לאתר?).
תכונה זו תהיה שימושית לשליחת / שמירת לינקים (כי תמיד נוכל להעתיק את הכתובת מהדפדפן), אך תהיה בעייתית במידה ונרצה "להסתיר" חלק מהמידע.
תכונה זו תהיה שימושית לשליחת / שמירת לינקים (כי תמיד נוכל להעתיק את הכתובת מהדפדפן), אך תהיה בעייתית במידה ונרצה "להסתיר" חלק מהמידע.
בקיצור, לעיתים קרובות, לא נוכל לסמוך על הדפדפן / שרתים שבדרך שיעבירו מידע רב באמצעות בקשת GET ולא תמיד נרצה שהמידע יוצג בשורת הכתובת של הדפדפן.
לכן נרצה להשתמש בשיטה שונה לשליחת מידע רב - POST (ישנה גם מתודולוגית הREST עליה עדיין לא דיברנו).
לכן נרצה להשתמש בשיטה שונה לשליחת מידע רב - POST (ישנה גם מתודולוגית הREST עליה עדיין לא דיברנו).
אין תגובות:
הוסף רשומת תגובה