INDEX
101 Switching Protocolsについて
101 Switching Protocolsの概要
プロトコルの切り替えを示すHTTPステータスコード | ||
101 Switching Protocols 概要 101 Switching Protocolsは、クライアントのリクエストに応じてサーバーが通信プロトコルを切り替えることを通知するHTTPステータスコードです。このコードは、クライアントが |
||
意味 サーバーはリクエストを受け入れ、指定されたプロトコルへの切り替えを行いました。 |
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ステータスコードを利用できます。