HTTPとHTTPSの基礎
リクエストとレスポンスの構造、TLSハンドシェイク、そしてHTTPSがセキュリティに重要な理由を理解します。
「HTTPとHTTPSの基礎」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
HTTPとは
HTTP(Hypertext Transfer Protocol)は、Web通信の基盤です。ブラウザーがサーバーにリソースを要求する方法と、サーバーが応答する方法を定義します。HTTPはステートレスであり、各リクエストは独立しています。
HTTPリクエストの構造
HTTPリクエストには次の要素があります:
- Method: GET、POST、PUT、DELETE、PATCH、OPTIONS
- URL: リソースのパス
- Headers: メタデータ(Content-Type、Authorization、User-Agent)
- Body: POST/PUTリクエストとともに送信するデータ
GET /api/users HTTP/1.1
Host: example.com
Authorization: Bearer eyJhbGc...HTTPレスポンスの構造
HTTPレスポンスには次の要素があります:
- Status code: 200 OK、301 Redirect、401 Unauthorized、403 Forbidden、404 Not Found、500 Server Error
- Headers: Content-Type、Set-Cookie、CORSヘッダー
- Body: HTML、JSON、その他のコンテンツ
HTTPメソッドとセキュリティ
HTTPメソッドと、それぞれのセキュリティ上の影響:
- GET — 読み取り専用にするべきです。URL内のパラメーターはログに記録されます
- POST — ボディでデータを送信します。これだけで安全になるわけではありません
- PUT/DELETE — 認証によって保護する必要があります
- OPTIONS — 許可されているメソッドを明らかにするため、設定ミスが露呈する可能性があります
HTTPSで追加されるもの
HTTPS = HTTP + TLS暗号化です。次の機能を提供します:
- 暗号化: 転送中のデータを暗号化します(機密性)
- 完全性: MACによって改ざんを検出します
- 認証: 証明書によってサーバーの身元を検証します
HTTPSがなければ、パスワードやセッショントークンを含むすべてのデータが、ネットワーク上の盗聴者から見える状態になります。
TLSハンドシェイクの概要
HTTPSサイトに接続すると:
- クライアントがサポートしている暗号スイートを送信します
- サーバーが証明書と選択した暗号方式を送信します
- クライアントが信頼された認証局(CA)に照らして証明書を検証します
- 鍵交換によって共有セッションキーを確立します
- 暗号化通信が開始されます
HTTPセキュリティヘッダー
重要なセキュリティレスポンスヘッダー:
- Strict-Transport-Security (HSTS) — HTTPSを強制します
- Content-Security-Policy (CSP) — 読み込むリソースを制御します
- X-Frame-Options — クリックジャッキングを防止します
- X-Content-Type-Options — MIMEスニッフィングを防止します
Cookieとセッション
HTTPはステートレスなので、セッションはCookieで管理されます。安全なCookie属性:
- HttpOnly — JavaScriptからアクセスできません(XSSによる窃取を防止します)
- Secure — HTTPS経由でのみ送信されます
- SameSite=Strict/Lax — CSRF攻撃を防止します
HTTPSでも安全とは限りません
HTTPSは通信チャネルのみを暗号化し、コンテンツは暗号化しません。フィッシングサイトはHTTPS(錠前アイコン)を使用しながら、悪意のあるコンテンツをホストできます。HTTPSが確認するのはサーバーの身元であり、サーバーの信頼性ではありません。
HTTP/2とHTTP/3
最新のHTTPバージョンでは、パフォーマンスが向上しています。
- HTTP/2 — 多重化、ヘッダー圧縮、TLS上でのサーバープッシュ
- HTTP/3 — QUIC(UDPベース)を使用して遅延を低減します。特にモバイル環境で効果的です
どちらもTLSが必要です。セキュリティ上の影響はHTTP/1.1と同様ですが、攻撃対象領域がわずかに変化します。
HTTPトラフィックの検査
HTTPを分析するためのツール:
- Burp Suite — リクエストとレスポンスを傍受・変更します
- curl — コマンドラインからリクエストを送信します
- Wireshark — 生のトラフィックをキャプチャします(HTTPは可視、HTTPSは暗号化されます)
curl -v https://example.com
curl -X POST -H "Content-Type: application/json" -d '{"user":"test"}' https://api.example.com/login確認問題:HTTPとHTTPS
JavaScriptからCookieにアクセスできないようにし、XSSによる窃取を防ぐHTTP Cookie属性はどれですか?
レッスンのまとめ
HTTPはウェブ通信の基盤です。HTTPSはTLSによる暗号化、完全性、サーバー認証を追加します。セキュリティヘッダーはウェブアプリケーションを強化します。CookieにはHttpOnly、Secure、SameSiteを付与する必要があります。HTTPSは通信チャネルを暗号化しますが、サイトの信頼性を保証するものではないことを覚えておいてください。
よくある質問
「HTTPとHTTPSの基礎」レッスンは無料ですか?
はい。「HTTPとHTTPSの基礎」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「HTTPとHTTPSの基礎」で何を学びますか?
リクエストとレスポンスの構造、TLSハンドシェイク、そしてHTTPSがセキュリティに重要な理由を理解します。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「HTTPとHTTPSの基礎」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- IPアドレスとサブネット
- TCPとUDP:使い分け
- DNS:ドメインがIPに解決される仕組み
- HTTPとHTTPSの基礎