Web技術基礎
HTTP是無狀態的協定。關於這一點以及網站維持登入狀態的一般方法,下列說明何者正確?
- A伺服器記得同一條TCP連線上送來的所有請求,因此只要瀏覽器不切斷連線,登入狀態就會一直持續
- BHTTP本身具有記錄已登入使用者的機制,因此Web應用程式端不必做任何維持狀態的處理
- CHTTP本身不記得請求之間的關係,因此以Cookie傳遞伺服器發出的工作階段ID,由瀏覽器每次送回
查看答案與解析
正確答案:C. HTTP本身不記得請求之間的關係,因此以Cookie傳遞伺服器發出的工作階段ID,由瀏覽器每次送回
無狀態是指每個請求都被獨立處理,作為協定並不記得先前請求的內容。伺服器不必保有狀態,任何一台伺服器都能處理請求,具有容易增加伺服器台數的優點。想維持登入這類狀態時,伺服器以Set-Cookie標頭交付工作階段ID,瀏覽器在送往同一網站的請求中,以Cookie標頭自動附上。伺服器以收到的ID為線索,找出保存在自己這一端的使用者資訊(工作階段)。
- A. 重複使用TCP連線與記住登入狀態是兩回事。連線可能中途中斷,而且HTTP即使在同一條連線中也不記得先前的請求。
- B. HTTP本身不記錄登入狀態,因此要在應用程式端以Cookie或權杖管理。
- C. 正確。以Cookie傳遞工作階段ID,把請求與使用者連結起來。