Web技術基礎

在負載平衡器後方放置3台應用程式伺服器,依序把請求分配給各伺服器(循環配置)。已登入使用者的工作階段資訊,只保存在處理登入之伺服器的記憶體中。容易發生的問題與對策的組合,下列何者適當?

  1. A被分配到其他伺服器時找不到工作階段,看起來像是登入中斷了。把工作階段放在所有伺服器都能使用的共用位置
  2. B3台伺服器各自發出相同的工作階段ID而發生衝突。把工作階段ID改成簡短的連號,讓使用者容易記住ID
  3. C負載平衡器無法讀取Cookie,因此無法使用HTTPS。讓負載平衡器與伺服器之間的通訊不加密
查看答案與解析

正確答案:A. 被分配到其他伺服器時找不到工作階段,看起來像是登入中斷了。把工作階段放在所有伺服器都能使用的共用位置

工作階段資訊只存在於1台伺服器的記憶體時,下一個請求被分配到別台伺服器,那台伺服器就無法辨識使用者。對策之一是把工作階段放在任何伺服器都能讀寫的共用儲存區(記憶體內資料儲存區或資料庫)。另一個是把同一使用者的請求持續分配給同一台伺服器的工作階段保持(黏性工作階段),但該伺服器停止時工作階段就會遺失,負載也容易不均。讓伺服器不保有狀態,就容易增減伺服器的台數。

  • A. 正確。放在共用位置,任何伺服器都能使用相同的工作階段。
  • B. 工作階段ID要設為無法被猜測、足夠長的隨機值。縮短會提高被冒充的風險。
  • C. 工作階段的問題與HTTPS無關。停止加密只會降低安全性。
練習這個領域 前往領域頁面

Web技術基礎的其他題目

  1. 關於一般帶簽章的JWT(JSON Web Token),下列說明何者正確?
  2. 相片沖印服務的應用程式,取得使用者的許可後,讀取使用者存放在另一家公司相片儲存服務中的相片。在OAuth 2.0中,向使用者顯示請求許可的畫面,並在使用者同意後對應用程式發行存取權杖的角色,為下列何者?
  3. 關於OAuth 2.0與OpenID Connect的關係,下列說明何者正確?
  4. 符合REST概念的Web API設計,下列何者適當?
  5. 在瀏覽器中開啟 https://www.example.com:8443/docs/guide.html?lang=ja#install。這個URL中,不包含在送往伺服器的請求裡、只在網頁載入後於瀏覽器內使用的部分,為下列何者?