服務器須要區別是哪一個客戶端。數據庫
HTTP是匿名、無狀態的請求/響應協議。瀏覽器
Web站點但願:安全
所以,產生了幾種用戶識別機制:服務器
User-Agent首部
將用戶所用瀏覽器的相關信息告知服務器。cookie
下圖是Chrome瀏覽器開發者工具,打開http://www.cnblogs.com的部分截圖工具
Referer
表示從哪一個頁面跳轉過來的,上面的例子是從個人博客跳轉過來的網站
User-Agent
表示客戶端瀏覽器的一些信息,上例中Mozilla/5.0
表示應用的名稱和版本,AppleWebKit...
表示使用的瀏覽器平臺相關信息url
使用IP地址識別用戶缺點太多代理
經過用戶名和密碼進行認證顯式地詢問用戶身份code
HTTP中用WWW-Authenticate首部
和Authorization首部
傳送用戶相關信息
有些Web站點爲每一個用戶生成特定版本的URL來追蹤用戶的身份。
cookie是當前識別用戶,實現持久會話的最好方式
二者的區別就是過時時間
cookie就像服務器給用戶貼的辨別身份的貼紙同樣
用戶訪問網站,Web站點讀取Cookie(服務器貼在用戶身上的全部貼紙)
瀏覽器記住服務器返回的Set-Cookie首部的cookie內容,將cookie存儲在瀏覽器的cookie數據庫中。下次訪問相同站點,瀏覽器在cookie請求首部將它傳過去。
cookie的基本思想:讓瀏覽器積累一組服務器特有的信息,每次訪問服務器都將這些信息提供給它。
cookie規範的正式名稱:HTTP狀態管理機制(HTTP state management mechanism)
對應HTTP是無狀態協議,由cookie來保持HTTP的狀態
Chrome瀏覽器查看cookie的兩種方式:
經過查看維基百科的cookie詞條的cookie,咱們能看出當前網站有兩種cookie,會話cookie和持久cookie
可用cookie在用戶與某個站點進行多項事務處理時對用戶進行追蹤。
維持用戶和服務器的會話狀態