עוגייה (אינטרנט)
מתוך ויקיפדיה, האנציקלופדיה החופשית
עוגייה (בעברית תקנית: קוקית; בסלנג: קוקי, באנגלית Cookie) היא פיסת מידע הנשלחת מהשרת לדפדפן, ומוחזרת ללא שינוי עם כל גישה לשרת. העוגיות משמשות לאימות, למעקב ולאגירת מידע על אודות המשתמש, כגון שמירת העדפות המשתמש. השם "עוגייה" הוא תרגום של המילה האנגלית המקבילה, cookie. המילה "קוקית", שנקבעה על ידי האקדמיה ללשון העברית, שומרת על הצליל של המקור האנגלי, וכן רומזת לציפור קוקייה, שמטילה את ביציה בקני זרים.
מאז שהחל השימוש בעוגיות למטרת מעקב אחר התנהגות הדפדפן, הפכו העוגיות למקור לדאגה בהקשר לפרטיות באינטרנט. כתוצאה מכך חוקקו מספר מדינות, בהן ארצות הברית ומדינות באיחוד האירופי, חוקים להגבלת השימוש בעוגיות. בנוסף, יש שביקרו את השימוש בעוגיות משום שאופן הזיהוי והאימות אינו תמיד מדויק ומשום שניתן להשתמש בהם, באופן פוטנציאלי, לתקיפת רשתות תקשורת. קיימות חלופות לעוגיות, אך גם להן חסרונות.
תפיסות מוטעות רבות סובבות את מושג העוגיות, מרביתן מבוססות על האבחנה השגויה כי עוגיות הן סוג של תוכנית מחשב. למעשה, עוגיה היא פיסת מידע פשוטה שאינה מסוגלת לבצע אף פעולה בכוחות עצמה. בפרט, הן אינן רוגלות או וירוסים, על אף זיהויין ככאלו על ידי תוכנות שונות לגילוי רוגלות.
מרבית הדפדפנים המודרניים מאפשרים למשתמש להחליט האם להשתמש בעוגיות, אך אי שימוש בהן עשוי לגרום לאתרי אינטרנט מסוימים להיות בלתי נגישים. לדוגמה, עגלת קניות באתר קניות שמבוססת על עוגיות, לא תוכל לשמור את הפריטים שבחר המשתמש אם העוגיות נדחו על ידו.
תוכן עניינים |
[עריכה] תכלית
העוגיות משמשות את שרתי דפי האינטרנט, הן מאפשרות להבדיל בין המשתמשים באתר האינטרנט, ולאגירת מידע רלוונטי המתייחס למשתמש במהלך ביקורו באתר, ולעתים גם בביקורים עתידיים. העוגיות הונהגו לראשונה כדי לאפשר את השימוש ב"עגלת קניות" (או "סל קניות"), התקן וירטואלי אשר לתוכו יכול המשתמש "לאסוף" פריטים שברצונו לרכוש באתר הקניות. התקן זה מאפשר למשתמש לנווט באתר האינטרנט בצורה חופשית כשבאפשרותו להוסיף ולהסיר פריטים מעגלת הקניות בכל עת.
שימוש נוסף בעוגיות הוא האפשרות להתחבר לחשבון המשתמש באתר. העוגיות מאפשרות לשרת לברר האם המשתמש נרשם בעבר וכך לאפשר לו להירשם בצורה אוטומטית ולאפשר לו גישה לשירותים או פעולות שניתנות רק למשתמשים רשומים. דוגמה נפוצה לכך היא שירות דואר אלקטרוני כגון הוטמייל: לאחר שהמשתמש הזדהה בטופס הכניסה לשירות, נשמרים שם המשתמש שלו וסיסמתו בעוגייה. מרגע זה, גם אם יעבור לאתר אחר ויחזור לשירות הדואר האלקטורני במועד מאוחר יותר, לא יצטרך להירשם מחדש, שכן באמצעות העוגייה שנוצרה בטופס הכניסה לשירות יזהה השרת את המשתמש באופן מיידי.
מספר אתרי אינטרנט משתמשים בעוגיות למטרת התאמה אישית של תצוגת האתר על פי העדפות המשתמש. אתרים הדורשים אימות מרבים להשתמש בתכונה זו, אולם היא קיימת גם באתרים שאין בהם חיוב להזדהות. לדוגמה, אתר האינטרנט ויקיפדיה מאפשר למשתמשים שנרשמו לבחור את ממשק המשתמש (skin) האהוב עליהם. מנוע החיפוש גוגל מאפשר (גם למשתמשים לא רשומים) לבחור כמה תוצאות יוצגו בכל דף.
עוגיות משמשות גם למעקב אחר המשתמש באתר אינטרנט מסוים באמצעות התנהגות הדפדפן. עוגיות צד ג' ו-web bugs, מאפשרות להתחקות אחר המשתמש גם כאשר הוא עובר בין אתרי אינטרנט שונים. מעקב בתוך אתר יחיד נעשה בדרך כלל לבדיקת סטטיסטיקת השימוש בדפי האתר. מצד שני, מעקב בין אתרים שונים נעשה בדרך כלל על ידי חברות פרסום לפיתוח פרופילים של משתמשים אנונימיים המשתמשים לפרסום (בחירת הפרסומות שיוצגו) על פי פרופיל המשתמש.
השימוש בעוגיות יעיל כאשר המשתמש נוהג לגשת לאתר מסוים רק ממחשב אחד. במצב כזה, במקום להזין מחדש את פרטי ההזדהות, פרטי כרטיס האשראי וכו' עליו לעשות זאת פעם אחת בלבד, ומאותו הרגע יודע הדפדפן לשלוח את המידע הזה לשרת באופן אוטומטי.
[עריכה] אופן המימוש
מבחינה טכנית, עוגיות הן פיסות מידע בלתי מבוקרות שנוצרות על ידי שרת דפי אינטרנט ואשר נשלחות על ידי הדפדפן. הדפדפן מחזיר אותן מבלי לבצע בהן שינויים על מנת שייצגו אירועים קודמים. כאשר העוגיות אינן מופעלות, כל אחזור של דף אינטרנט או רכיב של דף אינטרנט הוא אירוע בדיד שאינו קשור לשאר התכונות של הדף באותו אתר. על ידי החזרת עוגייה לשרת מספק הדפדפן אמצעי תקשורת בין הדף הנוכחי לדפים קודמים שנצפו. מלבד השרת, מאפשרים גם סקריפטים בצד הלקוח ליצור עוגיות, אם הללו נתמכות וניתנות להפעלה על ידי הדפדפן.
מפרט העוגיות קובע [1][2] כי על הדפדפנים לתמוך במספר מינימלי של עוגיות או להקצות שטח זיכרון מינימלי לאגירתן. בפרט, דפדפן צריך לאפשר לאגור לפחות 300 עוגיות בגודל 4 קילובייט כל אחת, ולפחות 20 עוגיות לכל שרת או מתחם.
מספר העוגיות המקסימלי משתנה בין דפדפנים:
- מוזילה פיירפוקס 1.5 ו-2.0: 50
- אופרה 9: 30
- אינטרנט אקספלורר 6 ו-7: 20 (שניהם הועלו ל-50 בעדכון שנעשה ב-14 באוגוסט 2007)
בפועל, על עוגיות להיות קטנות מ-4 קילובייט. אינטרנט אקספלורר כופה גודל זה על כל העוגיות שנשמרות במתחם נתון. שמות העוגיות רגישות לרישיות (כך, WIKI ו-wiki הן עוגיות שונות)
בעת יצירת עוגייה חדשה ניתן להגדיר תאריך תפוגה בו תימחק העוגייה. אם לא נקבע תאריך תפוגה, העוגייה תימחק לאחר שהמשתמש סגר את הדפדפן. ציון תאריך מאפשר את קיומה של העוגייה על פני שיחות שונות גם אם הדפדפן נסגר ביניהן. עוגיות אלו נקראות בשם "עוגיות קבועות" (באנגלית: Persistent Cookies), להבדיל מ"עוגיות זמניות".
עוגיות נמחקות בשתי דרכים – המשתמש יכול למחוק ידנית את הקובץ שבו נשמר המידע, או ש"פג תוקפה" של עוגייה והיא נמחקת מאליה. מרבית הדפדפנים מאפשרים למחוק את כל העוגיות באופן מרוכז. לאחר שנמחקת עוגייה המכילה מידע מסוים יש להזין מחדש את הפרטים, ואלה נשמרים בעוגייה חדשה המחליפה את הקודמת.
[עריכה] תפיסות מוטעות
מאז שהוצגו לראשונה באינטרנט, הופצו באמצעות האינטרנט והתקשורת מספר תפיסות מוטעות בכל הנוגע לעוגיות. למעשה, עוגיות כוללות בתוכן רק נתונים, ולא קוד תוכנית, והן לא יכולות להסיר או לקרוא מידע שנמצא במחשב המשתמש. עם זאת, עוגיות יכולות לשמש למעקב אחרי דפי האינטרנט שבהם ביקר המשתמש באתר נתון. ניתן לאסוף מידע זה ולבנות באמצעותו פרופיל של המשתמש. פרופילים אלו בדרך כלל אינם כוללים מידע אישי של המשתמש (שם, מען וכדומה). ליתר דיוק, העוגיות אינן יכולות להכיל מידע אישי אלא אם המשתמש אפשר לאתרים מסוימים לצפות במידע זה. פרופילים אלו, על אף היותם אנונימיים, היו מקור לדאגות מבחינת פרטיות המשתמש.
[עריכה] הגדרות הדפדפן
מרבית הדפדפנים המודרניים תומכים בשימוש בעוגיות. יחד עם זאת, המשתמש יכול בדרך כלל לבחור האם לאפשר לדפדפן להשתמש בהם או לאסור את השימוש בהם כליל. להלן אפשרויות נפוצות:
- חסום את השימוש בעוגיות.
- הדפדפן יבקש מהמשתמש האם לאפשר את השימוש בעוגייה, עבור כל עוגייה שהשרת מבקש ליצור.
- התר את השימוש בעוגיות באתרים שנמצאים ברשימה לבנה.
- התר את השימוש בעוגיות מלבד באתרים שנמצאים ברשימה שחורה.
- התר את השימוש בעוגיות.
קיימות אפשרויות נוספות , כגון חסימת עוגיות צד ג' והתרת השימוש בעוגיות כעוגיות זמניות (כלומר, העוגיות יימחקו בכל מקרה עם סגירת הדפדפן).
ישנם דפדפנים המאפשרים למשתמש לסרוק את העוגיות ולמחוק עוגיות ספציפיות. מרבית הדפדפנים התומכים ב-JavaScript מאפשרים למשתמש לבדוק את העוגיות הפעילות באתר שבו הם נמצאים על ידי הקלדת
javascript:alert("Cookies: " + document.cookie)
לתוך שורת הכתובת של הדפדפן. דפדפנים אחרים כוללים תוכנת "מנהל עוגיות" המאפשר לנהל את העוגיות בצורה מסודרת ונוחה.
שרת אינטרנט הפועל במסגרת פרוטוקול P3P מחויב להצהיר על מדיניות הפרטיות שלו המפרטת איזה סוג מידע הוא אוסף ולאיזו מטרה. מדיניות זו כוללת גם גילוי נאות על המידע שנאסף באמצעות עוגיות.
[עריכה] פרטיות ועוגיות צד ג'
לעוגיות משמעות רבה בהקשר לנושא הפרטיות והאלמוניות באינטרנט. העוגיות נשלחות אך ורק לשרת שיצר אותן או אל שרת אחר תחת אותו מתחם. אולם, דף האינטרנט עשוי לכלול תמונות או רכיבים אחרים שמקורם בשרת של מתחם אחר. עוגיות שנוצרות במהלך האחזור של רכיבים אלו קרויות בשם עוגיות צד ג' (או עוגיות צד שלישי).
חברות פרסום משתמשות בעוגיות צד ג' כדי לעקוב אחר המשתמש בעודו עובר בין האתרים השונים. חברת פרסום עשויה, למשל, לעקוב אחר משתמש שעבר דרך דפי אינטרנט שכוללים תמונות פרסומיות. בעזרת ידע זה עשויה חברת הפרסום לדעת מהן העדפות המשתמש וכך להציג בפניו את הפרסומות שמתאימות לו.
בניית פרופילים של משתמשים נחשבת על ידי רבים כאיום פוטנציאלי על הפרטיות. מסיבה זו הגבילו חלק מהמדינות באמצעות חקיקה את המידע שניתן להשיג באמצעות עוגיות ואת אופן השימוש בעוגיות. ארצות הברית, למשל, קבעה חוקים נוקשים בכל הנוגע ליצירת עוגיות חדשות. חוקים אלו, אשר נקבעו בשנת 2000, נקבעו לאחר שנחשף כי המשרד ליישום המדיניות של הממשל האמריקאי נגד השימוש בסמים (ONDCP) בבית הלבן השתמש בעוגיות כדי לעקוב אחרי משתמשים שצפו בפרסומות נגד השימוש בסמים במטרה לבדוק האם משתמשים אלו נכנסו לאתרים התומכים בשימוש בסמים. פעיל למען הפרטיות בשם דניאל בראנט חשף כי ה-CIA שלח עוגיות קבועות למחשבי אזרחים במשך עשר שנים. ב-25 בדצמבר 2005 גילה בראנט כי סוכנות הביטחון הלאומי (ה-NSA) השאירה שתי עוגיות קבועות במחשבי מבקרים בגלל שדרוג תוכנה. לאחר שהנושא פורסם, הם ביטלו מיד את השימוש בהן.
במסגרת מסמך שפרסם האיחוד האירופי בשנת 2002 נקבעו סדרה של הגבלות בנוגע לפרטיות בתחום הטלקומוניקציה. סעיף 5 בפסקה 3 מכתיב כי שמירת מידע (כגון עוגיות) במחשבו של משתמש ייעשה רק אם המשתמש הגדיר כיצד יש להשתמש במידע שנאסף, ולמשתמש ניתנה האפשרות להתנגד לאחסון המידע. עם זאת, הסעיף מציין כי אחסון מידע אשר נחשב להכרחי מסיבות טכניות, פטור מכלל זה[3]. ההנחיה הייתה אמורה להיכנס לתוקף באוקטובר 2003, אך דיווח מדצמבר 2004 מציין כי הנחיה זו אינה מיושמת בפועל, וכי מספר מדינות (סלובקיה, לטביה, יוון, בלגיה ולוקסמבורג) גם לא יישמו אותה בחוק הלאומי[4].
[עריכה] החסרונות בשימוש בעוגיות
מלבד נושא הפרטיות, לעוגיות ישנם גם חסרונות טכניים.
- מנגנון הזדהות לא מדויק
- לכל דפדפן יש אזור אחסון משלו, ולכן אם במחשב נתון יש יותר מדפדפן אחד, ייתכנו מספר עוגיות זהות - אחת עבור כל דפדפן. בנוסף, העוגיות אינן מסוגלות להבדיל בין משתמשים שונים המשתמשים באותו מחשב ודפדפן, ובאותו חשבון משתמש.
- גניבת עוגיות
- העוגיות נשלחות פעמים רבות במהלך אורך חייהן אל השרת וחזרה אל דפדפן המשתמש. הגישה אל עוגיות אלו אמורה להיות מוגבלת שכן עוגיות עשויות לכלול מידע אישי ורגיש, כגון שם משתמש וסימן המשמש לאימות. גניבת עוגיות מתרחשת כאשר צד לא מורשה מקבל לידיו עוגייה.
- דרך אחת לגנוב עוגייה היא באמצעות רחרחן חבילות מידע. ניתן לקרוא את התעבורה ברשת באמצעות מחשבים אחרים שנמצאים באותה רשת מחשבים, גם אם הם אינם מעורבים ישירות בשליחת וקבלת המידע. בתעבורה זו כלולות גם עוגיות שנשלחות לפרוטוקול HTTP. משתמשים במחשבים אלו יכולים לקרוא את המידע העובר ברשת, כולל את העוגיות, באמצעות תוכנות הקרויות רחרחני חבילות מידע. ניתן להתגבר על הבעיה על ידי שימוש ב-URI ובפרוטוקול אבטחת שיגור היפרטקסט (https) שקוראות לפרוטוקול TLS על מנת שיצפין את קו התקשורת. בעת יצירת עוגייה יכול השרת לציין דגלון אבטחה והדפדפן ישלח את העוגייה באמצעות ערוץ מאובטח, כגון פרוטוקול SSL.
- דרך נוספת לגנוב עוגיות היא באמצעות שימוש בפרצת XSS הגורמת לדפדפן לשלוח עוגיות לשרתים שאינם אמורים לקבלם. דפדפנים מודרניים מאפשרים לבצע קטעי קוד שאוחזרו מהשרת. אם ניתן לגשת אל העוגייה בזמן הרצת הקוד, תוכן העוגייה עלול להישלח אל שרתים שלא אמורים לקבלם. הצפנת העוגיות לפני שליחתם ברשת אינה עוזרת במקרה זה.
- התוקפים משתמשים בשיטה זו בעיקר במחשבים המאפשרים שליחת תוכן HTML. התוקפים משלבים מידע בתוכן ה-HTML וכך הם יכולים לקבל עוגיות של משתמשים אחרים. ניתן להשתמש בעוגיות אלו על ידי התחברות לשרת שאמור היה לקבלם מלכתחילה, ולהזדהות בכינוי של המשתמש ממנו נגנבה העוגייה. ניתן למנוע התקפות כאלו באמצעות דגלון HttpOnly - אפשרות הקיימת במערכות מיקרוסופט וחוסמת עוגיות מפני גישה של קוד בצד לקוח, אם תצוגת העמוד מסתמכת על גישה לעוגיה בסקריפט צד לקוח, התצוגה תיפגע.
- הרעלת עוגיות
- עוגייה אינה אמורה לעבור שינויים נוספים, מעבר לאלו שנעשו בעת היווצרותה, בעת המעבר בין הדפדפן לשרת. עם זאת, תוקף יכול לשנות את תוכן העוגייה לפני שהיא נשלחת חזרה לשרת. לדוגמה, אם נתונה עוגייה שבה כלול סך הסכום לתשלום עבור הפריטים שהמשתמש מחזיק בעגלת הקניות, שינוי ערך זה יכול לגרום לכך שהמשתמש ישלם פחות מהנדרש. תהליך מסוג זה קרוי בשם "הרעלת עוגיות" (בלועזית: Cookie Poisoning).
- יחד עם זאת, מרבית האתרים שומרים בעוגייה עצמה רק את מזהה השיחה - מספר אקראי שמאפשר לזהות את השיחה של המשתמש בעוד שאר המידע שמור בשרת עצמו. כך ניתן לסלק את הסכנה מהרעלת עוגיות כמעט לחלוטין.
- נגישות
- לכל אתר גישה לעוגיות שלו בלבד כך שאתר אחד אינו יכול לערוך עוגיות השייכות לאתר אחר. עם זאת, תוקף יכול לנצל פירצה הקיימת בדפדפנים מסוימים כדי להפר מגבלה זו. הרעיון דומה להרעלת עוגיות, אך התוקף מנצל משתמשים תמימים עם דפדפנים פגיעים, במקום פגיעה באתר עצמו. מטרתו של התוקף היא לעתים יצירת קבעון שיחה (בלועזית: Session Fixation).
- חוסר עקביות אצל השרת והלקוח
- השימוש בעוגיות עלול לגרום לחוסר עקביות בין מצב הלקוח ובין המצב ששמור בעוגייה (כלומר, אצל השרת). אם משתמש מקבל עוגייה ולאחר מכן לוחץ על כפתור "אחורה" של הדפדפן, המצב של הדפדפן יהיה שונה לרוב ממצבו קודם יצירת העוגייה. לדוגמה, אם עגלת קניות באתר קניות מקוון ממומשת באמצעות עוגיות, תוכן עגלת הקניות עשוי לא להשתנות כאשר המשתמש עובר לדף אחר בהיסטוריית הדפדפן: אם משתמש מוסיף פריט לעגלת הקניות ולאחר מכן לוחץ על כפתור "אחורה" של הדפדפן, הפריט אינו מוסר מעגלת הקניות. ייתכן שזוהי לא כוונתו של משתמש שביקש לבטל את פעולת ההוספה. התנהגות זו עלולה להוביל לחוסר מהימנות, בלבול ובאגים.
[עריכה] חלופות לשימוש בעוגיות
חלק מהפעולות הממומשות באמצעות עוגיות ניתן לממש בדרכים נוספות. יחד עם זאת, גם לחלופות יש חסרונות ועל כן בדרך כלל אתרים מעדיפים להשתמש בעוגיות. מרבית החלופות מאפשרות מעקב אחר המשתמש, גם אם הן אינן אמינות כמו עוגיות. מסיבה זו, נושא הפרטיות אינו נפתר לחלוטין גם אם הדפדפן הוגדר על ידי המשתמש לחסום את השימוש בעוגיות.
[עריכה] כתובת IP
שיטה לא מהמינה למעקב אחרי משתמשים מתבססת על שמירת כתובות ה-IP של מחשבים המבקשים דפים. שיטה זו הייתה אפשרית מאז יצירתו של ה-World Wide Web הואיל והורדת דפים מצריכה מהשרת המחזיק דפים אלו לדעת את כתובת ה-IP או הפרוקסי של המחשב שמריץ את הדפדפן. מסיבה זו, כתובת ה-IP נגישה גם אם השימוש בעוגיות חסומה.
אף על פי כן, כתובות IP אמינות פחות בזיהוי משתמשים לעומת עוגיות מפני שמספר משתמשים יכולים לשתף מחשב אחד או שרת פרוקסי אחד. יתרה מזאת, ניתן להקצות יותר מכתובת IP אחת לכל מחשב בעבודה על שיחות שונות. ניתן לשפר את מהמינות השיטה בעזרת מאפיין נוסף של פרוטוקול HTTP: כאשר דפדפן מבקש דף בעקבות משתמש שלחץ על היפר קישור, הבקשה נשלחת יחד עם כתובת ה-URL של הדף שבו נמצא הקישור. אם השרת שומר כתובות URL אלו, ניתן לעקוב אחר הדפים שנצפו על ידי המשתמש בצורה מדויקת יותר. מעקב מסוג הזה נחשב אמין פחות מהמעקב שמספקות עוגיות מפני שמספר משתמשים יכולים לגשת לאותו דף אינטרנט בעזרת אותו מחשב, נתב NAT או פרוקסי, ולאחר מכן לגשת לדפים שונים. יתר על כן, שיטה זו מאפשר מעקב בלבד, והיא אינה יכולה לשמש תחליף לשאר השימושים של עוגיות.
במערכות מסוימות השמות דגש על האנונימיות, לא ניתן לעקוב אחרי משתמשים באמצעות כתובות IP כלל. דוגמה למערכת כזו היא רשת TOR. במערכות אלו יכול השרת להשתמש במספר כתובות IP במהלך שיחה אחת, כמו גם לאפשר למספר משתמשים להשתמש באותה כתובת IP.
מספר ספקי אינטרנט עיקריים, בהם AOL, מנתבים את כל תנועת האינטרנט דרך מספר קטן של שרתי פרוקסי. מכיוון שכך, שיטה זו אינה מעשית.
[עריכה] URL (שאילתה)
שיטה מדויקת זו מבוססת על שיבוץ מידע לתוך כתובת ה-URL. כתובת ה-URL יכולה לכלול מחרוזת שאילתה (Query String) המתורגמת בצד השרת לנתונים.
[עריכה] שדות חבויים
על ידי שימוש בשדות חבויים של טפסים ניתן לשלוח למשתמש נתונים שאינם מוצגים על המסך אולם נשלחים חזרה כחלק מהודעת POST הנשלחת מהמשתמש. לדוגמה:
<FORM METHOD=post ACTION="/hello.php"> <INPUT TYPE=hidden NAME=sessionID VALUE="328932ABC232E"> </div>
יגרום למשלוח הערך 328932ABC232E בתור הערך sessionID כאשר המשתמש יאשר את הטופס.
[עריכה] יישום
[עריכה] הגדרת עוגייה חדשה
בקשות דפי אינטרנט נעשות דרך פרוטוקול HTTP, בעזרת הדפדפן. תחילה, מבלי להתייחס לעוגיות, הדפדפן מבקש דף מהשרת על ידי שליחת טקסט קצר המכונה "HTTP request". לדוגמה, כדי לגשת לדף http://www.w3.org/index.html, הדפדפן שולח לשרת www.w3.org בקשה:
|
GET /index.html HTTP/1.1 |
||
| דפדפן |
|
שרת |
השרת משיב ושולח חבילת מידע המכונה "HTTP header". חבילת מידע זה כוללת שורות טקסט המבקשות מהדפדפן ליצור עוגיות (השורות בירוק):
|
HTTP/1.1 200 OK |
||
| דפדפן |
|
שרת |
שורת ה-Set-Cookie נשלחת רק אם השרת מעוניין ליצור עוגייה. בשורה זו מבקש השרת מהדפדפן לשמור את המחרוזת name=value. אם הדפדפן מתיר את השימוש בעוגיות, העוגייה תישלח אוטומטית בכל פעם מחדש כאשר הדפדפן מבקש משרת זה דף חדש. לדוגמה, אם הבקשה הבאה תהיה הדף http://www.w3.org/spec.html, אזי הבקשה הבאה תישלח לשרת www.w3.org:
|
GET /spec.html HTTP/1.1 |
||
| דפדפן |
|
שרת |
גם כאן מדובר בבקשת דף אינטרנט מהשרת. ההבדלים בין בקשה זו לבקשה הקודמת נובעים מהעוגייה שנוצרה בין הבקשות. באופן כזה יודע השרת שבקשה זאת קשורה לבקשה הקודמת. תגובת השרת תהיה שליחת הדף המבוקש, ואולי גם בקשה ליצירת עוגיות נוספות. שרת יכול לשנות ערך של עוגייה על ידי שליחת שורה חדשה (Set-Cookie: name=newvalue) בתגובה לבקשת דף מהדפדפן. הדפדפן יחליף את הערך הישן בערך החדש. שרות ה-Set-Cookie אינה נוצרת על ידי שרת ה-HTTP, אלא על ידי תוכנית CGI. שרת ה-HTTP יכול רק לשלוח את פלט התוכנית לדפדפן. ניתן להגדיר עוגיות גם באמצעות JavaScript ושפות דומות אחרות הרצות בדפדפן. ב-JavaScript משמשת האובייקט document.cookie למטרה זו. לדוגמה, ההוראה:
document.cookie = "temperature=20"
יוצרת עוגיה חדשה עם השם "temperature" והערך "2".
[עריכה] מאפייני העוגייה
מלבד השם והערך יכולה העוגייה לכלול גם תאריך תפוגה, נתיב, שם מתחם ומידע לגבי חיבורים מקודדים. על פי RFC 2965 יש לכלול גם את מספר הגרסה. שדות אלו מופיעים לאחר השם והערך, והם מופרדים בנקודה ופסיק. לדוגמה, ניתן ליצור עוגייה באמצעות השורה הבאה: Set-Cookie: name=value; expires=date; path=/; domain=.example.org
שם המתחם והנתיב מבקשים מהדפדפן לשלוח את העוגייה חזרה לשרת כאשר ישנה בקשה של דפים מתוך שם המתחם והנתיב שצוינו. אם לא צוינו מאפיינים אלו, ברירת המחדל שניתנת להם הוא שם המתחם והנתיב שממנו נתבקש הדף. כתוצאה מכך, מחרוזות שם המתחם והנתיב עלולות לבקש מהדפדפן לשלוח עוגייה כאשר אין בכך צורך. למטרות אבטחה, העוגייה מתקבלת רק אם השרת מופיע במחרוזת שם המתחם.
את העוגיות מזהים על פי מאפיין השם, שם המתחם והנתיב - כולם יחד, ולא על פי מאפיין השם בלבד. ניתן אם כן ליצור מספר שמות על פני מספר שמות מתחם או על פני מספר נתיבים. באופן דומה, ניתן לשנות את ערך העוגייה רק אם שם המתחם והנתיב דומים.
תאריך התפוגה מבקש מהדפדפן למחוק את העוגייה כאשר תוקף העוגייה פג. אם לא הוגדר תאריך תפוגה, העוגייה תימחק כאשר המשתמש סוגר את הדפדפן. תאריך התפוגה מוגדר בפורמט הבא: Wdy, DD-Mon-YYYY HH:MM:SS GMT. לדוגמה, להלן עוגייה שהוגדרה על ידי שרת HTTP: Set-Cookie: RMID=732423sdfs721242; expires=Fri, 31-Dec-2010 23:59:59 GMT; path=/; domain=.example.net
שם העוגייה הוא RMID וערכה 732423sdfs721242. השרת יכול להשתמש במחרוזת שרירותית בערך העוגייה. השרת יכול לשמור מספר פרמטרים במחרוזת יחידה, כמו למשל a=12&b=abcd&c=32. הנתיב ושם המתחם, / ו-.example.net בהתאמה, מבקשים מהדפדפן לשלוח עוגייה זו כאשר מבקשים דף שנמצא תחת שם המתחם שצוין.
[עריכה] אימות
פרק זה לוקה בחסר. אתם מוזמנים לתרום לוויקיפדיה ולהשלים אותו. ראו פירוט בדף השיחה.
[עריכה] ראו גם
[עריכה] קישורים חיצוניים
[עריכה] הערות שוליים
- ^ http://web.archive.org/web/20070805052634/http://wp.netscape.com/newsref/std/cookie_spec.html Persistent Client State HTTP Cookies
- ^ Network Working Group RFC 2965
- ^ http://eur-lex.europa.eu/smartapi/cgi/sga_doc?smartapi!celexapi!prod!CELEXnumdoc&lg=en&numdoc=32002L0058&model=guichett
- ^ http://ec.europa.eu/information_society/policy/ecomm/doc/implementation_enforcement/annualreports/10threport/sec20041535vol1en.pdf עמ' 38
