JS學習之Cookie和Session

1.Cookie數據庫

  • HTTP1.0中協議是無狀態的,但在WEB應用中,在多個請求之間共享會話是很是必要的,因此出現了Cookiecookie是爲了辯別用戶身份,進行會話跟蹤而存儲在客戶端上的數據;
    clipboard.png
  • 屬性
    clipboard.png

2.Session瀏覽器

  • session是另外一種記錄客戶狀態的機制,不一樣的是Cookie保存在客戶端瀏覽器中,而session保存在服務器上,客戶端瀏覽器訪問服務器的時候,服務器把客戶端信息以某種形式記錄在服務器上,這就是session。客戶端瀏覽器再次訪問時只須要從該Session中查找該客戶的狀態就能夠了;
  • 實現過程服務器

    • 在服務器端生成全局惟一標識符session_id
    • 在服務器內存裏開闢此session_id對應的數據存儲空間;
    • session_id做爲全局惟一標示符經過cookie發送給客戶端;
    • 之後客戶端再次訪問服務器時會把session_id經過請求頭中的cookie發送給服務器;
    • 服務器再經過session_id把此標識符在服務器端的數據取出
    • 若是客戶端的瀏覽器禁用了 Cookie 怎麼辦?通常這種狀況下,會使用一種叫作URL重寫的技術來進行會話跟蹤,即每次HTTP交互,URL後面都會被附加上
  • 屬性
    clipboard.png

3.Cookie和Session的區別cookie

  • cookie數據存放在客戶的瀏覽器上,session數據放在服務器上(通常之內存、數據庫、文件形式)。
  • session會在必定時間內保存在服務器上。當訪問增多,會比較佔用你服務器的性能 考慮到減輕服務器性能方面,應當使用Cookie;
  • 單個cookie保存的數據不能超過4K,Session沒有大小限制;
  • 總結:Session是在服務端保存的一個數據結構,用來跟蹤用戶的狀態,這個數據能夠保存在內存,集羣、數據庫、文件中;Cookie是客戶端保存用戶信息的一種機制,用來記錄用戶的一些信息,也是實現Session的一種方式。
相關文章
相關標籤/搜索