101 Switching Protocols プロトコルの切り替えを示すHTTPステータスコード

スポンサーリンク
スポンサーリンク

101 Switching Protocolsについて

101 Switching Protocolsの概要

プロトコルの切り替えを示すHTTPステータスコード

101 Switching Protocols

概要 101 Switching Protocolsは、クライアントのリクエストに応じてサーバーが通信プロトコルを切り替えることを通知するHTTPステータスコードです。このコードは、クライアントがUpgradeヘッダーを使用して新しいプロトコルへの切り替えを要求し、サーバーがそれを承認した場合に返されます。

意味 サーバーはリクエストを受け入れ、指定されたプロトコルへの切り替えを行いました。

101 Switching Protocolsはどのような時に返されるか

  • クライアントがUpgradeヘッダーを含むリクエストを送信した場合
  • サーバーがプロトコル切り替えをサポートし、承認した場合
  • HTTPからWebSocketやHTTP/2などの別プロトコルに切り替える場合

101 Switching Protocolsの具体例

HTTPからWebSocketへの切り替え

GET /chat HTTP/1.1  
Host: example.com  
Upgrade: websocket  
Connection: Upgrade  

レスポンス例:

HTTP/1.1 101 Switching Protocols  
Upgrade: websocket  
Connection: Upgrade  

解説: クライアントがUpgradeヘッダーを使用してWebSocketへの切り替えを要求し、サーバーがそれを承認した場合に101ステータスコードが返されます。この後、通信はWebSocketプロトコルで行われます。

HTTPからHTTP/2への切り替え

GET / HTTP/1.1  
Host: example.com  
Upgrade: h2c  
Connection: Upgrade  

レスポンス例:

HTTP/1.1 101 Switching Protocols  
Upgrade: h2c  
Connection: Upgrade  

解説: HTTP/1.1からHTTP/2への切り替えを要求するリクエストに対し、サーバーが切り替えを承認した場合に101が返されます。この切り替えはクライアントとサーバーの双方が対応している場合にのみ有効です。

注意点

101 Switching Protocolsを返す際の注意点:

  • クライアントのリクエストを正確に評価
    クライアントが要求するプロトコル切り替えをサポートしているか確認する必要があります。
  • セキュリティリスクの検討
    特にWebSocketなどのプロトコル切り替えは、セキュリティの観点で潜在的なリスクを伴うため、慎重に設定する必要があります。

関連するHTTPステータスコードとの比較

101 Switching Protocolsと関連性のあるステータスコードについて解説します。

  • 200 OK: リクエストが成功し、通信プロトコルを変更しない場合に使用されます。
  • 426 Upgrade Required: クライアントがサーバーがサポートするプロトコルへのアップグレードを行わないと、リクエストが完了できない場合に返されるコードです。

これらの違いを理解することで、適切な用途で101ステータスコードを利用できます。