ホームページ > ウェブフロントエンド > H5 チュートリアル > HTML5_html5 チュートリアル スキルにおける WebSocket プロトコルの実装原理の簡単な分析

HTML5_html5 チュートリアル スキルにおける WebSocket プロトコルの実装原理の簡単な分析

WBOY
リリース: 2016-05-16 15:47:34
オリジナル
1290 人が閲覧しました

WebSocket プロトコルは、既存のネットワーク インフラストラクチャで動作するように設計されています。この設計原則の一環として、WebSocket 接続のプロトコル仕様では HTTP 接続をライフサイクルの開始点として定義し、WebSocket 以前の世界との完全な下位互換性を確保しています。一般に、WebSocket を HTTP プロトコルから切り替えることを WebSocket ハンドシェイクと呼びます。

ブラウザは、WebSocket プロトコルを HTTP から切り替えたいことを示すリクエストをサーバーに送信します。アップグレードのタイトルを通じてクライアントの要望が表現されており、コードは次のとおりです:


コードをコピー
コードは次のとおりです:
GET ws://echo.websocket。 org/? エンコーディング=テキスト HTTP/1.1
オリジン: http://websocket.org
Cookie: __utma=99as
接続: アップグレード
ホスト: echo.websocket.org
WebSocket-Key : uRovscZjNol/umbTt5uKmw==
アップグレード: websocket
Sec-WebSocket-Version: 13


サーバーが WebSocket プロトコルを理解している場合は、Upgrade ヘッダーを介してプロトコルの切り替えに同意します。


コードをコピーします
コードは次のとおりです:
HTTP/1.1 101 WebSocket プロトコル ハンドシェイク
日付: Fri, 10 Feb 2012 17:38:18 GMT
接続: アップグレード サーバー: Kaazing Gateway
アップグレード: WebSocket
アクセス制御許可オリジン: http://websocket.org
Access-Control-Allow-Credentials: true
Sec-WebSocket-Accept: rLHCkw/SKsO9GAH/ZSFhBATDKrU=
Access-Control-Allow-Headers: content-type


この時点で、HTTP 接続が切断され、同じ基盤となる TCP/IP 接続上の WebSocket 接続が置き換えられます。 WebSocket 接続は、デフォルトで HTTP (80) と HTTPS (443) と同じポートを使用します。

接続が確立されると、WebSocket データ フレームを全二重モードでクライアントとサーバー間で送受信できます。テキスト フレームとバイナリ フレームの両方を両方向に同時に送信できます。 2 バイトのデータのみが最小限にフレーム化されます。テキスト フレームの場合、各フレームは 0x00 バイトで始まり 0xff バイトで終わり、UTF-8 データが含まれます。 WebSocket テキスト フレームはターミネータを使用しますが、バイナリ フレームはプレフィックス長を使用します。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート