httpbinとは?エンドポイント、使い方、代替サービス

httpbinとは? クライアントのテスト用のシンプルなHTTPリクエスト・レスポンスサービスです。その主要なエンドポイント、curlでの使い方、Dockerでの自己ホスト方法、そして最適なhttpbin代替サービスについて解説します。

INEZA Felin-Michel

INEZA Felin-Michel

3 7月 2026

httpbinとは?エンドポイント、使い方、代替サービス

Apidog エンタープライズ

オンプレミスデプロイ

SSO & RBAC

SOC 2 準拠

Apidog Enterpriseを見る

実物のバックエンドを用意せずにHTTPクライアントをテストする必要があったなら、おそらくhttpbinを使ったことがあるでしょう。これは、あなたのリクエストをそのまま返す小さなウェブサービスで、コードが何を送信したかを正確に確認できます。そのため、ヘッダーのデバッグ、クライアントが500エラーをどのように処理するかをチェックすること、認証トークンが実際にリクエストに含まれているかを確認するのに最適です。生のcurlコマンドから、Apidogのようなフル機能のクライアントまで、あらゆるツールをこれに接続できます。このプロジェクトはhttpbin.orgで公開されており、ISCライセンスの下でオープンソースとして提供されています。

ボタン

httpbinとは?

httpbinはHTTPリクエスト・レスポンスサービスです。リクエストを送信すると、そのリクエストのJSON記述を返します。それ以上でもそれ以下でもありません。人気のPython requestsライブラリの開発者であるKenneth Reitzによって作成され、PythonとFlaskで書かれています。

その価値はシンプルさにあります。例えば、HTTPクライアントがUser-Agentヘッダーを正しく設定しているかを知りたいとします。https://httpbin.org/headersにアクセスすると、サーバーが受け取ったすべてのヘッダーがレスポンスにリストされます。データベースもログインも設定も不要です。あなた自身のリクエストのきれいな鏡像が得られます。

httpbin.orgはパブリックインスタンスであり、手軽なチェックに便利です。無料の共有サービスであるため、遅くなったり、一時的に利用できなくなることもあります。メンテナンスは長年にわたって変化しており、コードは現在postmanlabs/httpbinのGitHubリポジトリに置かれており、Kongのようなコミュニティのフォークも存在します。頻繁に実行するものであれば、セルフホスティングの方が安全な選択肢です。詳細については以下で説明します。

httpbinの主要なエンドポイント

httpbinは、それぞれ特定の種類のテストを目的とした一連のエンドポイントを公開しています。ここでは、最もよく使用するものをご紹介します。

エンドポイント 機能
/get GETリクエストのクエリ引数、ヘッダー、発信元IPを返します
/post POSTしたフォームデータ、JSONボディ、ヘッダーを返します
/put, /patch, /delete 他のHTTPメソッドについても同様です
/status/{codes} /status/404/status/503のように、指定したステータスコードを返します
/headers サーバーが認識したリクエストヘッダーのみを返します
/ip あなたの発信元IPアドレスを返します
/user-agent クライアントが送信したUser-Agent文字列を返します
/delay/{n} タイムアウトテストのために、応答する前にn秒間待機します(最大10秒)
/basic-auth/{user}/{passwd} 一致するBasic認証クレデンシャルを送信した場合にのみ200を返します
/bearer Authorizationヘッダー内のBearerトークンをチェックします
/redirect/{n} リダイレクト処理のテストのために、n回のリダイレクトを介して送信します
/cookies クライアントが送信したクッキーを返します
/uuid ランダムなUUIDを返します
/anything 使用するメソッドに関わらず、リクエストに関するすべてを返します

/status/{codes}/delay/{n}エンドポイントは、ここでの隠れた功労者です。これらを使用すると、実際のAPIに対してトリガーするのが難しいエラーパスや遅い応答を意図的に発生させることができます。エコーではなく、偽のレスポンスボディを生成したい場合は、httpbinをテストデータ用の偽APIと組み合わせることを検討してください。

httpbinを使ってクライアントをテストする方法

httpbinを試す最も速い方法はcurlを使うことです。クエリパラメータを含むGETリクエストを送信します。

curl "https://httpbin.org/get?tool=apidog&check=headers"

args、サーバーが受け取ったheaders、そしてあなたのorigin IPを示すJSONオブジェクトが返されます。これにより、クライアントが期待通りのものを送信したことを確認できます。

コードがPOSTボディをどのように処理するかをテストするには、JSONを送信します。

curl -X POST "https://httpbin.org/post" \
  -H "Content-Type: application/json" \
  -d '{"name": "widget", "qty": 3}'

httpbinは解析されたjson、生のdata、そしてヘッダーをエコーバックするため、Content-Typeとペイロードが無傷で通過したことを確認できます。

次に、エラーを強制してリトライロジックをテストします。

curl -i "https://httpbin.org/status/503"

実際の503 Service Unavailableレスポンスが返されます。クライアントのエラー処理をこれに適用し、リトライするか、適切に失敗することを確認してください。/delay/5に置き換えて、遅いエンドポイントをシミュレートし、タイムアウト設定を確認します。

ターミナルに留まる必要はありません。どのRESTクライアントでもこれらの同じURLにアクセスできます。グラフィカルなワークフローを好む場合は、https://httpbin.org/getApidogに貼り付け、リクエストを送信し、構文ハイライト、保存された履歴、環境変数でレスポンスを検査します。これは、環境間でレスポンスを比較したり、チームメイトとテストを共有したい場合に便利です。ターミナルを重視した設定については、これらのTUI REST APIクライアントを参照してください。

Dockerでhttpbinをセルフホストする

公開されているhttpbin.orgインスタンスは、一度限りのチェックには問題ありませんが、必要なときにレート制限されたり、ダウンしたりする可能性があります。独自のコピーを実行することでこれを解決し、テストトラフィックをプライベートに保ちます。公式のDockerイメージを使えば、これは2つのコマンドで実行できます。

イメージをプルして実行します。

docker pull kennethreitz/httpbin
docker run -p 80:80 kennethreitz/httpbin

サービスは現在ポート80でリッスンしています。http://localhost/getにアクセスすると、パブリックサイトと同じ動作が得られ、ネットワーク遅延や共有レート制限もありません。これは、信頼性が重要であり、外部サービスに依存したくないCIパイプラインで望ましい設定です。このイメージはDocker Hubでkennethreitz/httpbinとして公開されています

マシン上でポート80が使用されている場合は、別のホストポートをマッピングします。例えば、docker run -p 8080:80 kennethreitz/httpbinと実行し、http://localhost:8080/getを使用します。

httpbinの代替

httpbinは一つのことを得意としていますが、唯一の選択肢ではなく、完全なテストプラットフォームでもありません。必要に応じて、正直な代替案をいくつかご紹介します。

Postman Echo. httpbinと同じ精神でPostmanが運営するホスト型エコーサービスです。https://postman-echo.com/getにアクセスすると、リクエストがミラーリングされて返されます。GET、POST、認証、およびユーティリティエンドポイントをカバーしています。全リストについてはPostman Echoのドキュメントを参照してください。httpbin.orgがダウンしている場合、Echoは堅実な代替手段となります。

セルフホスト型httpbin. 上記で示したように、Dockerイメージを実行すると、全く同じエンドポイントを完全に制御でき、共有制限もありません。これは、プライベートネットワーク内やCIジョブでhttpbinの動作が必要な場合に最適な選択肢です。

モックサービス. httpbinはリクエストをエコーしますが、現実的なドメインデータを返すわけではありません。偽の、しかし構造化されたレスポンス(ユーザーリスト、注文オブジェクト、ページネーションされた結果など)が必要な場合は、代わりにモックサーバーを利用してください。Apidogには、スキーマから現実的なレスポンスを生成するスマートモック機能が組み込まれており、バックエンドが存在する前にフロントエンドがエンドポイントに対して開発を進めることができます。

クライアントおよびテスト層としてのApidog. httpbinはリクエストを送信するターゲットです。Apidogはリクエストを送信するためのツールです。これは完全なAPIクライアントであり、テストプラットフォームです。エンドポイントを設計し、リクエストを送信し、アサーションを記述し、リクエストをシナリオに連結し、CIで実行できます。httpbinをApidogで利用することも、あるいはhttpbinでは物足りなくなったときにApidogに置き換えることも可能です。この二つは同等ではありません。httpbinは小さなサービスであり、Apidogはそれを取り巻くワークベンチです。アドホックなcurl呼び出しから、保存して繰り返し実行できるテストへと移行する準備ができたとき、Apidogは既存のリクエストをインポートし、アサーションを追加することを可能にします。インストール不要なオプションのより広範な調査については、これらの無料オンラインAPIテストツールを参照してください。

よくある質問

httpbinは無料で使えますか? はい、使えます。公開されているhttpbin.orgインスタンスは無料で、アカウントは不要です。ソースコードはISCライセンスの下でオープンソースなので、費用なしで自分で実行することもできます。

httpbinはまだメンテナンスされていますか? コードベースはpostmanlabs/httpbin GitHubリポジリにあり、断続的ではありますが、ある程度の継続的な関心を受けています。httpbin.orgは不安定になることがあるため、多くのチームは重要な用途のためにセルフホストされたDockerコピーを固定して使用しています。

httpbinを使ってWebhookをテストできますか? いいえ、あまりできません。httpbinはあなたが送信したリクエストをエコーしますが、サードパーティからのイベントを受信してローカルマシンに転送することはありません。そのためには、専用のトンネリングまたは検査サービスを使用してください。詳細については、ローカルホストAPIとWebhookのテストに関するこのガイドと、Webhookの仕組みに関する入門記事を参照してください。

httpbinとPostman Echoの違いは何ですか? どちらもほぼ同じことを行います。HTTPリクエストをJSONとしてエコーバックします。httpbinはオリジナルのオープンソースPythonおよびFlaskサービスであり、Postman EchoはPostmanが提供するホスト型サービスです。稼働しており、アクセス可能な方を選択してください。

httpbinでエラー処理をテストできますか? はい、できます。/status/{code}を使用して、/status/500/status/429のような任意のステータスコードを強制し、/delay/{n}を使用して遅い応答をシミュレートできます。これは、クライアントのリトライおよびタイムアウトロジックを試す最もクリーンな方法です。

まとめ

httpbinは小さく、鋭いツールです。HTTPクライアントをhttpbinに向け、リクエストがそのまま返されるのを確認します。/get/postを使って送信内容を確認し、/status/delayを使ってエラーパスを強制し、Dockerイメージを使ってCIでプライベートコピーを実行します。エコー以上のものが必要な場合は、現実的なモック、保存されたテストスイート、およびアサーションを利用してください。

そこで、フルプラットフォームが真価を発揮します。Apidogは、httpbinにアクセスするためのAPIクライアント、それを置き換えるスマートモック、そして検証した動作を確実にする自動テストを提供します。Apidogをダウンロードして、httpbinでの素早いチェックを繰り返し可能なテストに変えましょう。

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる