HTTP は、World Wide Web でのデータ転送に使用されているプロトコルで、現在最もよく使用されているアプリケーション層プロトコルの 1 つです。 最初は HTML ページの発行と取得のためだけに開発されましたが、その柔軟性により、分散コラボレーション情報システムにおいて重要なアプリケーションになりました。

HTTP は要求/応答プロトコルです。 クライアント(通常は Web ブラウザ)が Web サーバに要求を送信するとき、HTTP は通信に使用するメッセージ タイプを指定します。 一般的なメッセージ タイプは、GET、POST、PUT の 3 つです(図を参照)。

GET はデータのクライアント要求です。 クライアント(Web ブラウザ)は、GET メッセージを Web サーバに送信して HTML ページを要求します。 サーバは、GET 要求を受信すると、HTTP/1.1 200 OK のようなステータス行と、独自のメッセージで応答します。 サーバからのメッセージには、要求された HTML ファイルが含まれる場合と(ファイルが使用可能な場合)、「要求されたファイルの場所は変更されています」といったエラーまたは情報メッセージが含まれる場合があります。

POST および PUT は、Web サーバにデータ ファイルをアップロードするために使用されます。 たとえば、ユーザが Web ページに組み込まれているフォームにデータを入力すると(オーダー要求を完了するときなど)、POST メッセージが Web サーバに送信されます。 POST メッセージには、ユーザがフォームで送信するデータが含まれます。

PUT は、リソースやコンテンツを Web サーバにアップロードします。 たとえば、ユーザが Web サイトにファイルやイメージをアップロードしようとすると、ファイルやイメージが添付された PUT メッセージがクライアントからサーバに送信されます。

HTTP は非常に柔軟ですが、セキュリティで保護されたプロトコルではありません。 要求メッセージは、傍受と読み取りが可能なプレーン テキストで情報をサーバに送信します。 同様に、サーバの応答(通常は HTML ページ)も暗号化されずに送信されます。

インターネットで安全な通信を行う場合は、Web サーバ情報のアクセスまたはポストを行うために、HTTP Secure(HTTPS)プロトコルが使用されます。 HTTPS は認証と暗号化を使用して、クライアントとサーバの間を行き来する際にデータをセキュリティで保護できます。 HTTPS は、アプリケーション層とトランスポート層の間でのデータの受け渡しに関する追加の規則を指定します。 HTTPS は HTTP と同じクライアント要求/サーバ応答のプロセスを使用しますが、ネットワークで転送される前にデータ ストリームは Secure Socket Layer(SSL)を使用して暗号化されます。 トラフィックの暗号化と復号のために、HTTPS によりサーバ上で追加のロードおよび処理時間が発生します。