MENU
  • このブログに関して
  • 特集アーカイブ
    • Windows更新情報
    • Windows11使いこなし
    • Windows 10使いこなし
    • macOS/iOS/iPadOS更新情報
    • macOS使いこなし
    • iOS使いこなし
    • Webブラウザ更新情報
  • ソフトウェア
  • Windows
  • Mac
  • iOS
  • セール
PCやMacの性能を100%発揮
ソフトアンテナ
  • このブログに関して
  • 特集アーカイブ
    • Windows更新情報
    • Windows11使いこなし
    • Windows 10使いこなし
    • macOS/iOS/iPadOS更新情報
    • macOS使いこなし
    • iOS使いこなし
    • Webブラウザ更新情報
  • ソフトウェア
  • Windows
  • Mac
  • iOS
  • セール
ソフトアンテナ
  • このブログに関して
  • 特集アーカイブ
    • Windows更新情報
    • Windows11使いこなし
    • Windows 10使いこなし
    • macOS/iOS/iPadOS更新情報
    • macOS使いこなし
    • iOS使いこなし
    • Webブラウザ更新情報
  • ソフトウェア
  • Windows
  • Mac
  • iOS
  • セール
  1. ホーム
  2. レビュー
  3. httpbin - HTTP通信のテストに便利なWebサービス&ソフト

httpbin - HTTP通信のテストに便利なWebサービス&ソフト

2018 3/04
レビュー
2018年3月4日 2018年3月4日
  • URLをコピーしました!

S 20180302 210355

Webプログラムの開発では、クライアンがどのようなパラメータを送信し、サーバーがどのようなレスポンスを返しているのか正確に理解している必要があります。

今回詳細する「httpbin」はこのようなHTTPリクエストとレスポンスの確認に便利なWebサービス&ソフトウェアです。Python製のオープンソースソフトウェアで、ローカルにインストールして使用することもできますが、基本的には以下の公式サイトを利用するのが簡単です。

  • http://httpbin.org
  • https://httpbin.org
  • http://eu.httpbin.org
  • https://eu.httpbin.org
  • https://hub.docker.com/r/kennethreitz/httpbin/

上記URLに対してさまざまなパラメータを追加したHTTPリクエストを送信すると、クライアントのIPアドレスやユーザーエージェント、送信されたパラメータなど、さまざまな情報がJSONデータとして帰ってくるのです。

以下具体的な使用方法を説明します。

目次

httpbinの使用方法

公式サイトのサンプルではコマンドラインツール「curl」を利用しています。

最もわかりやすいipアドレスを取得するサンプルは以下の通りです。URLの末尾に/ipを結合します。

$ curl http://httpbin.org/ip
{"origin": "24.127.96.129"}

クライアントのユーザーエージェントを取得する場合/useragentを追加します。

$ curl http://httpbin.org/user-agent
{"user-agent": "curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3"}

通常のGETリクエストのテストを行いたい場合/getを指定します。パラメータも指定可能で、戻り値の中に"args"として含まれていることが分かります。

$ curl https://httpbin.org/get?show_env=1
{
  "headers": {
    "Content-Length": "",
    "Accept-Language": "en-US,en;q=0.8",
    "Accept-Encoding": "gzip,deflate,sdch",
    "X-Forwarded-Port": "443",
    "X-Forwarded-For": "109.60.101.240",
    "Host": "httpbin.org",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "User-Agent": "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.83 Safari/535.11",
    "X-Request-Start": "1350053933441",
    "Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.3",
    "Connection": "keep-alive",
    "X-Forwarded-Proto": "https",
    "Cookie": "_gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1; _gauges_unique_hour=1",
    "Content-Type": ""
  },
  "args": {
    "show_env": "1"
  },
  "origin": "109.60.101.240",
  "url": "http://httpbin.org/get?show_env=1"
}

レスポンスのHTTPステータスコードを取得したい場合/status/:codeを指定します。curlの場合"-I"オプションを指定してレスポンスヘッダーを表示する必要があります。

$ curl -I http://httpbin.org/status/418
HTTP/1.1 418 I'M A TEAPOT
Server: nginx/0.7.67
Date: Mon, 13 Jun 2011 04:25:38 GMT
Connection: close
x-more-info: http://tools.ietf.org/html/rfc2324
Content-Length: 135

URLの末尾に/postを追加すればデータをPOSTすることもできます。curlの場合"-X POST -d "foo=bar"のようなオプションを利用します。戻り値の"form"の中にPOSTしたデータが含まれていることが分かります。

$ curl -X POST  -d "foo=bar" http://httpbin.org/post
{
  "args": {},
  "data": "",
  "files": {},
  "form": {
    "foo": "bar"
  },
  "headers": {
    "Accept": "*/*",
    "Connection": "close",
    "Content-Length": "7",
    "Content-Type": "application/x-www-form-urlencoded",
    "Host": "httpbin.org",
    "User-Agent": "curl/7.54.0"
  },
  "json": null,
  "origin": "109.60.101.240",
  "url": "http://httpbin.org/post"
}

その他/gzipでgzipでエンコードされたデータを返却するよう要求したり、/delay:nでレスポンスを遅らせたりなど、さまざな機能が利用可能です。詳細は公式サイトのドキュンとをご確認ください。

ローカルにインストールする場合

最初に述べた通りhttpbinはツールとしても提供されていて、自分の好みのサイトに展開して利用することも可能です。その場合以下のようにインストールします。

$ pip install httpbin
$ gunicorn httpbin:app

ローカル環境でテストしたい場合はこの方が便利かもしれません。

まとめ

httpbinを利用すれば通常は面倒なHTTP通信のテストを効率よく行うことができます。クライアントは特にcurlに限定されているわけではありませんので、自分好みのクライアントを利用すれば良いでしょう。当然ながらGET系のリクエストはWebブラウザを利用して発行することもできます。

S 20180302 205812

Web開発の用途以外にも、自分のIPアドレスやユーザーエージェント文字列を知りたい場合に便利にも利用できそうなサイトです。

レビュー
http
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
  • さまざまなランダムデータを生成できる開発者向けアプリ「Data Generator」が120円になった本日のアプリセールまとめ
  • Linux From Scratch 8.2がリリース - Linuxカーネル4.15.3を同梱

関連記事

  • AmazonでJUNNUP製のワイヤレストラックボール2022年NEWモデルを購入してみた。M575Sとの比較など
    2023年2月4日
  • stail.sh - 標準入力の最後のn行を継続的に表示する事ができるユーティリティ
    2023年2月2日
  • git-sim - 自分のリポジトリでGit操作可視化
    2023年1月31日
  • Carbonyl - ターミナル内で実行できるChromiumブラウザ
    2023年1月30日
  • PowerToys: PowerRename - 複数のファイルをまとめてリネームすることができるユーティリティ
    2023年1月27日
  • HiDock - ディスプレイ構成ごとにDockの設定を保存できるフリーソフト
    2023年1月26日
  • Lickable Menu Bar - 懐かしのメニューバースタイルを最新のmacOSで再現
    2023年1月20日
  • Homerow - macOSをキーボードだけでプロのように操作することができるユーティリティ
    2023年1月6日
スポンサーリンク
サイト内検索
特集アーカイブ
  • Windows更新情報
  • Windows11使いこなし
  • Windows 10使いこなし
  • macOS/iOS/iPadOS更新情報
  • macOS使いこなし
  • iOS使いこなし
  • Webブラウザ更新情報
Feedlyに登録

登録お願いします!

follow us in feedly

人気記事
  • Lp logo 3 1000x657 質問に対し流暢な日本語で回答してくれる「ChatGPT」が公開 - 試し方はこちら
  • Tiny11 Tiny11が爆誕 。極限まで無駄をそぎ落とした軽量Windows 11
  • S 20230205 102926 Microsoft Edgeに100%間違いな新機能が追加へ
  • Tiny11 軽量版のWindows 11、「Tiny11」がTPMやセキュアブート無しでなぜ安全なのかを開発者が説明
  • Pexels photo 2588757 Tiny11はぬるすぎる?Windows 11が196MBのRAMで動くことが確認
  • S 20221123 111042 Windows 11のタスクトレイ時計の秒表示を有効にする方法
  • S 20221206 204658 メニューバーから対話できる「ChatGPT for Mac」がリリース
  • 1675270404 windows 11 update prompt 1 回避不可能?Microsoft、フルスクリーンのWindows 11アップグレード通知を展開開始
  • S 20210923 114221 Windows 11で「管理ツール」を開く方法
  • S 20220219 172234 【Tips】iPhoneで撮影した特定の写真だけをiCloudに保存する方法
カテゴリー
タグ
Amazon Android App Apple applewatch appsale Chrome Edge Firefox Git Github Google iOS iPad ipados iPhone iPhone6 iphone7 iphone8 iTunes JavaScript Kindle Linux Mac MacBook MacBookPro macos Microsoft Nintendo OS X OSX Parallels Rails Ruby Sale Steam Swift Twitter VMware Windows windows7 windows10 windows11 Wine Yosemite
新着記事
  • 【2/16まで】Kindleストアで50%オフ!KADOKAWA お得で一気に揃う!読める!合本フェアが開催中
  • Mozilla、iOS用の非WebKit版Firefoxブラウザを開発中
  • Chrome 110がリリース - NVIDIA RTX超解像対応など
src256
ソフトアンテナを開発しています。

Windows/Mac/Linux全部使用中。ソフトウェア、ハードウェアいろいろなモノに興味があります。

好きなエディタはEmacs。好きな言語はRubyです。


srcw.net
  • プライバシーポリシー

© 2022 ソフトアンテナ

目次