שמירת עוגיות במעבר בין דפים ב-cURL
נשלח: 19:09 15/11/2018
הגדרת עוגייה חדשה
בקשות דפי אינטרנט נעשות דרך פרוטוקול HTTP, בעזרת הדפדפן. תחילה, מבלי להתייחס לעוגיות, הדפדפן מבקש דף מהשרת על ידי שליחת טקסט קצר המכונה "HTTP request". לדוגמה, כדי לגשת לדף http://www.w3.org/index.html, הדפדפן שולח לשרת http://www.w3.org בקשה:
דפדפןקוד: בחירת הכל
GET /index.html HTTP/1.1
Host: http://www.w3.org
←
שרת
השרת משיב ושולח חבילת מידע המכונה "HTTP header". חבילת מידע זו כוללת שורות טקסט המבקשות מהדפדפן ליצור עוגיות (השורה השלישית):
קוד: בחירת הכל
HTTP/1.1 200 OK
Content-type: text/html
Set-Cookie: name=value
(תוכן הדף)
דפדפן
→
שרת
שורת ה-Set-Cookie נשלחת רק כאשר השרת מעוניין ליצור עוגייה. בשורה זו מבקש השרת מהדפדפן לשמור את המחרוזת name=value. אם הדפדפן מתיר את השימוש בעוגיות, הדפדפן ישלח עוגייה זו לשרת בכל פעם שהמשתמש יבקש לעיין בדף חדש. לדוגמה, אם הבקשה הבאה תהיה הדף http://www.w3.org/spec.html, אזי הבקשה הבאה תישלח לשרת http://www.w3.org:
קוד: בחירת הכל
GET /spec.html HTTP/1.1
Host: http://www.w3.org
Cookie: name=value
Accept: */*
דפדפן
←
שרת
גם כאן מדובר בבקשת דף אינטרנט מהשרת. ההבדלים בין בקשה זו לבקשה הקודמת נובעים מהעוגייה שנוצרה בין הבקשות. באופן זה יודע השרת שבקשה זו קשורה לבקשה הקודמת. השרת, בתגובה, ישלח את הדף המבוקש, ואולי גם בקשה ליצירת עוגיות נוספות. שרת יכול לשנות ערך של עוגייה על ידי שליחת שורה חדשה (Set-Cookie: name=newvalue) בתגובה לבקשת דף מהדפדפן. הדפדפן יחליף את הערך הישן בערך החדש. שורת ה-Set-Cookie נוצרת על ידי תוכנית CGI ואילו שרת ה-HTTP שולח את פלט התוכנית לדפדפן. ניתן להגדיר עוגיות גם באמצעות שפת JavaScript ושפות דומות אחרות הרצות באמצעות הדפדפן. ב-JavaScript משמש האובייקט document.cookie למטרה זו. לדוגמה, ההוראה:
יוצרת עוגיה חדשה עם השם "temperature" והערך "20".קוד: בחירת הכל
document.cookie = "temperature=20"
דחוף !!! אם מישהו יודע איך אני שולח את זה "*/*" ב-cURL כדי להמשיך עם ה-cURL מהדף הקודם באותו אתר.
.