וכדי להסביר למה זה קורה, צריך להבין איך עובדות עוגיות:
בכל פעם שהדפדפן מבקש מהשרת עמוד מסויים הוא שולח headers לאותו השרת. בין היתר, ב-headers קיימים כל העוגיות של אותו דומיין*.
בצורה דומה, כאשר אתה שותל עוגיה, השרת מחזיר את הערכים שלה יחד עם ה-header שחוזר מהשרת לקליינט.
כך שבעצם, העוגיה נשמרת אצל המשתמש בפועל רק אחרי שהדפדפן קיבל את העמוד ששותל את העוגיה מהשרת.
וזו היא הסיבה שאתה לא יכול לשתול עוגיה בצד שרת וכמה שורות לאחר מכן בקוד שלך לבדוק את קיומה שכן אתה בוקד את קיומה מול ה-header שנשלח אליך טרם שתילת העוגיה.
* זו היא גם הסיבה שאתרים גדולים שצריכים להגיש הרבה תמונות, או סתם רוצים לשפר את מהירות עליית התמונות, JS, CSS וכו' (תוכן סטאטי) עובדים עם "cookie-less domain". זהו דומיין ייעודי שכל התמונות והקבצים החיצוניים נטענים ממנו. בדומיין הזה אף פעם לא שומרים עוגיות (אין סיבה) ולכן גם הן לא נשלחות יחד עם בקשת ה-HTTP.
|