HTTP

API | IT用語集

この用語をシェア

HTTPとは

HTTP(HyperText Transfer Protocol)は、WebブラウザとWebサーバー間で情報をやり取りするためのプロトコルです。World Wide Web(WWW)の基盤となる技術であり、WebページやAPIの通信に使用されます。

主要な特徴

  • ステートレス:各リクエストが独立しており、前のリクエストの状態を保持しません
  • テキストベース:人間が読める形式でメッセージが構成されています
  • リクエスト・レスポンス型:クライアントからの要求に対してサーバーが応答します
  • コネクションレス:通信後は接続を切断します(HTTP/1.1では持続的接続も可能)

HTTPメソッド

メソッド 目的 説明
GET データの取得 リソースの取得、冪等性あり
POST データの送信 新しいリソースの作成
PUT データの更新 リソースの置き換え、冪等性あり
DELETE データの削除 リソースの削除、冪等性あり
PATCH 部分的な更新 リソースの一部を更新
HEAD ヘッダーの取得 レスポンスヘッダーのみ取得

HTTPステータスコード

分類 範囲 代表例 説明
情報レスポンス 1xx 100 Continue リクエストの継続処理
成功レスポンス 2xx 200 OK, 201 Created リクエストが正常に処理された
リダイレクト 3xx 301 Moved Permanently 追加のアクションが必要
クライアントエラー 4xx 400 Bad Request, 404 Not Found クライアント側のエラー
サーバーエラー 5xx 500 Internal Server Error サーバー側のエラー

HTTPヘッダー

よく使用されるリクエストヘッダー

  • Content-Type:送信データの形式を指定
  • Authorization:認証情報を含む
  • User-Agent:クライアントソフトウェアの情報
  • Accept:受け入れ可能なレスポンス形式
  • Cache-Control:キャッシュ制御

よく使用されるレスポンスヘッダー

  • Content-Type:レスポンスデータの形式
  • Content-Length:レスポンスデータのサイズ
  • Set-Cookie:クッキーの設定
  • Location:リダイレクト先のURL
  • Access-Control-Allow-Origin:CORS設定

HTTPリクエストの例

GET /api/users/123 HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

HTTPレスポンスの例

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 156
Cache-Control: no-cache

{
  "id": 123,
  "name": "田中太郎",
  "email": "tanaka@example.com",
  "created_at": "2025-01-01T00:00:00Z"
}

HTTPのバージョン

HTTP/1.1

  • 持続的接続(Keep-Alive)
  • パイプライン化
  • チャンク転送エンコーディング

HTTP/2

  • バイナリプロトコル
  • 多重化(Multiplexing)
  • サーバープッシュ
  • ヘッダー圧縮

HTTP/3

  • QUIC(Quick UDP Internet Connections)ベース
  • 接続の高速化
  • パケットロス耐性の向上

セキュリティ

HTTPS

HTTPSはHTTP over SSL/TLSの略で、HTTPの通信をSSL/TLSで暗号化した安全な通信プロトコルです。

主要なセキュリティ機能

  • 暗号化:通信内容の保護
  • 認証:サーバーの正当性確認
  • 改ざん検知:データの完全性保証

実装例

JavaScript(Fetch API)

// GET リクエスト
fetch('/api/users/123')
  .then(response => response.json())
  .then(data => console.log(data));

// POST リクエスト
fetch('/api/users', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ' + token
  },
  body: JSON.stringify({
    name: '田中太郎',
    email: 'tanaka@example.com'
  })
})
.then(response => response.json())
.then(data => console.log(data));

Node.js(Express)

const express = require('express');
const app = express();

app.use(express.json());

// GET エンドポイント
app.get('/api/users/:id', (req, res) => {
  const userId = req.params.id;
  // ユーザー情報を取得
  res.json({ id: userId, name: '田中太郎' });
});

// POST エンドポイント
app.post('/api/users', (req, res) => {
  const { name, email } = req.body;
  // ユーザーを作成
  res.status(201).json({ id: 123, name, email });
});

app.listen(3000, () => {
  console.log('Server running on port 3000');
});

HTTPの利点

  • シンプルさ:理解しやすい構造
  • 拡張性:新しい機能の追加が容易
  • 汎用性:様々なアプリケーションに対応
  • 標準化:RFC仕様として標準化

関連技術

  • REST API:RESTful Webサービスでの HTTP活用
  • GraphQL:HTTPベースのクエリ言語
  • WebSocket:HTTP上でのリアルタイム通信
  • OAuth:HTTP認証プロトコル
  • CORS:クロスオリジンリソース共有

関連Webサイト

この用語についてもっと詳しく

HTTPに関するご質問や、システム導入のご相談など、お気軽にお問い合わせください。

カテゴリ

API IT用語集