session概述
這一部分我們要學習的是session技術.
透過上一節的學習,我們知道Cookie是透過將資料保存在客戶端來實現與服務端保持連接的,而Session是透過將資料保存在伺服器端來實現保持連線的。我們透過一個例子來了解session的機制。
我們去飲料店買飲料,下單以後服務員會給我們一個號碼牌,然後你走到一旁,服務員並不認識你是誰,如果你想拿到你的飲料,你必須提供你的號碼牌給服務生才可以,服務生透過號碼牌來查紀錄,來確認你是顧客,確認你點了什麼飲料,然後才會把你點的飲料給你。
了解了session原理,再回到Web技術中,我們有2種方法讓客戶端拿到“號碼牌”,一種是透過cookie,一種是透過把值嵌入網頁傳給客戶端。我們也有2種方法讓客戶端把號碼牌傳給伺服器來拿屬於自己的資料,一種是cookie,一種是標準的Query String/POST。
而我們常用的是cookie,因為現在的瀏覽器都支援cookie,預設也會開啟。客戶端與服務端彼此都會將cookie傳送給對方。來個過程說明一下:打開瀏覽器輸入www.taobao.com 並回車,由於是第一次與這個網站建立連接,服務端還沒有設置過cookie(這裡假設當前瀏覽器是第一次存取這個網址,之前這個網址沒有向目前客戶端寫過cookie),所以沒有cookie傳送到服務端,服務端在處理完資料回傳的時候,會將一個name為sessionid,value為一連串N位字元的cookie會傳送給客戶端,後續客戶端再次造訪服務端的時候,也會帶著這個cookie來存取服務端。於是,他們就這樣透過sessionid互相「認識」了。