HTTP通信する時のブラウザのプログラム


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

こんにちは、協栄情報のきおかです。

最近ネスペの勉強の関連でブラウザの動きを学んだので、備忘録として残しておきます。
細かい用語や知識に関しては勉強中なので、今後ブログを更新・投稿していきます。

HTTPリクエストメッセージの基本型

HTTP通信する時のブラウザの大まかなプログラム

HTTP通信の大まかな流れ

ブラウザの検索欄にURLを書いて検索ボタンを押す

ブラウザがHTTPリクエストメッセージを作成

ブラウザがSocketライブラリからDNSリゾルバプログラム(gethostbyname())を呼び出す

プロトコルスタックがDNS解決をしてブラウザにIPアドレスを返す

ブラウザがIPアドレスを受け取り、空けていたメモリ領域に格納する

ブラウザがSocketライブラリからsocketを呼び出す

プロトコルスタックが適当なポート番号とディスクリプタをブラウザに返す

ブラウザがSocketライブラリから connectを呼び出す。ディスクリプタ、サーバーのIPアドレスとポート番号を引数にとる。

プロトコルスタックがソケットを介してサーバーと接続を開始する

データを送受信する(サーバー⇔プロトコルスタック⇔ブラウザ)

通信が終わればサーバー側からcloseを送る

プロトコルスタックがcloseを受け取り切断フェーズに入る

ブラウザがSocketライブラリからreadを呼び出し、プロトコルスタックはcloseを返す

ブラウザも切断フェーズに入る

参考文献

戸根勤(2007). 『ネットワークはなぜつながるのかー知っておきたいTCP/IP、LAN、光ファイバの基礎知識 第2版』. 日経BP社.

まとめ

一旦大まかにですが、これから解像度を上げてより緻密な記事を作成してきます。

今回はここまで!

Last modified: 2023-11-26

Author