「WebSocket」の版間の差分

全体的にいつごろの話なのか分からないため冒頭部にRFCの年度を追記, その他微更新
(→‎サーバ: Boost.Beastを追加)
(全体的にいつごろの話なのか分からないため冒頭部にRFCの年度を追記, その他微更新)
'''WebSocket'''(ウェブソケット)は、[[コンピュータネットワーク]]用の通信規格の1つである。[[ウェブアプリケーション]]において、[[複信|双方向通信]]を実現するための技術規格である。[[2011年]]にRFC 6455として最初の標準仕様が定義された
 
標準仕様以下のように規定されている。
* [[アプリケーションプログラミングインタフェース|API]]は[[HyperText Markup Language|HTML]]仕様の中に含まれている: [https://html.spec.whatwg.org/multipage/comms.html#network HTML Standard 9.3 Web sockets]([https://triple-underscore.github.io/WebSocket-ja.html 日本語訳])。
* [[通信プロトコル]]: RFC 6455 ([https://triple-underscore.github.io/RFC6455-ja.html 日本語訳])に加えて[https://fetch.spec.whatwg.org/#websocket-protocol Fetch Standard 6. WebSocket protocol alterations]([https://triple-underscore.github.io/Fetch-ja.html#websocket-protocol 日本語訳])
 
== 概要 ==
[[XMLHttpRequest]]の欠点を解決する技術として開発されており、現在既存の[[Comet]]等に取って代わることを目標としている。
 
いわゆる[[Ajax]]アプリケーションでは[[サーバ]]と[[クライアント (コンピュータ)|クライアント]]間のデータのやり取りが頻繁に発生するが、従来の[[XMLHttpRequest]]はあくまで[[ウェブブラウザ|ブラウザ]]側からサーバにデータの送信要求を出す手段に過ぎず、サーバ側からクライアントにデータをプッシュ配信することが難しい。一方Cometではサーバ側からのプッシュ配信が可能なものの、多くの実装では擬似的に双方向通信を行うため通信が発生するごとに[[Transmission Control Protocol|TCP]]の[[ハンドシェイク]]手続きを再度行う必要があるほか、HTTPコネクションを長時間占有するためその間同一サーバに接続する他のアプリケーションの動作に影響を及ぼす可能性があるなど、また別の問題が生じる([[XMLHttpRequest#ロングポーリング]]も参照)。
* [[Push技術]]
* [[Comet]]
* [[SPDYgRPC]]
 
== 参照 ==