web-dev-qa-db-ja.com

HTTPリクエストのライフサイクル

私は最近、Webアプリケーションのバックエンド開発者として仕事を始めました。 Httpリクエストのライフサイクルを理解するのに少し行き詰まっています。

私が理解したのは

  • すべてのHttp要求は、最初に要求URLドメインをIPアドレスに解決するDNSサーバーに接続します。
  • Webサーバーを取得した後、IPアドレス要求は(PUT要求を介して)転送されます。 ApacheなどのWebサーバーがこの要求を処理し、これを処理する必要があるアプリケーションに転送します。

この後、私は

  • アプリケーションはそれを要求したユーザーにどのように応答を送信し、Apcacheはこれに関与しますか?
  • デバッグツールを使用して、ブラウザにフロー全体を表示できますか?
  • 誰かがこれを深く理解するためにいくつかのリンクを参照できますか?
34
Poorna

あなたはそれを理解する上で少し間違っていると思います。

Www.google.comにアクセスすると(フォームを使用せず、サイトが欲しいだけです)、次のようになります。

  1. ブラウザーは、www.google.comをまだ知らない場合、IPアドレスに変換する必要があります。それを知っていれば、この時点では何も起こりません。わからない場合は、DNSサーバーに接続して名前を解決します。
  2. その後、ブラウザはTCP www.google.comのIPアドレスへの接続を開き、HTTP GETリクエストを送信します。この例では、
    GET / HTTP/1.1
    Host: www.google.com
  3. サーバーソフトウェアは、このHTTP要求を取得します。それは何らかの形でHTTP応答を生成し、TCP接続を介して送り返します。サーバーがこれを行う方法はサーバーソフトウェアに依存します。たとえば、Apacheにアプリケーションコードをプラグインするか、ファイルシステムからファイルを返します。PHPは、ブラウザに送信される応答を生成するソフトウェアによって呼び出されるアプリケーションです。応答が送信されると、HTTPバージョン1.0では接続が閉じられます。ただし、HTTP 1.1は永続的な接続を持つことができます。
  4. ブラウザーが応答を取得すると、通常は画面にレンダリングします。 HTTPリクエストが完了しました。 [検索]をクリックすると、新しいリクエストがサーバーに送信されます。

GET、PUT、POST、DELETEなどは HTTP要求メソッド です。 RFCで見ることができる特別な意味があります。

Cookies は、セッションと呼ばれる複数のHTTPリクエストで同じユーザーを識別するためによく使用されます。したがって、これらのCookieはセッションCookieと呼ばれます

Wireshark などのネットワークスニファーツールを使用して、通信をデバッグできます。 Firefoxには、サーバーに送信される前にリクエストを変更できる Tamper Data というサードパーティのプラグインがあります。

HTTP RFC は、すべてがどのように機能するかの良いソースです。

それが役に立てば幸い。

84
foens

これは、さまざまな製品ベースの企業でよく聞かれるインタビューの質問の1つです。

HTTPは要求/応答プロトコルです。たとえば、ユーザーエージェントは、通常、ホスト上の特定のポート(デフォルトではポート80)へのTCP/IP接続を開くことにより、サーバーへの要求を開始します。リクエスト自体には次のものが含まれます。

リクエスト行、

要求ヘッダーのセット、およびエンティティ。

そのポートでリッスンしているHTTPサーバーは、クライアントが要求メッセージを送信するのを待ちます。サーバーは、リクエストを受信すると、次を含むレスポンスを送信します。

ステータス行、一連の応答ヘッダー、およびエンティティ。要求または応答のエンティティは、単にペイロードと見なすことができ、これはバイナリデータの場合があります。他の項目は読み取り可能ですASCII文字。応答が完了すると、ブラウザまたはサーバーがTCP/IP接続を終了するか、ブラウザが別の要求を送信できます。

2
Shivam Verma

サーバーがブラウザからリクエストを受信する間、ブラウザはホスト上のポートにバインドされ、ブラウザのIPアドレスとポート番号はサーバーに送信するリクエストに添付されます。サーバーは応答をIPアドレスとポート番号に送信します

2
Sakkeer Hussain

このリソースは、HTTP lifecycle:実際には非常に興味深いが、すべての中間ステップ、特にIP AddressのURL。

https://medium.com/@maneesha.wijesinghe1/what-happens-when-you-type-an-url-in-the-browser-and-press-enter-bb0aa2449c1a

0
halapgos1