HTTPについて知っておくべきことすべて
HTTP(ハイパーテキスト転送プロトコル)は、Webブラウザとサーバーが通信に使用するネットワークプロトコル標準を提供します 。 ウェブサイトを訪問するときには、 URLに直接書かれているので、これを認識するのは簡単です(例: http:// www。 )。
このプロトコルは、リモートサーバーからファイルを要求するためにクライアントプログラムによって使用される点で、 FTPのような他のプロトコルに似ています。 HTTPの場合、通常、WebサーバーからHTMLファイルを要求するWebブラウザーで、テキスト、画像、ハイパーリンクなどでブラウザーに表示されます。
HTTPは「ステートレスシステム」と呼ばれるものです。 つまり、 FTPなどの他のファイル転送プロトコルとは異なり、要求が行われるとHTTP接続が切断されます。 そのため、Webブラウザがリクエストを送信し、そのページでサーバが応答すると、接続は閉じられます。
ほとんどのWebブラウザはHTTPにデフォルト設定されているため、ドメイン名だけを入力してブラウザに「http://」部分を自動入力させることができます。
HTTPの歴史
Tim Berners-Leeは、元のWorld Wide Webを定義する作業の一環として、1990年代初めに初期HTTPを作成しました。 1990年代には3つの主要なバージョンが広く配備されました。
- HTTP 0.9(基本ハイパーテキスト文書のサポート用)
- HTTP 1.0(豊富なWebサイトとスケーラビリティをサポートする拡張機能)
- HTTP 1.1(インターネットRFC 2068で規定されているHTTP 1.0のパフォーマンス制限に対処するために開発された)
最新バージョンのHTTP 2.0は、2015年に承認された標準となりました.HTTP 1.1との下位互換性を維持しますが、追加のパフォーマンス強化を提供します。
標準のHTTPはネットワーク経由で送信されるトラフィックを暗号化しませんが、(元の) SSL(Secure Sockets Layer)または(後で)TLS(Transport Layer Security)を使用してHTTPに暗号化を追加するためのHTTPS標準が開発されました。
HTTPのしくみ
HTTPは、 クライアント/サーバー通信モデルを使用するTCPの上に構築されたアプリケーション層プロトコルです。 HTTPクライアントおよびサーバーは、HTTP要求および応答メッセージを使用して通信します。 3つの主要なHTTPメッセージタイプは、GET、POST、およびHEADです。
- サーバーに送信されるHTTP GETメッセージには、 URLのみが含まれます 。 0個以上の任意のデータパラメータをURLの末尾に付加することができる。 サーバーは、URLのオプションのデータ部分を処理し、その結果(WebページまたはWebページの要素)をブラウザーに返します。
- HTTP POSTメッセージは、任意のデータパラメータをURLの末尾に追加するのではなく、要求メッセージの本文に配置します。
- HTTP HEADリクエストは、GETリクエストと同じように動作します。 URLの完全な内容で返信する代わりに、サーバーはヘッダー情報(HTMLセクションに含まれている)のみを返送します。
ブラウザは、サーバーへのTCP接続を開始することによって、HTTPサーバーとの通信を開始します。 Webブラウジングセッションではデフォルトでサーバーポート80が使用されますが、代わりに8080などの他のポートが使用されることがあります。
セッションが確立されると、ユーザはウェブページを訪問することによってHTTPメッセージの送受信をトリガする。
HTTPに関する問題
HTTP経由で送信されるメッセージは、いくつかの理由で正常に配信されないことがあります。
- ユーザーエラー
- ウェブブラウザまたはウェブサーバの誤動作
- ウェブページの作成におけるエラー
- 一時的なネットワークの不具合
これらの障害が発生すると、プロトコルはエラーの原因を取り込み(可能な場合)、 HTTPステータス行/コードと呼ばれるエラーコードをブラウザに報告します。 エラーは、エラーの種類を示すために特定の番号で始まります。
たとえば、4xxエラーは、ページの要求を正しく完了できないか、要求に不正な構文が含まれていることを示します 。 一例として、 404エラーはページが見つからないことを意味します。 いくつかのウェブサイトには、 カスタム404エラーページがあります 。