原文地址:http://blog.csdn.net/chunqiuwei/article/details/23461995瀏覽器
1)第一次訪問服務器的時候,會在響應頭裏面看到Set-Cookie信息(只有在首次訪問服務器的時候纔會在響應頭中出現該信息)服務器
。
cookie
上面的圖JSESSIONID=ghco9xdnaco31gmafukxchph;Path=/acr
,session
瀏覽器會根據響應頭的set-cookie信息設置瀏覽器的cookie並保存之
.net
注意此cookie因爲沒有設置cookie有效日期,因此在關閉瀏覽器的狀況下會丟失掉這個cookie。
3d
2)當再次請求的時候(非首次請求),瀏覽器會在請求頭裏將cookie發送給服務器(每次請求都是這樣)code
(JSESSIONID=ghco9xdnaco31gmafukxchph)
blog
不難發現這個的jsessionid和上面的jsessionid是同樣的內存
3)爲何除了首次請求以外每次請求都會發送這個cookie呢(在這裏確切地說是發送這個jsessionid)?get
事實上當用戶訪問服務器的時候會爲每個用戶開啓一個session,瀏覽器是怎麼判斷這個session究竟是屬於哪一個用戶呢?jsessionid的做用就體現出來了:jsessionid就是用來判斷當前用戶對應於哪一個session。換句話說服務器識別session的方法是經過jsessionid來告訴服務器該客戶端的session在內存的什麼地方。
事實上jsessionid ==request.getSession().getId()
4)總結,jsessionid的工做流程能夠簡單用下面的圖表示: