ホームページ  >  記事  >  ウェブフロントエンド  >  Webサーバーの詳しい紹介

Webサーバーの詳しい紹介

PHP中文网
PHP中文网オリジナル
2017-06-21 10:58:281824ブラウズ

1. HTTPプロトコルの紹介

HTTPはHyper Text Transfer Protocolの略です。この開発は、World Wide Web Consortium と Internet Engineering Task Force (IETF) の協力の成果であり、最終的には HTTP/1.0 バージョンを定義する一連の RFC 1945 をリリースしました。これらの中で最も有名なのは RFC 2616 です。 RFC 2616 は、現在一般的に使用されているバージョンである HTTP 1.1 を定義しています。

HTTPプロトコル(HyperText Transfer Protocol、ハイパーテキスト転送プロトコル)は、WWWサーバーからローカルブラウザにハイパーテキストを転送するために使用される転送プロトコルです。これにより、ブラウザの効率が向上し、ネットワーク送信が削減されます。これにより、コンピュータがハイパーテキスト ドキュメントを正確かつ迅速に送信することが保証されるだけでなく、ドキュメントのどの部分が送信されるか、コンテンツのどの部分が最初に表示されるか (グラフィックの前のテキストなど) なども決定されます。

  • HTTPは、データ(HTMLファイル、画像ファイル、クエリ結果など)を転送するためのTCP/IPに基づく通信プロトコルです。

  • HTTP は、リクエストとレスポンスで構成されるアプリケーション層プロトコルであり、標準的なクライアント/サーバー モデルです。

  • HTTP はステートレス プロトコルです。

![HTTP プロトコルの深い理解.jpg のアップロードに失敗しました。もう一度お試しください。]


HTTP プロトコルでは、常にクライアントがリクエストを開始し、サーバーが応答を送り返します。


これにより、HTTP プロトコルの使用が制限され、クライアントがリクエストを開始しない場合、サーバーはクライアントにメッセージをプッシュすることができなくなります。
HTTP プロトコルはステートレス プロトコルです。このリクエストと同じクライアントの以前のリクエストの間には対応関係がありません。

2.httpプロトコル解析

1.ブラウザリクエスト


httpリクエストメソッド

データベースのCRUD追加、削除、変更、確認操作に対応可能です:

  1. CREATE:PUT

  2. READ: GET

  3. UPDATE: POST

  4. DELETE: DELETE

2. サーバー応答

HTTP 応答は、ヘッダーと本文 (本文はオプション) の 2 つの部分に分かれています。ヘッダーの最も重要な行は次のとおりです:

HTTP/1.1 200 OK
200 は成功した応答を示し、次の OK は説明です。
戻り値が 200 ではない場合、多くの場合、次のような他の関数があります。

  • 失敗した応答には、404 Not Found: Web ページが存在しません

  • 500 Internal Server Error: サーバーに内部エラーがあります。

  • ...etc. お待ちください...

HTTPステータスコード.jpg


Content-Type: text/html
Content-Type は応答のコンテンツを示します。ここで text/html は HTML Web ページを表します。

3. ブラウザの解析プロセス

ブラウザが Sina のホームページの HTML ソース コードを読み取ると、HTML を解析してページを表示し、HTML 内のさまざまなリンクに基づいて HTTP リクエストを Sina サーバーに送信します。対応する画像、ビデオ、Flash、JavaScript スクリプト、CSS、その他のリソースにリンクし、最終的に完全なページを表示します。

3. 概要

1. HTTP リクエストのプロセス

Sina のホームページに従って、HTTP リクエストのプロセスをまとめてみましょう:

ステップ 1: リクエストには次のものが含まれます:

メソッド: GETまたは POST、GET はリソースのみを要求します。POST にはユーザー データが伴います。
パス: /full/url/path;
ドメイン名: ホスト ヘッダーで指定: ホスト: www.sina.com
およびその他の関連ヘッダー。 POST の場合、リクエストにはユーザー データを含む本文も含まれます。

ステップ 2: サーバーはブラウザに HTTP 応答を返します。応答には次のものが含まれます。
応答コード: 200 は成功を示し、3xx はリダイレクトを示し、4xx はリダイレクトを示します。クライアントから送信されたリクエストにエラーがあること、5xx はサーバー側の処理中にエラーが発生したことを示します。

応答タイプ:
およびその他の関連ヘッダーで指定されます。には、応答のコンテンツが含まれる Body があり、Web ページの HTML ソース コードが Body に含まれます。

ステップ 3: ブラウザーが画像などの他のリソースをサーバーに要求し続ける必要がある場合は、別の HTTP 要求を作成し、ステップ 1 と 2 を繰り返します。

Web で採用されている HTTP プロトコルは、非常にシンプルなリクエスト/レスポンス モデルを採用しており、開発が大幅に簡素化されています。ページを作成するときは、HTTP リクエストで HTML を送信するだけでよく、写真やビデオなどを添付する方法を考慮する必要はありません。ブラウザは写真やビデオをリクエストする必要がある場合、別の HTTP リクエストを送信します。したがって、HTTP リクエストは 1 つのリソースのみを処理します (これは、TCP プロトコルの短い接続として理解できます。各リンクは 1 つのリソースのみを取得します。さらに必要な場合は、複数のリンクを確立する必要があります)
HTTP プロトコルには強力な機能もありますスケーラビリティ ブラウザはホームページを要求しますが、Sina は HTML で他のサーバーからリソースをリンクできます。 - orient/strip%7CimageView2/2/w/1240) を使用して、リクエストの圧力をさまざまなサーバーに分散し、1 つのサイトを他のサイトにリンクしたり、無数のサイトが相互にリンクして World Wide Web を形成します。 WWWとして。


2.HTTP 形式

クライアント要求情報
サーバー応答メッセージ
    各 HTTP 要求と応答には、ヘッダーと本文の 2 つの部分が含まれており、本文は同じ形式に従います。はオプションです。
  • HTTPプロトコルはテキストプロトコルなので、その形式も非常にシンプルです。
  • HTTP GET リクエスト形式:

    GET /path HTTP/1.1
    Header1: Value1
    Header2: Value2
    Header3: Value3
    各ヘッダーは 1 行、改行文字は rn または os.linesep を使用します
    HTTP POST リクエスト形式:
    POST /path HTTP/1.1
    Header1: Value1
    Header2: Value2
    Header3: Value3

    body data go here...

    2 つの連続した rn に遭遇すると、Header 部分が終了し、後続のデータはすべて Body になります。

    HTTP 応答形式:
    200 OK
    Header1: Value1
    Header2: Value2
    Header3: Value3

    body データがここに入ります...

    HTTP 応答に body が含まれる場合、それも rnrn で区切られます。

    本文のデータ型は Content-Type ヘッダーによって決定されることに注意してください。Web ページの場合、本文は画像のバイナリ データです。
    Content-Encoding が存在する場合、Body データは圧縮されています。そのため、Content-Encoding: gzip が表示された場合は、実際のデータを取得するために最初に Body データを解凍する必要があります。圧縮の目的は、ボディのサイズを削減し、ネットワーク伝送を高速化することです。

    4Web静的サーバー

    1. 固定ページを表示します

  • クライアントブラウザページを表示します
2. 必要なページを表示します

クライアントブラウザbiye.html ページ


学習プロセス中に問題が発生した場合、または学習リソースを入手したい場合は、学習交換グループ
343599877 への参加を歓迎します。一緒にフロントエンドを学びましょう!

以上がWebサーバーの詳しい紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。