← すべての記事

FourA Digest (2026年8月28日〜9月4日)

任意のHTTPクライアントから接続可能なproxy endpoint、レスポンス内で提供元クラスを明記する/api/proxyのプレミアムexit、および学習記憶に対応したAuto。

ハイライト

これまでFourAの入り口は1つだけでした。URLを送信すると、ページが返されるという仕組みです。今週、2つ目の入り口を開設しました。任意のHTTPクライアントに貼り付けて使用できる一般的なproxy endpointで、Dashboardで作成した認証情報を使用します。また、Proxy Finderは他のすべてを拒否するターゲットに対して有料出口を利用できるようになり、Autoは機能した出口をより適切に記憶するようになりました。

新機能

任意のHTTPクライアントを接続

Dashboardの新しいセクション: 「ACCESS」、次に「Proxy」。proxyユーザーを作成すると、ページに正確な接続文字列が表示され、その横にcURL、Python、Nodeの例が示されます。出口タイプ、国、リクエストの実行全体で同じ出口を維持するかどうかを選択すると、選択に応じて文字列が自動的に書き換わります。

APIがすでに機能しているのに、なぜ構築したのか。一部の処理はリクエストとレスポンスの形式に収まりません。トンネルは到着したバイトをそのままコピーします。JSONエンベロープもバッファリングもありません。これは大容量ファイルや動画ストリームに必要な処理であり、従来のAPIでは対応できませんでした。

有料出口では、より詳細なターゲティングが可能です。地域、都市、ISP名によるネットワーク、出口の保持期間を指定できます。当社独自のプールは意図的に国指定のみにしています。カバレッジが薄い国の都市にはわずかなアドレスしかなく、ほとんど失敗するフィルターはフィルターがないよりも悪影響を及ぼします。

トレードオフを率直に説明します。プレーンなトンネルを経由する場合、当社ではなくクライアントがサイトへの接続を確立するため、APIが代行する処理はその経路に含まれません。unblockerフラグ、ブラウザベースの解決、validateルール、セッションリプレイなどが該当します。トンネルは当社の出口と帯域幅を提供します。APIはその上に構築された機能を提供します。会社単位ではなく、ジョブごとに選択してください。

プレミアム出口と、配信元を示すレスポンス

/api/proxyでexitClass(standardまたはpremium)を受け付けるようになりました。Premiumは、独自プールがブロックされ続けるターゲット向けに、有償の出口を経由してルーティングします。

何も指定しない場合はautoになります。共有プールが優先され、検索が難航した場合にのみ有料出口が検索に追加されます。クラスを指定すると、その指定に厳密に従います。standardが自動的にエスカレーションすることはありません。それが明示的に指定する目的です。

レスポンスにはexitClassが含まれて返されるため、どの出口から配信されたかを常に把握できます。独自プールが先に応答したプレミアムリクエストはstandardとして返されますが、これはダウングレードではなく成功です。プランにプレミアムが含まれていない場合、リクエストは別の場所から密かに処理されるのではなく、即座に拒否されます。

Premiumは帯域幅の一部としてカウントされ、別の合計として扱われることはありません。Quotaの行、Metricsの列、その経路で送信されたActivityの行のマーク、Overviewカードのタイルに反映されます。Playgroundにもこのコントロールが追加されました。空のオプションには重要な意味があります。未設定のままにするとフィールドは一切送信されません。「要求しなかった」と「エスカレーションしないよう要求した」は異なるリクエストであるためです。

Autoが機能した出口を記憶

Autoのラダーはこれまで、どのイグジットが失敗したかを記録してきました。今後は、ブラウザの階層だけでなく全階層から、どのイグジットが正常に配信されたかも記録します。これは、ユーザーにページを返すかどうかを判定するのと同じチェックをコンテンツが通過した後にのみ行われます。ユーザーに返せないようなページに対して、イグジットが「良好」と判定されることはありません。

また、Banの期限切れも個別のタイマーで処理されます。以前はホストの除外リストに新しいBanが追加されるたびに全体の有効期限が更新されていましたが、現在は各Banが設定されたスケジュールどおりに個別に失効します。

さらに、実行がプランのブラウザ上限に達しても、ラダーは停止しなくなりました。代わりにproxy階層を試行し、成功したイグジットをキャッシュするため、以降の呼び出しではSingle上で低コストに再実行できます。

Autoは依然としてパスを見つけるためのものであり、本番の大量トラフィック用ルートではありません。Autoにどの階層が成功したかを判定させてセッションを返送させ、そのセッションを使って/api/singleまたは/api/browserに直接ボリュームトラフィックを向けてください。これはAutoローンチ時の主張であり、今回の変更でもそれは変わりません。

要求したページとは異なるページ

一部のイグジットはフィルタリングされた企業ネットワーク内にあり、ターゲットサイトの代わりにゲートウェイが応答します。レスポンスはステータス200かつbody付きで返され、従来の全チェックを通過していました。今後はそうではありません。このようなページは、サイトが応答した証拠ではなく、そのイグジットが使用不可能である証拠と見なされます。そのため、requestは次の候補へとスキップされ、そのイグジットが優先されることはなくなります。

マッチングする各ページ形状にはサイズ制限が設けられているため、該当する文言がたまたま引用されているだけの正規ドキュメントが誤判定されることはありません。サイズはガードであり、シグナルではありません。これに関するより広範な内容は、2週間前の記事(ブロックがデータポイントのように見えるとき)で解説しました。

内部構造

Rate limitは、共有キャパシティに請求される前に、まずアカウント自身の上限に対してチェックされるようになりました。1つのアカウント内でのバーストは、他のユーザーが待機しているスロットを消費することなく、自身のリミットによって即座に拒否されます。

ダッシュボードに表示される実行中(in-flight)の数値は、上昇したまま戻らなくなる可能性のあるカウンターではなく、各インスタンスが毎秒再発行するリアルタイムなゲージから取得されます。画面とリミッターは現在、まったく同じ数値を参照しています。

数値データ

社内テストでは、イグジットがすでに見つかっているホストへのトンネル確立は、約10数回のサンプルで63から672 msを記録し、大半は260 ms未満でした。これまでルーティングしたことのないホストへの初回接続はより遅く、対象ホストで機能するイグジットをプールから探索する間、数秒から場合によっては数十秒かかります。これはリクエストごとではなく、ホストごとに1回だけ発生します。サンプル数は少なく、自社の測定値です。

2つのアプローチが選べるようになったことで、先週まではなかった検討事項が生まれます。この処理で重要なのは転送バイト数か、それともアクセスを確立することか。大きなファイルを転送する場合、トンネルは当社で最も低コストな手段です。それ以上に困難な処理には、引き続きAPIを利用してください。