HTTPとは一言でいうと
HTTP(HyperText Transfer Protocol)とは、ブラウザとWebサーバーがページを受け渡す通信の約束事(プロトコル)です。あなたがURLを開くと、ブラウザが「このページをください」という要求(リクエスト)を送り、サーバーがHTMLや画像と結果番号(ステータスコード)を返します(レスポンス)。
この往復の形を理解すると、Webサーバーとはの受け取る側、SSLとはの暗号化、HTMLとはの中身が一本の線でつながります。私たちはIETFのRFC(RFC 9110〜9114など)とMDN Web DocsのHTTP解説を参考に、初めての方にも分かりやすくまとめました。
ポイント: HTTP自体は「運び方の約束」で、中身の文書はHTML、住所の解決はDNS、暗号化はTLSが担当します。分業で理解すると混乱しません。仕組みが不安なまま公開へ進みたい場合は、先にWebサイトの作り方で全体地図をつかむ方法も有効です。
HTTPの全体像:4ステップでつかむ往復の流れ
HTTPの全体像は、ブラウザとサーバーの往復運動として捉えると最も分かりやすいです。細部に入る前に、まず骨格を固めます。普段の閲覧では一瞬で終わる処理ですが、分解すると次の4段階になります。
- 住所解決(DNS): ブラウザがURLのドメイン名(例:
example.com)からサーバーのIPアドレスを調べます。詳細はDNSとはとドメインとはで解説しています。HTTPはこの解決が終わってから始まります。 - 要求(リクエスト): ブラウザがサーバーへ「GET /index.html をください」「ホスト名は example.com です」「対応言語は日本語です」といった情報を送ります。メソッド・パス・ヘッダーの3点セットが核です。
- 応答(レスポンス): サーバーが「200 OK(成功)」などの状態コードと一緒にHTML本体や画像を返します。失敗時は404(見つからない)や500(内部エラー)など番号で理由を示します。
- 解釈と表示: ブラウザが受け取ったHTMLを解釈し、追加で必要なCSS・画像・JavaScriptを再びHTTPで取りに行って画面を組み立てます。1ページの表示で数十回のHTTP通信が発生するのは普通のことです。
この流れを図にすると「ブラウザ →(リクエスト)→ サーバー →(レスポンス)→ ブラウザ →(追加取得)→ 完成」となります。HTTPは基本的に「要求が来たら返す」受動的な約束であり、通常のページ閲覧はすべてこの往復です。
また、HTTPは「ステートレス(状態を持たない)」と説明されます。1回ごとの要求が独立しており、サーバーが前回を自動的には覚えていないという意味です。ログイン維持には後述するCookieやセッションを積み増します。
- ブラウザが要求しサーバーが返す往復だと説明できる
- DNS解決→リクエスト→レスポンス→表示の順番を言える
- HTTPは運び方、HTMLは中身だと区別できる
- 1ページ表示で複数のHTTP通信が起きると知っている
HTTPリクエストを読み解く:メソッド・URL・ヘッダー
リクエストは3つの部品でできています。開発者ツールの「ネットワーク」タブを開くと実物を観察できます(F12→Networkで再読み込み)。404やフォーム不具合の切り分けで効きます。
メソッド:何をしたいかの動詞
代表的なメソッドを表にまとめます。入門段階ではGETとPOSTの区別が最重要です。
| メソッド | 意味 | 具体例 | 注意点 |
|---|---|---|---|
| GET | 取得してほしい | ページ表示、画像取得、検索結果表示 | URLに情報が露出する。取得専用に使う |
| POST | 送って処理してほしい | 問い合わせ送信、ログイン、投稿 | 本文(ボディ)に格納。更新系に使う |
| HEAD | 本体なしで存在・情報だけ確認 | リンク切れ調査、更新確認 | ボディを返さない点以外はGETと同様 |
| PUT | 置き換えてほしい | APIでの更新、ファイル置換 | 冪等(何度送っても同じ結果)が期待される |
| PATCH | 一部だけ直してほしい | プロフィールの一部更新 | PUTより部分的。APIで多用 |
| DELETE | 消してほしい | 投稿削除、APIのリソース削除 | 誤送防止のため確認設計が要る |
| OPTIONS | 対応方法を尋ねる | CORSの事前確認 | ブラウザが自動送信する場合がある |
たとえば検索フォームでGETを使うと検索語がURLに残り共有しやすくなります。一方パスワード送信にGETを使うと履歴に残るためPOSTが定石です。PHPとはのフォーム受付はこのPOSTの上に成り立っています。
URLとパス:どこにある何がほしいか
リクエスト行の例は GET /news/2026/index.html HTTP/1.1 のような形です。/news/2026/index.html がサーバー上の場所(パス)に相当します。公開後に404が出たら、このパスと実際のファイル配置のズレを疑います。ファイル名の大文字小文字(Photo.jpg と photo.jpg は別物)、階層の深さ(/img/ を付け忘れ)、拡張子(.html と .htm の混同)が三大原因です。詳しい直し方はHTMLの公開方法のエラー表でも扱います。
ヘッダー:付随する自己紹介カード
ヘッダーは要求に添える補足情報です。すべて覚える必要はありませんが、次の4つは見かけます。
Host: example.com: どのサイト宛てか。1台のサーバーで複数サイトを同居させるために必須です。独自ドメイン設定でドメインを結びつける理由がここにあります。User-Agent: Mozilla/5.0 ...: ブラウザやOSの名乗り。スマホとPCの出し分けや統計に使われます。Accept-Language: ja: 希望言語。日本語対応サイトの自動切替に関係します。Cookie: session=...: 前回サーバーが渡した整理券。再訪やログイン維持に使います。
実際の生リクエストは次のようなテキストです。ブラウザが裏側で送っている手紙の原文だと考えてください。
GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept-Language: ja-JP,ja;q=0.9
Connection: keep-alive
この例ではHTTP/1.1で /index.html を求めています。Connection: keep-alive は一度つないだ回線を使い回す指定で、複数ファイル取得の効率化に関係します。HTTP/2以降はこの使い回しがさらに高度になります。
HTTPレスポンスを読み解く:状態コード・ヘッダー・本体
サーバーからの返事も3部構成です。状態コード(数字3桁)、ヘッダー(補足)、本体(HTMLや画像)の順に返ります。初心者が最も恩恵を受けるのは状態コードの読み方です。
状態コード:結果番号の読み方
番号の先頭桁で大分類が分かります。すべて暗記する必要はなく、現場で出る頻度が高いものから押さえます。
| コード | 分類 | 意味 | 初動 |
|---|---|---|---|
| 200 | 成功 | 正常に取得できた | そのまま表示確認へ進む |
| 301 / 308 | 恒久的な引っ越し | 旧URLが新URLへ自動転送 | 新URLへブックマーク更新、検索評価の引継ぎを意識 |
| 302 / 307 | 一時的な転送 | 仮の移動先へ案内 | 一時的か恒久的かを見直す |
| 304 | 未変更 | キャッシュを使ってよい | 再取得しない正常動作。エラーではない |
| 400 | 要求の形式ミス | URLや送信内容の誤り | URL綴り・フォーム入力を見直す |
| 401 / 403 | 認証・権限 | ログイン要・閲覧禁止 | パスワード・公開範囲・パーミッション確認 |
| 404 | 見つからない | パス不一致・削除済み | ファイル名・置き場所・URL綴りを確認 |
| 500 | サーバー内部エラー | プログラムや設定の不具合 | PHPログ・.htaccess・権限を確認 |
| 502 / 503 | 中継・過負荷 | gateway異常・混雑・保守中 | 時間を置いて再試行、サーバー状態を確認 |
たとえば公開直後に404が出たら、アドレス欄とサーバー上のファイル名を一文字ずつ見比べます。500が出たら直前に触ったPHPや .htaccess を疑います。
生レスポンスの例も見ておきます。状態行とヘッダー、空行、本体の順です。
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 1256
Cache-Control: max-age=3600
Location: なし(転送時はここに新URLが入る)
<!DOCTYPE html>...(HTML本体が続く)
Content-Type は中身の種類(HTMLか画像か)と文字コードを示します。文字化けの原因の半分はここと meta charset の不一致です。Cache-Control は再利用(キャッシュ)の指示で、更新しても古い表示のままになる現象と関係します。開発者ツールで「Disable cache」にチェックして再読み込みすると切り分けできます。
ヘッダー実務:文字化け・混在・転送の3点
- 文字化け:
Content-TypeとHTML内の<meta charset>、保存時のUTF-8を三点一致させます。 - 混在(Mixed Content): HTTPSページ内で
http://の画像やCSSを呼ぶと警告が出ます。内部リンクはhttps://か相対パスに統一します。 - 転送(Redirect):
Location:で新URLへ誘導します。http→httpsやwww統一に使います。
HTTPSとの違いとなぜ常時HTTPSなのか
HTTPSはHTTPにTLS(旧称SSL)による暗号化をかぶせたものです。HTTPがはがきなら、HTTPSは封筒に入れた書留だと例えられます。違いを表で整理します。
| 観点 | HTTP | HTTPS |
|---|---|---|
| URLの始まり | http:// | https:// |
| 盗聴耐性 | 経路上で読み取り可能 | 暗号化され読み取り困難 |
| 改ざん耐性 | 書き換え検知が難しい | 検知と防止の仕組みあり |
| ブラウザ表示 | フォーム入力で警告される場合あり | 鍵マークで保護表示 |
| 必要物 | 特別な証明書は不要 | サーバー証明書の設置が必要 |
| 導入難易度(現在) | — | 無料SSLの普及で大きく低下 |
常時HTTPSが標準になった理由は3つあります。閲覧履歴そのものが保護対象になったこと、ブラウザがHTTPのフォームを警告表示すること、無料証明書の自動更新で導入の壁が下がったことです。新規サイトは最初からHTTPSで公開するのが現在の常識です。
FreeHostBoxでは無料SSLをご用意していますので、独自ドメイン持ち込み時も含めて常時HTTPS化できます。ぜひ無料プランでお試しください。有効化の順番はSSLとはを経て、SSL/HTTPS設定手順で確認してください。
補足として、HTTPS化しても「URLの綴りが正しいか」「ファイルが置かれているか」というHTTPレベルの問題は残ります。鍵マークが出ても404が出る場合は、本記事の状態コード表へ戻って切り分けます。
HTTP/1.1・HTTP/2・HTTP/3の違い
バージョンの違いは「運び方の効率化の歴史」として理解します。入門段階でプロトコルの内部実装を追う必要はありませんが、表示速度の相談で名前が出るため概要だけ押さえます。
| バージョン | 策定の目安 | 特徴 | 初学者の捉え方 |
|---|---|---|---|
| HTTP/1.1 | 長年の標準(RFC 9112等) | 1接続で順番に取得が基本。使い回しで改善 | 土台の考え方。まずここを理解する |
| HTTP/2 | 高速化世代(RFC 9113) | 多重化・圧縮で同時取得が得意 | 画像が多いページで効く。現在の主流の一つ |
| HTTP/3 | さらに新しい方式(RFC 9114、QUIC利用) | 途切れに強く遅延に強い設計 | 対応はサーバー・CDN側に依存。意識しなくてよい |
重要な注意点として、バージョンが上がれば自動的に速くなるわけではありません。体感速度はサーバー性能・画像の重さ・キャッシュ・PHPやDBの応答など複合要因で決まります。先に画像軽量化とキャッシュ見直しを行う方が効果的な場面が多くあります。全体像はWebサイトの作り方や無料レンタルサーバーとはと合わせて整理してください。
また、対応可否は利用するサーバーやCDNの実装に依存します。無料プランの内容は料金ページをご覧ください。分からなければ私たちがサポートしますので、まずは無料プランで実際に触って確かめてみてください。
# 応答ヘッダーを観察する最小コマンド(macOS/Linux、WindowsはWSLやGit Bashで実行)
curl -I https://example.com/
# -I はヘッダーのみ取得。HTTP/2対応時は HTTP/2 200 などと表示される
# 自分のサイトで試すと、Content-Type や Cache-Control の実物が確認できる
curl -I はヘッダーだけを取り寄せる観察コマンドです。HTTP/1.1 200 OK や content-type: text/html; charset=utf-8 がそのまま見えるため、本記事の解説との対応付けに最適です。Windowsの標準コマンドプロンプトでcurlが使えない場合は、ブラウザの開発者ツール(F12→Network→Headers)で同等の情報が見られます。
Cookie・キャッシュ・リダイレクトの基礎
HTTP本体の周辺には、実務で必ず出会う3つの仕組みがあります。いずれもRFCやMDNで定義・解説されている標準的な概念です。
Cookie(整理券): ステートレスなHTTPの上で「前回来た人」を覚えるための小さなメモです。サーバーが Set-Cookie: session=abc123 と渡し、ブラウザが次回以降 Cookie: session=abc123 と添えて送り返します。ログイン維持やカートの中身に使われます。注意点は、有効期限と公開範囲(どのパス・どのドメインで送るか)の設計です。安易に個人情報をそのまま格納せず、サーバー側のセッションと組み合わせるのが定石です。PHPとMySQLの連携に進むと、セッションとデータベースの関係が具体化します。
キャッシュ(再利用): 一度取ったファイルを手元に置き次回使い回す仕組みです。Cache-Control: max-age=3600 や ETag で制御します。「更新したのに古いまま」の原因にもなるため、公開後の確認では強制再読み込みやシークレットウィンドウが有効です。
リダイレクト(転送案内): 旧住所から新住所への案内板です。301 と Location: の組み合わせで恒久転送を示します。HTTPからHTTPSへの統一や独自ドメイン移行に使います。書式ミスで無限ループになるため変更前は必ずバックアップを取ります。
この3つは単独で覚えるより「ログインできない→Cookie」「更新が反映されない→キャッシュ」「旧URLが残る→リダイレクト」という困りごとと結びつけて覚えると定着します。
つまずき・誤解と次に読む記事
初心者がつまずく典型例を整理します。いずれも本記事の範囲で解決の糸口がつかめます。
- 誤解1「HTTPを全部覚えないと公開できない」: 必要ありません。まずWebサイトの作り方で1ページ公開し、404や混在警告が出たときに本記事へ戻る往復学習が最短です。最初に覚えるのは200・301・404だけで十分です。
- 誤解2「HTTPSは大企業や通販だけのもの」: 個人の学習サイトやポートフォリオも対象です。ブラウザ警告の回避と信頼確保のため、最初から常時HTTPSにします。FreeHostBoxでは無料SSLをご用意していますので、ぜひ無料プランでお試しください。
- 誤解3「HTTP/3にすれば必ず速くなる」: 単体では決まりません。画像肥大やキャッシュ不備が原因なら、バージョンより先にそちらを直します。重い画像をそのまま置かない、という基本が最優先です。
- つまずき1「404が直らない」: URL綴り→置き場所→大文字小文字の順に確認します。公開フォルダの考え方はWebサーバーとはとHTMLの公開方法で補強できます。
- つまずき2「更新が反映されない」: キャッシュか転送先の見間違いです。強制再読み込み、別ブラウザ確認、FTP転送ログの確認の3点で切り分けます。
- つまずき3「フォームが動かない」: GET/POSTの取り違え、HTTPS混在、PHP側の受付ミスのいずれかです。ブラウザの開発者ツールで送信先URLと状態コードを確認し、PHPとはとPHPの動かし方へ進みます。
公開前の最小チェックリスト
- URLが
https://で始まり鍵マークが出る(SSL/HTTPS設定手順で確認) - 存在しないURLで404、移行元URLで301/308が返ることを確認した
- 画像・CSSが
http://混在なしで読み込まれる - 開発者ツールで
Content-TypeのcharsetがUTF-8になっている - 更新後に強制再読み込みで最新表示になる
- スマホ回線でも極端に遅くない(巨大画像を置いていない)
実践への接続と次に読む記事
HTTPの理解は、公開作業と結びつけて初めて定着します。おすすめの順路は次の通りです。既存の内部リンクはすべて残した上で、関連の深い記事へ自然に橋渡しします。
- Webサーバーとは — 要求を受け取る側の仕組み。FTPとCDN、レンタルサーバーの位置づけを整理します。本記事のレスポンス側の実体です。
- HTMLとは — 運ばれてくる中身の正体。構造・CSS・PHPの分業を押さえます。
- ドメインとは — URLの住所の意味。Hostヘッダーやリダイレクト理解の土台になります。
- DNSとは — 住所解決の仕組み。浸透待ちや名前解決の失敗切り分けに使います。
- SSLとはとSSL/HTTPS設定手順 — 常時HTTPS化の概念と実手順。公開と同時に行います。
- Webサイトの作り方 — 企画から公開・改善までの全体地図。HTTP学習の戻り先になります。
- HTMLの公開方法 — FTPとファイルマネージャーでの具体的な置き方。404直しの実践編です。
- 無料レンタルサーバーとは — 公開場所の選び方。容量・PHP・独自ドメイン・広告有無の観点を整理します。
よくある質問と出典
公開前後に寄せられる質問を6問にまとめます。答えは本文の解説と対応しています。
Q. HTTPとHTTPSの違いは何ですか? A. HTTPSはHTTPをTLSで暗号化したものです。盗聴・改ざんを防ぎ、ブラウザ警告を避けられます。新規サイトは常時HTTPSが標準です。概念はSSLとは、手順はSSL/HTTPS設定手順で扱います。
Q. HTTPメソッドは何を覚えればよいですか? A. まずGET(取得)とPOST(送信)の区別です。HEADは存在確認、PUT・PATCH・DELETEはAPI更新系で使います。フォーム処理はPHPとはで具体化します。
Q. 404と500はどう切り分けますか? A. 404はURL・ファイル名・置き場所の不一致、500はプログラムや設定の不具合が起点です。404は綴りと配置、500は直前の変更点(PHP・.htaccess・権限)を確認します。
Q. HTTP/2やHTTP/3を意識する必要はありますか? A. 入門段階では不要です。対応はサーバー側に依存し、体感速度は画像軽量化やキャッシュの影響が大きくなります。まず公開とHTTPS化を優先してください。
Q. Cookieとキャッシュの違いは何ですか? A. Cookieは利用者識別の小さなメモ、キャッシュは取得済みファイルの再利用です。ログイン不具合はCookie、更新反映の遅れはキャッシュを疑います。
Q. 無料サーバーでもHTTPS化できますか? A. FreeHostBoxでは無料SSLをご用意していますので、無料サブドメインと独自ドメイン持ち込みのいずれでも常時HTTPS化が可能です。無料プランの内容は料金ページをご覧ください。分からなければ私たちがサポートします。
出典・対応バージョン
- IETF RFC 9110(HTTP Semantics)、RFC 9112(HTTP/1.1)、RFC 9113(HTTP/2)、RFC 9114(HTTP/3)、RFC 9111(Caching)
- MDN Web DocsのHTTP概要・メソッド・ステータスコード・ヘッダー解説、WHATWG関連文書
- 無料プランの内容は料金ページをご覧ください。分からなければ私たちがサポートします。まずは無料プランで実際に触って確かめてみてください。
よくある質問
HTTPとHTTPSの違いは?
HTTPSはHTTPをSSL/TLSで暗号化したものです。URLがhttps://で始まり、盗聴・改ざんを防ぎます。新規サイトは常時HTTPSが標準です。FreeHostBoxでは無料SSLをご用意していますので、ぜひ無料プランでお試しください。
HTTPは誰が決めている?
IETFがRFCとして仕様を定め、WHATWGやW3Cの文書、MDN Web Docsなどで解説されています。バージョンとしてHTTP/1.1、HTTP/2、HTTP/3があります。
HTTPメソッドとは?
リクエストの目的を示す動詞です。ページ取得のGET、送信のPOST、存在確認のHEADなどが代表例です。用途に応じて使い分けます。
ステータスコード404と500の違いは?
404はURL・ファイル名の間違いなどクライアント側で辿り着けない状態、500はサーバー側プログラムや設定の不具合です。切り分けの起点になります。
HTTPを知らなくてもサイト公開できる?
可能です。まずWebサイトの作り方で全体像をつかみ、公開後のトラブル時に本記事へ戻ると効率的です。入門段階では200・301・404の意味が分かれば十分です。
HTTP/2やHTTP/3に自分で切り替える必要はある?
初心者が個別に切り替える必要はありません。対応はサーバーやCDN側の設定に依存します。まずは画像軽量化やキャッシュなど足元の改善が効果的です。
次はHTMLを書いて公開してみる
仕組みが分かったら手を動かす番です。HTMLの基礎から無料公開まで進みましょう。