四種會話跟蹤技術的對比

會話跟蹤是一種靈活的機制,雖然HTTP是一種無狀態協議,但會話跟蹤技術使Web上的狀態編程成爲可能,目前廣泛存在四種會話跟蹤技術:URL重寫、隱藏表單域、Cookie、Session。編程

1 隱藏表單域

<input type="hidden" id="xxx" value="xxx">
  • 特色
    • (參數存放)參數是存放在請求實體裏的,所以沒有長度限制,可是不支持 GET 請求方法,由於 GET 沒有請求實體
    • (Cookie禁用)當Cookie被禁用時依舊可以工做
    • (持久性)不存在持久性,一旦瀏覽器關閉就結束

2 URL 重寫

能夠在 URL 後面附加參數,和服務器的請求一塊兒發送,這些參數爲鍵/值對瀏覽器

  • 特色
    • (參數存放)參數是存放在 url 裏的,有1024長度限制
    • (Cookie禁用)當Cookie被禁用時依舊可以工做
    • (持久性)不存在持久性,一旦瀏覽器關閉就結束

Cookie 是瀏覽器保存的一個小文件,其包含多個鍵值對服務器

服務器首先使用 Set-Cookie 響應頭傳輸多個參數給瀏覽器,瀏覽器將其保存爲 Cookie,後續對同一服務器的請求都使用
Cookie 請求頭將這些參數傳輸給服務器cookie

  • 特色
    • (參數存放)參數是存放在請求頭部裏的,也存在長度限制,但這個限制是服務器配置的限制,能夠更改
    • (Cookie禁用)可能會禁用Cookie
    • (持久性)瀏覽器能夠保存Cookie一段時間,在此期間Cookie持續有效

4 Session

基於前三種會話跟蹤技術之一(通常是基於Cookie技術基礎,若是瀏覽器禁用Cookie則能夠採用URL重寫技術),在每一次請求中只傳輸惟一一個參數:JSESSIONID,即會話id,服務器根據此會話id開闢一塊會話內存空間,以存放其餘參數網絡

  • 特色
    • 會話數據所有存放在服務端,減輕了客戶端及網絡壓力,但加重了服務端壓力
    • 既然是基於前三種會話技術之一(Cookie、url重寫、隱藏表單域),所以也具有其對應的幾個特色
相關文章
相關標籤/搜索