會話cookie是一個沒有到期時間的cookie。
會話cookie的處理由瀏覽器和瀏覽器版本而異,但是當瀏覽器的最後一個實例被關閉(壽命=瀏覽器的運行時)通常是沒有過期日期的cookie將被刪除。
重要的是,對應於該cookie值的服務器端會話具有在服務器上定義的完全獨立的壽命。 HTTP是一種無連接協議,所以當你的瀏覽器不在事務中時,服務器端不知道你是否還在。這意味着服務器必須保持服務器端會話處於活動狀態,直到它被打開時間過長爲止,此時它將通常通過超時(因此生存期=服務器端超時)來刪除服務器端會話。
您可以在另一個瀏覽器中設置相同的cookie,併發送第一個瀏覽器發送的相同數據(通常是cookie),並且只要服務器超時未達到,服務器就會讓您訪問服務器端會話的方式相同。當人們對你的cookies做這件事時,它被稱爲會話劫持。
這裏的JavaScript代碼設置一個「會話」 cookie,它僅僅是一個cookie在沒有「過期」的價值還沒有確定。
document.cookie="COOKIENAME=cookievalue";
這裏的JavaScript,設置一個特定的到期時間的cookie,這意味着瀏覽器被指示,停止與該時間之後傳出的請求在發送:發送到服務器
document.cookie="COOKIENAME=cookievalue; expires=Fri, 31 Dec 9999 00:00:01 GMT";
的cookie數據不包括過期時間等元數據;服務器只能看到鍵=值對。 到期數據僅供瀏覽器閱讀。 設置與上述任何一種方法,一個cookie會導致瀏覽器該cookie這種方式發送給服務器:
Cookie: COOKIENAME=cookievalue
服務器最初設置cookie有或沒有截止日期,但不知道是否這已經改變了,它並不真正關心。設置爲下個月到期的Cookie與運行在下個月的瀏覽器上的計算機上的會話Cookie之間沒有功能差異。
當會話標識符存儲在cookie中時,它們在瀏覽器會話之間保持不變。 Cookie將隨初始請求一起發送並恢復會話,除非您提到的其他條件得到滿足。 – pharalia