Firefox で動作するリクエストについては、Firefox が実際に送信した内容から始めます。

  1. Network Monitor を開き、操作を再現してそのリクエストを選択します。Copy → Copy as cURL を使います。
  2. 最初の比較のために、宛先、メソッド、本文、関連するヘッダーをそのまま残します。経路は次の行を追加して別に選びます。
--proxy http://proxy.example:8080

コピーした認証情報、Cookie、非公開の本文データ、プロキシの認証情報を使わない、別途許可された公開ページの比較には、HTTP プロキシ一覧が候補のエンドポイントを提供します。そのうえで応答と失敗した段階を比較します。User-Agent 文字列だけではフォーム送信、Cookie、トークンを再現できません。

操作に対応するネットワーク項目を選びます。ページはリダイレクトや多数のリソースを生成することがあります。リダイレクトを追う場合は、curl が Firefox とまったく同じに遷移すると決めつけず、遷移先を確認します。HTTPS では curl が CONNECT と宛先の TLS を処理します。コピーしたリクエストを別の手動 CONNECT 交換に書き換えないでください。

コマンドを共有する前に、メソッド、宛先、有用なエラー文脈を残したままCookie、認可、非公開の本文値を伏せてください。リクエストをコピーすると、有効なアカウントデータもコピーされる可能性があります。

再実行が成功したのは、選んだ経路でこの curl リクエストが成立したという意味です。ブラウザの JavaScript、キャッシュされた状態、その後のすべてのページリクエストを再現するものではありません。

関連記事