Web技術基礎
在聊天應用程式中,想把新訊息立即從伺服器送到瀏覽器。關於WebSocket的說明,下列何者正確?
- A瀏覽器每隔幾秒送出HTTP請求,每次都向伺服器確認是否有新訊息送達的方式
- B把以HTTP開始的連線切換(升級),讓伺服器與瀏覽器任何一方都能在一條連線上傳送訊息
- C事件發生時,由伺服器以HTTP的POST請求,通知另一台伺服器事先登錄之URL的方式
查看答案與解析
正確答案:B. 把以HTTP開始的連線切換(升級),讓伺服器與瀏覽器任何一方都能在一條連線上傳送訊息
WebSocket在HTTP請求中要求Upgrade: websocket,伺服器回傳101 Switching Protocols後,同一條TCP連線就切換為WebSocket通訊。之後連線保持開啟,伺服器與瀏覽器任何一方都能以很少的負擔傳送小訊息。若採每隔一定時間詢問的方式,即使沒有新訊息也會產生請求,新訊息最多會延遲一個詢問間隔才送達。從伺服器以HTTP的POST通知另一台伺服器的方式稱為Webhook。
- A. 這是定期詢問的方式(輪詢)。即使沒有新訊息也會產生請求,並產生最多一個間隔的延遲。
- B. 正確。連線保持開啟,雙方隨時都能傳送訊息。
- C. 這是Webhook的說明。用於伺服器之間的通知。