Web技術基礎

HTTP是無狀態的協定。關於這一點以及網站維持登入狀態的一般方法,下列說明何者正確?

  1. A伺服器記得同一條TCP連線上送來的所有請求,因此只要瀏覽器不切斷連線,登入狀態就會一直持續
  2. BHTTP本身具有記錄已登入使用者的機制,因此Web應用程式端不必做任何維持狀態的處理
  3. CHTTP本身不記得請求之間的關係,因此以Cookie傳遞伺服器發出的工作階段ID,由瀏覽器每次送回
查看答案與解析

正確答案:C. HTTP本身不記得請求之間的關係,因此以Cookie傳遞伺服器發出的工作階段ID,由瀏覽器每次送回

無狀態是指每個請求都被獨立處理,作為協定並不記得先前請求的內容。伺服器不必保有狀態,任何一台伺服器都能處理請求,具有容易增加伺服器台數的優點。想維持登入這類狀態時,伺服器以Set-Cookie標頭交付工作階段ID,瀏覽器在送往同一網站的請求中,以Cookie標頭自動附上。伺服器以收到的ID為線索,找出保存在自己這一端的使用者資訊(工作階段)。

  • A. 重複使用TCP連線與記住登入狀態是兩回事。連線可能中途中斷,而且HTTP即使在同一條連線中也不記得先前的請求。
  • B. HTTP本身不記錄登入狀態,因此要在應用程式端以Cookie或權杖管理。
  • C. 正確。以Cookie傳遞工作階段ID,把請求與使用者連結起來。
練習這個領域 前往領域頁面

Web技術基礎的其他題目

  1. 關於以上方標頭設定的Cookie,下列說明何者正確?
  2. 瀏覽器的localStorage與Cookie的差異,下列何者正確?
  3. 在負載平衡器後方放置3台應用程式伺服器,依序把請求分配給各伺服器(循環配置)。已登入使用者的工作階段資訊,只保存在處理登入之伺服器的記憶體中。容易發生的問題與對策的組合,下列何者適當?
  4. 關於一般帶簽章的JWT(JSON Web Token),下列說明何者正確?
  5. 相片沖印服務的應用程式,取得使用者的許可後,讀取使用者存放在另一家公司相片儲存服務中的相片。在OAuth 2.0中,向使用者顯示請求許可的畫面,並在使用者同意後對應用程式發行存取權杖的角色,為下列何者?