- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:HTTPアクセスの処理)
HTTPアクセスの内部処理とは?
このQ&Aのポイント
- HTTPアクセスでは、まずDNSによる名前解決が行われます。
- その後、TCPセッションの確立が行われます。
- 最後にHTTP要求が行われ、サーバからの応答が返ってきます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
アプリケーションレベルでの手順で良いかな。 DNSを使うかどうかは設定次第だと思うけど、名前解決は今だとgetaddrinfoで行うかな。 # http://www.linux.or.jp/JM/html/LDP_man-pages/man3/getaddrinfo.3.html これでソケットを作成するのに必要なIPアドレスやポート情報が得られるから、これを使ってsocketでクライアントソケットを作り、connectでTCPセッションを開始する。 HTTPはセッションが繋がったソケットにリクエストをwriteで書き込んで、レスポンスをreadで読み込むだけ。 アプリケーションとしては上記のライブラリ関数やシステムコールを順に呼ぶだけです。名前解決が終わらないとgetaddrinfoは返らないし、TCPセッションが確立しないとconnectは返らないので、返ったら(エラーチェックは必要ですが)次へ進めば良いです。参考URLにHTTPではないですがアクセス手順のサンプルがあるので参考にしてください。
その他の回答 (1)
- jjon-com
- ベストアンサー率61% (1599/2592)
回答No.2
どのレベルの詳細さの回答を望んでいるのか不明。 ともかく「1・DNSによる名前解決」の記述から間違っています。名前解決ではHTTPパケットは流れないし,DNSが使うプロトコルはTCPではなくUDPです。 Google検索などして,もっとも代表的な無料のパケットキャプチャソフト Wireshark の使い方を知り,Yahoo!にWebアクセスしたときの一連のパケットをご自身の目で見てみる方が話が早いのではないでしょうか。