これら2つの応答ステータスの違いは何ですか?
HTTP/1.1 101 Web Socket Protocol Handshake
HTTP/1.1 101 Switching Protocols
どれを取得するかは重要ですか?
何の違いもありません。重要なのは、ハンドシェイクが進行中であることを示す101
応答コードです。これは RFC 6455 で定義されています。
クライアントからのリーディングラインは、Request-Lineフォーマットに従います。 サーバーからの先頭行は、Status-Line形式に従います。 Request-LineおよびStatus-Lineプロダクションは、[RFC2616]で定義されています。
...
サーバーからのハンドシェイクは、クライアントのハンドシェイクよりもはるかに簡単です。 最初の行はHTTPステータス行で、ステータスコードは101です。
HTTP/1.1 101スイッチングプロトコル
101以外のステータスコードは、WebSocketハンドシェイクが完了しておらず、HTTPのセマンティクスが引き続き適用されることを示します。
Status-Line
のテキストは任意であり、サーバーは RFC 2616 に従って任意のテキストを使用できます。
Status-Line = HTTP-Version SP Status-Code SPReason-PhraseCRLF
...
Status-Code要素は、要求を理解して満足する試みの3桁の整数の結果コードです。これらのコードはセクション10で完全に定義されています。Reason-Phraseは、Status-Codeの短いテキスト記述を提供することを目的としています。 Status-Codeはオートマトンによる使用を目的としており、Reason-Phraseは人間のユーザーを対象としています。クライアントは、Reason-Phraseを確認または表示する必要はありません。
Switching Protocols
は、たまたま RFC 6455 の例で使用されているものですが、これは必須ではありません。