作って意地でも理解する HTTP + WebSocketサーバーの仕組み
SRANK

これは何HTTPとWebSocketサーバーのコア部分を実装しながら仕組みを理解していきます。学習目的で実用ではありません。HTTP、WebSocketはどちらもWEBエンジニアなら当たり前に使うプロトコルですが、仕組みはふわっとしか分かっていませんでした。そんな折サーバー周りを触る必要が出てきたので改めて理解しておきたくなり、せっかくなので自分でいちから実装してみることにしました。コード全体は以下から見れます。実装する機能ざっくりと以下のような機能を作っています。HTTPサーバーGETメソッドのみ、HTTP/1.1のみに対応リクエストラインをパースして、リクエストに応じた処理を行う(GETのみ対応なのでレスポンスヘッダーを付けてファイルを返すだけ)ヘッダーフィールドもパースするが、Websocket関連以外のフィールドは無視するWebSocketサーバーWebsocketハンドシェイクの処理WebSocketハンドシェイクはHTTPリクエストと同じ形式なので、HTTPサーバー部分で処理サブプロトコルは実装しないハンドシェイク後のフレームのやり取りテキストの送受信、クローズハンドシェイク、ping送信、pong受信を実装javaのintサイズに収まらないバイト長のペイロードは非対応メッセ…

zenn.dev
Related Topics: WebSocket HTTP Web Standards / Browsers