ブラウザの生TCP/UDPソケット制限

一般的なWebページ(通常のブラウザタブで開くサイト)は、悪用防止のため生のTCP/UDPソケットを直接開くことができない。WebSocketfetchWebRTCといった標準のWeb通信APIは、この制約を前提に意図的に設計されている。

これがwebsockifyのようなWebSocket⇔TCPブリッジが必要とされる理由そのものであり、noVNCRFB(Remote Framebuffer)プロトコルサーバーへ直接ではなくWebSocket経由で接続する構成を取る背景にもなっている。

例外:Direct Sockets API

ChromeなどでTCP/UDPソケットを直接開ける「Direct Sockets API」が開発されている。ただしこれは「Isolated Web Apps(IWA)」という特別なアプリ形態限定の機能で、通常のブラウザタブで開く一般的なWebサイトには公開されていない。悪用リスクが高いため、厳格なCSPやクロスオリジン分離などの追加セキュリティ条件を満たすIWAでのみ有効化される。

将来的な動き:WebTransport

HTTP/3(QUIC)ベースの新しい多重化通信API「WebTransport」の標準化も進行中(W3Cで2026年内にCandidate Recommendation入りを目指している段階)。ただしこれも任意の生TCPを喋れるようにするものではなく、QUIC/HTTP3上の多重化トランスポートという位置づけ。

出典

#protocol #browser

作成日時: 2026-08-11 07:41 / 更新日時: 2026-08-12 20:43