session概述
這一部分我們要學習的是 session技術(shù).
通過上一節(jié)的學習,我們知道Cookie是通過將數(shù)據(jù)保存在客戶端來實現(xiàn)與服務(wù)端保持連接的,而Session是通過將數(shù)據(jù)保存在服務(wù)器端來實現(xiàn)保持連接的。我們通過一個例子來了解session的機制。
我們?nèi)ワ嬃系曩I飲料,下單以后服務(wù)員會給我們一個號碼牌,然后你走到一旁,服務(wù)員并不認識你是誰,如果你想拿到你的飲料,你必須提供你的號碼牌給服務(wù)員才可以,服務(wù)員通過號碼牌來查記錄,來確認你是顧客,確認你點了什么飲料,然后才會把你點的飲料給你。
了解了session原理,再回到Web技術(shù)中,我們有2種方法讓客戶端拿到“號碼牌”,一種是通過cookie,一種是通過把值嵌入網(wǎng)頁傳給客戶端。我們也有2種方法來讓客戶端把號碼牌傳給服務(wù)器來拿屬于自己的資料,一種是cookie,一種是標準的Query String/POST。
而我們常用的是cookie,因為現(xiàn)在的瀏覽器都支持cookie,默認也都開啟??蛻舳伺c服務(wù)端彼此都會將cookie發(fā)送給對方。來個過程說明一下:打開瀏覽器輸入 www.taobao.com 并回車,由于是第一次與這個網(wǎng)站建立連接,服務(wù)端還沒有設(shè)置過cookie(這里假設(shè)當前瀏覽器是第一次訪問這個網(wǎng)址,之前這個網(wǎng)址沒有向當前客戶端寫過cookie),所以沒有cookie發(fā)送到服務(wù)端,服務(wù)端在處理完數(shù)據(jù)返回的時候,會將一個name為sessionid,value為一連串N位字符的cookie發(fā)送給客戶端,后續(xù)客戶端再次訪問服務(wù)端的時候,也會帶上這個cookie來訪問服務(wù)端。于是,他們就這樣通過sessionid互相“認識”了。