1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

HTTP通信の流れ

Posted at

HTTPとは

HTTPは、Webサーバーと通信を行うときのプロトコルです。

WebはブラウザからWebサーバーにリクエストを投げてレスポンスを得るシステムですが、このとき通信の仕組みを支えているのがHTTPです。

HTTPはTCP/IPがベースとなっています。TCP/IPはインターネットで通信するときのプロトコルです。

HTTP通信の流れ

ブラウザとWebサーバー間の通信の流れはざっくりと以下のようになっています。

DNSによる名前解決
TCPによるコネクションの確立
リクエストとレスポンス

DNSによる名前解決

まず指定されたURIに関してDNSによる名前解決を行います。これによってリクエスト先を特定します。

具体的には、FQDN(ホスト名+ドメイン名)に該当するIPアドレスを取得します。
FQDNは、URIのうちの例えば、www.hogehoge.comのような部分です。

DNSサーバーと通信してwww.hogehoge.comのIPアドレスを取得します。

TCPによるコネクションの確立

続いて取得したIPアドレス先に対してTCPコネクションを確立します。

3ウェイハンドシェイクという手法を用いて「通信してもいいですか」「いいですよ」「わかりました」みたいなやりとりをします。

リクエストとレスポンス

コネクションが確立できたら、リクエストデータを送信します。
リクエストに応じて、レスポンスデータを返されます。

TCPによってデータ伝送時も送達確認がなされます。
データ量が多い場合はパケットを分けて送信します。

レスポンス「1つ目のパケットだよ。」
リクエスト「1つ目のパケットが届いたよ。2つ目を送って。」
レスポンス「2つ目のパケットだよ。」
リクエスト「2つ目のパケットが届いたよ。3つ目を送って。」

みたいなイメージのやりとりをします。

まとめ

ブラウザとWebサーバーの通信はHTTPで行う。

HTTP通信のざっくりとした流れは、

DNSによる名前解決
TCPによるコネクションの確立
リクエストとレスポンス

となります。



以下余談。
「Webサーバー」は「Webサーバーソフトウェア(Nginxなど)が起動しているコンピュータ」のことです。(NginxイコールWebサーバなどと理解しているとネットワークの学習をしているときによくわからないことになります。)

DNSで名前解決したwww.hogehoge.comのIPアドレスは「Webサーバーソフトウェア(Nginxなど)が起動しているコンピュータ」の住所です。そのコンピュータまでパケットが渡ったら、「80番のアプリケーション宛ですよ」と言った感じでポート番号で識別して「Webサーバーソフトウェア(Nginxなど)」にパケットが渡されます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?