「押さえておきたいWeb知識」で検索お願いします!

通信プロトコルのHTTPとは何かわかりやすく解説します!

インターネットが普及し、Webサイトを閲覧・公開することが一般的になった今、HTTPは私たちにとって最も身近な通信プロトコルとなりました。

URLの一部に「http」という記載がありますが、「http」はどのような意味、役割、仕組みを持っているのでしょうか?

この疑問を解消するために、この記事では通信プロトコルHTTPについて解説していきます。

通信プロトコルをもっと詳しく知りたい方は以下の記事もご覧下さい。

[必見!] 通信プロトコルとは? 種類(https等)を一覧でわかりやすく解説!

1.HTTPとは?

HTTPはHyperText Transfer Protocolの略で、クライアントとサーバーの間でハイパーテキストを転送するための通信プロトコルです。

HTTPの仕組みは、クライアントがサーバーにHTMLファイル等を要求し、サーバーがクライアントに要求されたHTMLファイル等を返すことでブラウザにWebページが表示されています。

クライアントがサーバーに要求することをリクエストと呼び、サーバーがクライアントに返答することをレスポンスと呼びます。

このようにクライアントとサーバーの2者間がやりとりを行うことで普段、私たちはWebページを閲覧できているのです。

HTTPにはステートレス性という特徴があります。

ステートレス性とは、過去のデータを処理結果に反映させない仕組みのことです。

つまり、サーバーはクライアントの過去の要求を管理しないので、同じリクエストをしても同じレスポンスがくる仕組みになっています。

ステートレス性のメリットはサーバーに過去のリクエストを保存しないので、サーバーに負担がかからない点です。

そのため、クライアントのリクエスト数が増えてもサーバーが多くのレスポンス処理を行うことができます。

一方、ステートレス性のデメリットはクライアントが毎回同じリクエストを行う場合、通信に無駄が生じてしまう点です。




2.HTTPメッセージとは?

次にHTTPはデータをどのように交換しているのかみていきましょう。

HTTPはデータをHTTPメッセージでデータ交換しています。

HTTPメッセージはクライアントとサーバーのデータ交換方法のことです。

クライアントがサーバーにリクエストする時のメッセージを「HTTPリクエスト」、サーバーがクライアントにレスポンスする時のメッセージを「HTTPレスポンス」と呼びます。

HTTPメッセージは複数行で構成されており、HTTPリクエストHTTPレスポンスで構成が異なります。

それぞれのHTTPメッセージの中身を見ていきましょう。

HTTPリクエスト

HTTPリクエストはリクエスト行、メッセージヘッダー、メッセージボディの3つの構成にわかれています。

リクエスト行

リクエスト行にはWebサーバーに依頼した処理情報(メソッド、URL、HTTPのバージョン)が記載されています。

メッセージヘッダー行

Webブラウザの情報、データのタイプ、圧縮方法、言語等が記載されています。

メッセージボディ行

WebブラウザがWebサーバーにデータを送りたい情報がある時、使用されます。

HTTPレスポンス

HTTPレスポンスはステータス行、メッセージヘッダー、メッセージボディの3つの構成にわかれています。

ステータス行

WebブラウザにWebサーバーでの処理結果を伝える情報が記載されています。

WebサーバーはWebブラウザにステータスコードという3桁の数字で処理結果を伝えます。

メッセージヘッダー行

Webサーバーのソフトウェア情報、データのタイプ、圧縮方法等が記載されている。

メッセージボディ行

Webブラウザに送るHTMLや画像等のデータが記載されており、Webブラウザはこれらのデータを読み取り、表示しています。




3.HTTPメソッドとは?

次にHTTPリクエストのリクエスト行に記載されるHTTPメソッドを詳しくみていきましょう。

クライアントからサーバーにどのような処理を行うかを定義したHTTPメソッドはHTTPリクエスト内のリクエスト行に記載されています。

HTTPメソッドの種類はHTTPのバージョンによって異なりますが、代表的なHTTPメソッドを紹介します。

リクエスト行、メッセージヘッダー、メッセージボディの3つの構成にわかれています。

HTTPメソッド名 用途
HEAD ヘッダーの情報を要求するメソッド
GET HTMLファイルや画像等を取得するメソッド
POST フォームに入力したデータをサーバーに転送するメソッド
DELETE データを削除するメソッド
CONNECT Webサーバーに接続するまでに別のサーバーを中継する場合に使用するメソッド
OPTIONS 利用できるメソッドを問い合わせるためのメソッド
TRACE クライアントとサーバーの経路をチェックするためのメソッド

HTTPメソッドの中でよく使用されるのが、GETメソッドとPOSTメソッドで、Webページを閲覧する時に使用されます。

Webページを取得する時にGETメソッドとPOSTメソッドのどちらも使用できますが、データの送信方法が異なります。

GETメソッドを使用する場合、URLの後ろに渡す値をつけてデータ送信するため、閲覧履歴に渡す値が残ってしまいます。

一方、POSTメソッドを使用する場合、メッセージボディに渡す値が入るため、閲覧履歴に渡す値が残ることはありません。

ユーザーID等の個人情報が渡す値に入っている場合、閲覧履歴に残らないPOSTメソッドが使用するといいでしょう。




4.ステータスコードとは?

次にHTTPレスポンスのステータス行に記載されているステータスコードをみていきましょう。

ステータスコードはWebブラウザからHTTPリクエストを要求すると、HTTP通信の結果をステータスコードでレスポンスするという仕組みになっています。

例えば、Webブラウザからの「Webサイトを閲覧したい」というHTTPリクエストに対して、Webサーバー「現在このサイトは表示できません」というHTTPレスポンスをステータスコードで返すといった具合です。

ステータスコードは3桁の数字で構成されており、処理内容に応じて、100番台から500番台まであります。

ステータスコードはHTTPレスポンスのステータス行に記載されています。

ステータスコードは100~510番まであり、役割が異なります。

100番台

HTTPリクエストを処理中であることを示しています。

200番台

HTTPリクエストを正常に処理したことを示しています。

300番台

HTTPリクエストを正常に処理するため、新しいURLへ転送させる等、追加の処理が必要であることを示しています。

400番台

HTTPリクエストを正常に処理できないことを示しています。

500番台

Webサーバーがエラーや高負荷状態で一時的に転送できないことを示しています。




5.入門的なWeb知識を習得したい方へ

最後まで読んで頂きまして、ありがとうございました。

httpはWebにまつわる様々な要素の一部です。

そのため、httpに関する知識だけでなく、Web全般の基礎的な知識を体系的に学ぶことでhttpの理解がもっと深まるかと思います。

そこでWeb全般の基礎的な知識を習得するのに「この一冊で全部わかるWeb技術の基本」という本がオススメです。

初学者がいきなりWebに関する専門書を読み始めると挫折することが多いです。

そこで途中で挫折せずに最後まで読み切れて、Webの全体像を把握するのに便利な一冊になっています。

この本は初めての方にも読みやすいように見開き1ページで文章と図を織り交ぜて端的に解説されています。

この本で全体像を理解してから専門書を読むと取り組みやすいかと思います。

もし、Webに関する入門的な知識を幅広く知りたいと思った方はこちらの本を是非読んでいただければと思います。




6.ポイント

ポイント

・HTTPはクライアントとサーバーでハイパーテキストを転送するための通信プロトコルです

・HTTPメッセージは複数行で構成されており、HTTPリクエストとHTTPレスポンスで構成が異なります

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です