HTTPとは?仕組みの基本からHTTPSまで徹底解説
この記事では、World Wide Webがどのような仕組みで動いているのかを、基礎レベルからわかりやすく解説します。
その中核となる技術がHTTP(Hypertext Transfer Protocol:ハイパーテキスト転送プロトコル)です。HTTPは、私たちがWebを閲覧する際に使われる通信プロトコルです。
基本的な流れとしては、Webサイトにアクセスすると、ブラウザがサーバーに対してHTTPリクエストを送信します。するとサーバーは画像・動画・HTMLなどのリソースをレスポンスとして返し、ブラウザがそれを画面に表示します。
これがHTTPの「メッセージベースのモデル」です。すべてのHTTP通信は、必ずリクエストとレスポンスのペアで構成されます。
そして、HTTPは本質的にステートレス(状態を持たない)なプロトコルです。
ステートレスとは、すべてのリクエストが互いに独立していることを意味します。つまり、ブラウザからの各リクエストには、サーバーが処理を完了するために必要な情報がすべて含まれていなければなりません。そのため、メッセージベースモデルにおける各トランザクションは、他のトランザクションとは切り離されて個別に処理されます。
URL(Uniform Resource Locator)とは
URLは、おそらくWebにおいて最もよく知られた概念であり、同時に最も重要で有用な概念の一つです。URLとは、Web上のリソースを識別するための「Webアドレス」のことです。
Webという考え方は「リソース」を中心に構築されています。誕生当初からWebはテキストやHTMLファイル、ドキュメント、画像などを共有するプラットフォームでした。つまり、Webはリソースの集合体と考えることができます。

URLの構成要素
プロトコル(スキーム) — 最も一般的なのはHTTP(または暗号化されたHTTPS)です。
その他の代表的なプロトコルには以下のようなものがあります。
- FTP(File Transfer Protocol)— ネットワーク上でクライアントとサーバーの間でファイルを転送するための標準プロトコル。
- SMTP(Simple Mail Transfer Protocol)— メール送信のための標準プロトコル。
ドメイン — リソースが配置されているIPアドレスを識別するための名前です。
パス — サーバー上でのリソースの場所を指定します。あなたが今この記事を読んでいるデバイス上のファイルパスと同じ考え方です(例:/search/cars/VWBeetle.pdf や C:/my cars/VWBeetle.pdf)。
パラメータ — サーバー上のリソースを識別したり絞り込んだりするために使われる追加データです。
補足: HTTPについて調べていると、「URI(Uniform Resource Identifier)」という用語に出会うことがあります。URIはURLの代わりに使われることもありますが、主に正式な仕様書の中か、少し詳しそうに見せたい人によって使われることが多いようです。:)
HTTPリクエスト
HTTPでは、すべてのリクエストにURLが必要です。さらに、リクエストには「メソッド」も必要になります。主要なHTTPメソッドは次の4つです。
- GET
- PUT
- POST
- DELETE
これらのメソッドについては、後述の「HTTPメソッド」セクションで詳しく説明します。
これらのメソッドは、それぞれ次の操作に対応しています。
- 読み取り(read)
- 更新(update)
- 作成(create)
- 削除(delete)
すべてのHTTPメッセージは、1つ以上のヘッダーと、任意のメッセージボディで構成されます。ボディには、リクエストとともに送信されるデータ、またはレスポンスとして受け取るデータが格納されます。
リクエストの最初の行
HTTPリクエストの先頭行には、3つの要素が含まれます。
例:
- GET /adds/search-result?item=vw+beetle HTTP/1.1
URLに「?」が含まれている場合、それはクエリ(問い合わせ)を意味し、要求するリソースのパラメータを送信しています。
- 1つ目:メソッド — 使用するHTTPメソッドを示します。最もよく使われるのはGETメソッドです。GETはWebサーバーからリソースを取得するメソッドで、メッセージボディを持たないため、ヘッダー以降にデータは不要です。
- 2つ目:リクエストURL — 要求するリソースのアドレスです。
- 3つ目:HTTPバージョン — 使用しているHTTPのバージョンです。多くのブラウザではバージョン1.1が主流ですが、現在は2.0への移行が進んでいます。
リクエストで使われるその他のヘッダー
Refererヘッダー — リクエストの発生源となったURLを伝えます。
User-Agentヘッダー — リクエストを生成したブラウザに関する追加情報です。
Hostヘッダー — ホスト名を一意に識別します。複数のWebサイトが同じサーバーでホストされている場合に必要となります。
Cookieヘッダー — クライアント側の追加パラメータをサーバーへ送信します。
HTTPレスポンス
HTTPリクエストと同様に、HTTPレスポンスも3つの要素で構成されます。
例:
HTTP/1.1 200 OK
- 1つ目: 使用されているHTTPのバージョン。
- 2つ目: リクエスト結果を表す数値コード(ステータスコード)。
- 3つ目: 2つ目の数値コードに対するテキストによる説明。
レスポンスで使われるその他の要素
Serverヘッダー — 使用されているWebサーバーソフトウェアの情報です。
Set-Cookieヘッダー — ブラウザへCookieを発行します。
メッセージボディ — HTTPレスポンスにはメッセージボディが含まれるのが一般的です。
Content-Lengthヘッダー — メッセージボディのサイズをバイト単位で示します。
HTTPメソッド
最もよく使われるメソッドはGETとPOSTですが、それ以外にもいくつか存在します。
GET — 指定したリソースからデータを取得するメソッドです。データは一切変更されず、GETリクエストはリソースの状態を変えません。
POST — サーバーへデータを送信し、新しいリソースを作成するメソッドです。
PUT — リクエストボディの内容を使って、サーバー上の既存リソースを更新するメソッドです。「編集」操作とイメージするとよいでしょう。
HEAD — GETと同じ使い方をしますが、レスポンスにボディが含まれない点が異なります。ヘッダーはGETの場合と同じものが返されます。実際にGETリクエストを送る前に、リソースが存在するかどうかを確認したいときに使います。
TRACE — 診断目的で使用するメソッドです。レスポンスのボディには、受信したリクエストメッセージの内容がそのまま格納されます。
OPTIONS — 対象リソースで利用可能な通信オプション(HTTPメソッド)を確認するためのメソッドです。
PATCH — リソースに対して部分的な変更を適用するメソッドです。
DELETE — 指定されたリソースを削除するメソッドです。
RESTとは
REST(Representational State Transfer)は、リクエストとレスポンスがシステムリソースの現在の状態を表現するアーキテクチャスタイルです。
従来の書き方:
- https://carapp.com/search?make=wv&model=beetle
RESTスタイルの書き方:
- https://carapp.com/search/vw/beetle
RESTについてさらに詳しく知りたい方は、関連ドキュメントを参照してみてください。
HTTPヘッダー
リクエスト/レスポンスの構造は、主に次の3つの要素で構成されています。
- 1行目(リクエストライン/ステータスライン)
- ヘッダー
- ボディ(コンテンツ)
1行目についてはリクエストとレスポンスのセクションで、ボディについてもすでに触れました。ここではHTTPヘッダーについて説明します。
HTTPヘッダーは1行目の後に追加され、「名前:値」という形式のコロン区切りのペアで定義されます。ヘッダーは、リクエストやレスポンスに追加のパラメータを付与するために使われます。
前述のとおり、メッセージボディには、リクエストとともに送信するデータ、またはレスポンスとともに受け取るデータが格納されます。
ヘッダーにはさまざまな種類があり、用途に応じて大きく4つのカテゴリに分類されます。
- 一般ヘッダー(General header) — リクエストとレスポンスの両方で使用でき、やり取りされるデータ本体に依存しないヘッダー。
- リクエストヘッダー(Request header) — 要求するデータのパラメータや、リクエスト元クライアントに関する重要な情報を定義するヘッダー。
- レスポンスヘッダー(Response header) — 受け取るレスポンスに関する情報を含むヘッダー。
- エンティティヘッダー(Entity header) — メッセージボディを構成するコンテンツを記述するヘッダー。

HTTPステータスコード
Webを閲覧していると、「404エラー:ページが見つかりません」や「500エラー:サーバーが応答しません」といったページを目にしたことがあるでしょう。
これらはHTTPステータスコードです。
すべてのHTTPレスポンスメッセージは、1行目にステータスコードを含み、リクエストの結果を伝えます。

ステータスコードは、先頭の数字によって5つのグループに分類されます。
- 1xx — 情報提供(Informational)。
- 2xx — リクエスト成功。
- 3xx — 別のリソースへのリダイレクト。
- 4xx — リクエストに何らかのエラーがある。
- 5xx — サーバーがリクエストの処理中にエラーに遭遇した。
代表的なコードとしては、200(OK)、301(恒久的な移動)、404(Not Found)、500(Internal Server Error)などがあります。詳細な一覧はMDN Web Docsなどの公式リファレンスで確認できます。
HTTPS(Hypertext Transfer Protocol Secure)とは
HTTPの安全なバージョンがHTTPS(Hypertext Transfer Protocol Secure)です。HTTPSは、ブラウザ(クライアント)とWebサイト(サーバー)間の通信を暗号化します。
HTTPSでは、通信プロトコルがTLS(Transport Layer Security)またはSSL(Secure Sockets Layer)によって暗号化されます。
そのため、このプロトコルは「HTTP over TLS」や「HTTP over SSL」と呼ばれることもあります。
TLSとSSLはどちらも非対称暗号方式を使用します。非対称暗号方式では、公開鍵(暗号化キー)と秘密鍵(復号キー)を使ってメッセージを暗号化します。
公開鍵は誰でも使ってメッセージを暗号化できます。しかし秘密鍵は秘匿されており、意図された受信者だけがメッセージを復号できる仕組みです。

SSL/TLSハンドシェイク
WebサイトへのHTTPS接続を要求すると、WebサイトはSSL証明書をブラウザへ送信します。このようにブラウザとWebサイトが通信を開始するプロセスを「SSL/TLSハンドシェイク」と呼びます。
SSL/TLSハンドシェイクでは、一連の手順を通じてブラウザとWebサイトが互いを検証し、SSL/TLSトンネルを通じた通信を開始します。
お気づきかもしれませんが、HTTPS接続で信頼された安全なトンネルが確立されると、ブラウザのアドレスバーに緑色の鍵アイコン(錠前アイコン)が表示されます。

HTTPSのメリット
HTTPSの主なメリットは以下のとおりです。
- クレジットカード番号などの顧客情報や機密データが暗号化され、盗聴されません。
- 訪問者は、あなたが登録された事業者でありドメインの正当な所有者であることを確認できます。
- ユーザーはHTTPS化されていないサイトを避ける傾向にあるため、HTTPSを使用しているサイトは信頼され、購入につながりやすくなります。
最後までお読みいただきありがとうございました。この記事が、HTTPの基本を理解する助けになれば幸いです。
-
マルウェアとは?知っておくべき10の種類と感染を防ぐ7つの対策
コンピュータは私たちの生活を大きく便利にしましたが、便利さの裏には常にリスクが潜んでいます。技術の発展とともに、サイバー脅威もより強力かつ蔓延するものとなっています。現在、マルウェアによる標的型攻撃は10億件を超え、その危険性はピークに達しています。パソコンの不調から金銭的な損失まで、マルウェアは意図的にさまざまな被害をもたらしているのです。予防策を講じることで安全性を高めることはできますが、100%の保証を得るのは難しいのが現状です。そこで本記事では、マルウェアについて知っておくべきあらゆる情報を徹底的に解説します。マルウェアとは?マルウェア(malware)は、「malicious(悪意の
-
Wi-Fi 6(802.11ax)とは?特徴・メリット・導入のポイントを徹底解説
テクノロジーの世界では毎年のように新しい驚きが登場しますが、その中でも特に注目すべき存在が「Wi-Fi 6」です。Wi-Fi 6は次世代の無線通信規格で、正式名称は「802.11ax」。従来のWi-Fiに比べて通信速度と性能が大幅に向上しており、特に多くの機器が接続される混雑した環境でこそ真価を発揮します。スマートフォンやタブレット、PCなどデジタル機器が生活に深く浸透するほど、この新世代Wi-Fiの存在は大きな朗報となるでしょう。また、Wi-Fi 6では新しい命名規則が採用され、デバイス上に「Wi-Fi 5」「Wi-Fi 6」といったバージョン番号が表示されるようになりました。これにより、ど