Webhook リクエスト インスペクター

Webhook メソッド、ヘッダー、本文を貼り付けてリクエストを検査し、コピー可能なテスト コマンドを構築します。

Webhook リクエスト
Name: value 形式の 1 行に 1 つのヘッダー。
サーバー側で解析する前にキャプチャされた正確な生の本文を貼り付けます。
準備完了。キャプチャした Webhook リクエストを貼り付けます。
フォーマットされた本体
この出力を確認するにはリクエストを調べてください。
署名フィールド
この出力を確認するにはリクエストを調べてください。

署名フィールドが存在するだけでは、リクエストが本物であるとは証明されません。実際の検証には、送信元の署名ルール、シークレットまたはキー、および元のリクエストのバイトデータが必要です。

ローカル cURL テスト
この出力を確認するにはリクエストを調べてください。

貼り付けたリクエストはブラウザーに残ります。 BroBroGo はアップロードまたは保存しません。

よくある質問

どの Webhook 本体形式を検査できますか?

JSON および URL エンコードされたフォーム本文が検出され、フォーマットされます。他の本文はプレーン テキストのままであるため、ツールは XML、マルチパート、またはバイナリ コンテンツを推測しません。

署名フィールドが見つかると、リクエストが本物であることが証明されますか?

いいえ。このツールは、署名と関連するタイムスタンプ ヘッダーのみを表示します。実際の検証には、送信者の正確な署名ルール、秘密鍵または公開鍵、および元のリクエスト バイトが必要です。

このページはライブ Webhook コールバックを受信できますか?

いいえ。キャプチャしたリクエストを検査のためにここに貼り付けます。このページは、パブリック エンドポイントの作成、コールバックの受信、生成されたテスト リクエストの送信を行いません。

Webhookリクエストの構造とヘッダーの役割

Webhookは、システム間でリアルタイムにイベントデータを伝送するための重要な仕組みです。送信元から送られてくるWebhookリクエストは、HTTPメソッド、ヘッダー、そしてリクエスト本文(ボディ)という標準的なHTTP構造で構成されています。

特にヘッダーは、受信側がデータを正しく処理するためのメタデータを提供します。例えば、データの形式を指定する Content-Type や、送信元の身元を証明するためのセキュリティ署名、リクエストが送信された時刻を示すタイムスタンプなどがヘッダーに含まれます。これらの情報を正確に読み解くことが、Webhook連携を安定して運用するための第一歩となります。

入力データの要件と制限事項

本ツールでWebhookリクエストを検査する際は、以下の3つの要素を入力します。

  • メソッド: POST、PUT、PATCH、GET、DELETE のリストから選択します。
  • ヘッダー: 「Name: value」の形式で、1行に1つのヘッダーを入力します。最大200行、かつ全体で100,000文字まで入力可能です。
  • 本体: サーバー側で解析される前の、キャプチャされた正確な生の本文を貼り付けます。最大1,000,000文字まで入力可能です。

入力内容に不備がある場合、以下のエラーメッセージが表示されます。

  • 「最初に少なくとも 1 つのヘッダーまたはリクエスト本文を貼り付けます。」
  • 「ヘッダーがこのツールには長すぎます。無関係な値または重複する値を削除します。」
  • 「このツールにはボディが長すぎます。 100万文字以内にしてください。」
  • 「ヘッダー行が多すぎます。リクエストのヘッダー数は 200 個以下に抑えてください。」
  • ‹line›: ヘッダー行 が無効です。名前: 値を使用します。」

異なるボディ形式の検出とフォーマット規則

Webhookのペイロード(本文)には、主にJSON形式やURLエンコードされたフォームデータ(URL-encoded)が使用されます。本ツールはこれらの形式を自動的に検出して整形します。

  • JSON: JSON.parse を用いて解析され、整形表示されます。この処理の過程で、元のデータにあった空白やフィールドの並び順は再構成されるため、元の配置は保持されません。解析できない場合は「本文は JSON のように見えますが、解析できませんでした。」というエラーが表示されます。
  • URLエンコードフォーム: フォームデータとしてデコードされ、フォーマットされます。パーセントエンコードに不備がある場合は「フォーム本文に不完全なパーセントエスケープが含まれています。」というエラーが表示されます。
  • その他の形式: XMLやマルチパート、バイナリデータなどはプレーンテキストとしてそのまま表示されます。
  • 空の本文: 本文が未入力の場合は「(空のボディ)」と表示されます。

署名ヘッダーの検出と検証の区別

セキュリティが確保されたWebhookでは、改ざんやなりすましを防ぐために署名(シグネチャ)やタイムスタンプがヘッダーに付与されます。

本ツールは、ヘッダー名に含まれる signaturehmacdigest などのパターンや、一般的なタイムスタンプ名を自動的に識別し、「署名フィールド」としてリストアップします。該当するヘッダーが検出されない場合は「共通の署名または Webhook タイムスタンプ ヘッダーが見つかりませんでした。」と表示されます。

ここで重要なのは、「検査(インスペクト)」と「検証(ベリファイ)」の違いです。本ツールは署名ヘッダーの存在を検出するだけであり、HMACの計算、アルゴリズムの適用、ペイロードの生バイトデータの照合、秘密鍵(シークレット)を用いた検証、リプレイアタック対策のウィンドウ判定などは行いません。実際の検証には、送信元の署名ルール、シークレットまたはキー、および元のリクエストのバイトデータが必要です。

ローカル環境でのcURLテスト

Webhook受信サーバーの開発やデバッグにおいて、本番環境からのリクエストをローカル環境で再現してテストすることは極めて有効な手法です。

本ツールは、入力されたメソッド、ヘッダー、本文を基に、ローカルテスト用のcURLコマンドを自動的に生成します。このコマンドの送信先URLは http://localhost:3000/webhooks に固定されており、シェルエスケープされた状態で出力されます。開発者はこのコマンドをターミナルにコピー&ペーストするだけで、ローカルで起動しているWebhookハンドラーに対して、本番と同一のペイロードを繰り返し送信して挙動を確認できます。

プライバシーとデータ処理について

本ツールに入力されたすべてのリクエストデータ(メソッド、ヘッダー、本文)の処理は、完全に利用者のブラウザ内で行われます。貼り付けたリクエストはブラウザーに残ります。 BroBroGo はアップロードまたは保存しません。外部のサーバーにデータが送信されることはないため、機密性の高いヘッダー情報やペイロードであっても安心して検査を行うことができます。

よくある質問(FAQ)

このページはライブ Webhook コールバックを受信できますか?

いいえ。キャプチャしたリクエストを検査のためにここに貼り付けます。このページは、パブリック エンドポイントの作成、コールバックの受信、生成されたテスト リクエストの送信を行いません。

どの Webhook 本体形式を検査できますか?

JSON および URL エンコードされたフォーム本文が検出され、フォーマットされます。他の本文はプレーン テキストのままであるため、ツールは XML、マルチパート、またはバイナリ コンテンツを推測しません。

署名フィールドが見つかると、リクエストが本物であることが証明されますか?

いいえ。このツールは、署名と関連するタイムスタンプ ヘッダーのみを表示します。実際の検証には、送信者の正確な署名ルール、秘密鍵または公開鍵、および元のリクエスト バイトが必要です。