Webサーバーの正体 — 物理からコードへ
1本のリクエストが辿る道のりを、8つの段階に分けて見る。番号ボックスをクリックしても移動できます。
クライアント① TCP接続を要求(3-way handshake)OS カーネル領域② OSのlistenキュー(backlog)に並ぶポート番号でOSが待ち受けている③ accept() で1本取り出すアプリプロセス内 (Go: net/http)④ この接続専用のgoroutineが起動※接続ごとに1つ。リクエストごとではない⑤ バイト列を受信し*http.Requestへ組立ルーター/フレームワーク層 (gin)⑥ ルーティングで木を引く(gin.Engine)⑦ ハンドラ実行(あなたのコード)⑧ レスポンス書込 → keep-aliveなら②へ戻る

はじめに

1 / 9