(一)cookie和session詳解
詳情參見理解cookie和session機制
(二)cookie使用例項
這裡我就以登入為例來進行講解。
使用場景:我們在登入**時,都有乙個功能「記住我/兩周內自動登入」等,這裡面所涉及到具體流程如下:
1.第一次登入時
(1)瀏覽器:輸入使用者名稱、密碼,同時勾選「記住我」
(2)伺服器:接收到登入請求後,首先驗證使用者名稱、密碼是否正確;
若不正確,返回到登入頁面。
若正確,再判斷「記住我」是否勾選(isrememberme==true);
若沒勾選,繼續跳轉到目標頁面
若勾選,則構建cookie:首先利用加密技術,對使用者名稱和密碼進行加密(md5(username, password, salt) + ":" + userid
),將加密好的字串寫入cookie,鍵為「token」,值為加密字串;然後將使用者名稱寫入cookie。
(3)瀏覽器:瀏覽器在接收到伺服器寫cookie的指令後,將伺服器返回的資訊寫入到cookie中,同時跳轉到目標頁面。
2.第二次及以後登入時
(1)瀏覽器:輸入目標**,會將cookie放在請求頭(header)中傳送到伺服器
(2)伺服器
讀取cookie:
若無「」username」或「token」,則需要重新登入;
若既有「」username」,又有「token」,則對字串根據「:」進行切割(split(「:」)),array[0] = 使用者名稱和密碼經過md5鹽值加密,array[1] = userid。根據「userid」去資料庫中查詢使用者名稱、密碼,然後進行md5鹽值加密,若得到的值和「array[0]」相等,則登陸成功,跳轉到目標頁面;若不等,則跳轉到登入頁面。
正則知識點補充
1.與正規表示式有關的字串物件的方法 string.replace pattern,string 替換在正規表示式查詢中找到的文字。string.search pattern 通過正規表示式查詢相應的字串,只是判斷有無匹配的字串。如果查詢成功,search 返回匹配串的位置,否則返回 1。strin...
property知識點補充
1 synthesize和 dynamic作用 1 property有兩個對應的詞,乙個是 synthesize,乙個是 dynamic。如果 synthesize和 dynamic都沒寫,那麼預設的就是 syntheszie var var 2 synthesize的語義是如果你沒有手動實現set...
DOM知識點補充
一 元素物件的屬性及自定義屬性的設定或獲取?物件.屬性 物件 屬性 物件.getattribute 屬性名 物件.setattribute 屬性名 屬性值 物件.removeattribute 屬性名 二 outerhtml 獲取當前元素物件及所有內容 innerhtml 設定或獲取當前元素物件內的...