天天看點

Cookie和Session

前言:

  我們知道 http協定有個特點 無狀态,就是請求與請求之間是沒有關系的,這樣當你重新請求時,就沒有身份等資訊了,是以http協定需要一種技術讓請求與請求之間建立聯系,并且伺服器需要知道這個請求來自哪個哪個使用者,是以cookie出現了

Cookie技術:

  cookie是http封包的一個請求頭,web應用可以将使用者的一些标志資訊(使用者名等)存入到cookie中,使用者經過驗證後,每次http請求都會帶有cookie資訊了,伺服器就可以通過cookie資訊來驗證使用者身份了。

  cookie的本質是一份存儲在使用者本地的檔案,裡面包含了每次請求中需要傳遞的身份等資訊。

Session技術:

  因為cookie以明文形式存儲在本地,會存在安全隐患,Session技術應運而生。

  Session可以了解為伺服器開辟存儲空間,裡面儲存使用者的狀态,使用者資訊以Session的形式存儲在服務端,浏覽器在cookie中存入一個Session ID 用來查找存儲在服務端的Session資訊。

  具體工作過程是這樣的:伺服器在建立 Session 的同時,會為該 Session 生成唯一的 Session ID,當浏覽器再次發送請求的時候,會将這個 Session ID 帶上,伺服器接受到請 求之後就會依據 Session ID 找到相應的 Session,找到 Session 後,就可以在 Session 中 擷取或者添加内容了。而這些内容隻會儲存在伺服器中,發到用戶端的隻有 Session ID, 這樣相對安全,也節省了網絡流量,因為不需要在 Cookie 中存儲大量使用者資訊。

繼續閱讀