通信方法
Web でのすべての通信方法を列挙する。
それぞれ用途、特徴があり、単純に交換できるものではない。
ActiveX などのプラグインについては無視。
ブラウザ間通信
HTML Form
img, script, iframe などの要素の挿入による強制 Fetch(src, href 属性などで GETパラメータを渡せば送信もできる)
meta refresh (iframe などで定期的に読み出すなど)
CSS などの url スキーム
Blob + url
本来は同期式の HTTP の応答を遅延させることでサーバーからの非同期の push 通信を実現したプロトコル
公式なプロトコルではなく、明確な仕様も存在しない。歴史的事情であるプロトコル。
Long Polling とも呼ばれる。
サーバーとクライアントとの双方向通信
データ形式は自由
サーバーとクライアントとの双方向通信
主にストリーミングデータを扱う
HTTP/HTTPSでデータを取得する。
Channel Messaging API (内部通信)
window.postMessage(obj) と message イベント (window.onmessage, window.addEventListener("message", fn) で親ウィンドウと子ウィンドウ(別ドメイン可)の間でメッセージを伝達することができる。
iframe から親を見るには document .referrer
子ウィンドウから親を見るには window.opener
サーバーからクライアントへの一方通行
任意のタイミングで任意サイズのパケットを送信可能
データ形式はテキストのみ(MIME タイプ text/event-stream のみ)
類似する通信は WebSocket
関連
除外
File API
File API はローカルファイルを取り扱うため、リモートファイル(URL)ではアクセスできない。
参考