Kết quả Request
Mỗi request đến FourA API đều được phân loại chính xác vào một outcome, và mỗi tunnel qua proxy port cũng vậy. Outcome được tính toán một lần khi kết thúc lệnh gọi và được ghi lại theo thông tin xác thực đã thực hiện lệnh gọi đó. Dashboard, activity feed và hệ thống thanh toán của bạn đều đọc cùng một trường dữ liệu này.
Chỉ success mới tiêu tốn credit. Lưu lượng Premium được tính tách biệt với credit và không phụ thuộc vào outcome: xem Billing Implications.
Bảy Outcome
Dưới đây là bảy outcome mà một request có thể nhận. Một tunnel sử dụng năm trong số đó: xem Tunnels Use the Same Vocabulary bên dưới.
| Outcome | Layer | Ý nghĩa |
|---|---|---|
success |
n/a | Response hợp lệ đã được gửi về. Được tính vào hạn ngạch thanh toán của bạn. |
application_error |
target | Target trả về HTTP 200, nhưng body chứa trường lỗi hoặc body là trang kiểm tra bot mà FourA nhận diện được. |
application_fail |
target | Target trả về mã không phải 2xx mà các quy tắc validate của bạn không chấp nhận, hoặc hoàn toàn không có response, bao gồm cả trường hợp không phân giải được host name của target. |
client_error |
caller | Request của bạn bị từ chối trước khi rời khỏi FourA. Tham số không hợp lệ, giá trị proxy sai định dạng, URL bị chặn bởi SSRF. |
rate_limit |
FourA | Request bị từ chối trước khi thực thi: do một trong các giới hạn của gói (lỗi 403 cho endpoint hoặc tham số không thuộc gói, lỗi 429 khi hết hạn ngạch), hoặc do giới hạn RPM dùng chung hay giới hạn đồng thời của nền tảng. |
service_error |
FourA | Engine phản hồi với lỗi server, hoặc body không phải là JSON hợp lệ. |
service_fail |
FourA | Mạng nội bộ của FourA gặp sự cố: engine không phản hồi kịp thời, kết nối bị ngắt, hoặc bạn đã ngắt kết nối. |
Cột layer cho bạn biết bên nào chịu trách nhiệm:
- Các outcome target liên quan đến trang web bạn đã gọi. Request của bạn đã đến FourA bình thường, và FourA đã kết nối tới target bình thường. Bản thân target trả về lỗi.
- Các outcome caller có nghĩa là request của bạn chưa từng có cơ hội thực thi. Hãy sửa lại cấu trúc request.
- Các outcome FourA là do hệ thống của chúng tôi. Hãy thử lại, và kiểm tra trang trạng thái nếu lỗi vẫn tiếp diễn.
Trang target trả về 403 là application_fail, không phải client_error. Lệnh gọi của bạn đúng định dạng. Chỉ là trang web đó từ chối.
Success Phụ Thuộc Vào validate
Nếu không có validate, API chỉ đánh dấu request là success khi target trả về HTTP 200.
Khi có validate, success sẽ tuân theo các quy tắc bạn đã khai báo. Nếu bạn thông báo cho API rằng 200 và 403 đều được chấp nhận cho một request nhất định, mã 403 trả về sẽ được tính là success. Body vẫn được gửi về cho bạn mà không bị thay đổi.
curl -X POST https://eu.api.foura.ai/api/single/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"method": "GET",
"url": "https://target.example/feed",
"validate": {
"status": { "accept": [200, 403] }
}
}'
Trong lệnh gọi này, phản hồi 403 được tính là success và được tính phí như một request. Phản hồi 500 được tính là application_fail và không bị tính phí.
Logic tương tự cũng áp dụng cho validate.headers và validate.data. Bất kỳ phản hồi nào mà engine chấp nhận dựa trên quy tắc của bạn đều trả về dưới dạng success bất kể HTTP status.
Có một kết quả không bao giờ là success, dù có hoặc không có validate: HTTP 200 có body là trang bot-check mà FourA nhận diện, chẳng hạn như tác vụ xác minh trực quan hoặc trang chỉ yêu cầu trình duyệt chạy JavaScript. Request đó là application_error và không bị tính phí. Body vẫn được gửi tới bạn mà không thay đổi, và header X-FourA-Check-Page sẽ đặt tên cho trang kiểm tra đó.
Tác động thanh toán
| Kết quả | Tính phí | Tính vào hạn ngạch |
|---|---|---|
success |
Có | Có |
application_error |
Không | Không |
application_fail |
Không | Không |
client_error |
Không | Không |
rate_limit |
Không | Không |
service_error |
Không | Không |
service_fail |
Không | Không |
Chỉ những request phân phối đúng dữ liệu bạn yêu cầu mới bị tính phí. Lỗi phía FourA, phía mục tiêu, hoặc phía bạn đều hoàn toàn miễn phí.
Bảng này áp dụng cho tín dụng. Lưu lượng Premium được tính riêng: một request đã thử dùng premium exit sẽ tính lượng lưu lượng mà lần thử đó đã truyền tải, bất kể kết quả ra sao, vì exit đó dù sao cũng đã được sử dụng. Một lần thử vẫn đang chạy khi exit khác phản hồi sẽ bị dừng ngay lập tức, và lưu lượng nó đã truyền tải cho đến thời điểm đó cũng được tính.
Lưu lượng Standard cũng không phụ thuộc vào kết quả: trên gói có giới hạn băng thông, lưu lượng của mọi request đều được tính vào đó. Request bị từ chối bởi một trong những giới hạn trong gói của bạn sẽ không tính lưu lượng.
Tunnel sử dụng cùng tập từ vựng
Một tunnel qua cổng proxy cũng kết thúc bằng một trong những kết quả này, do đó một bộ nhãn bao trùm cho cả hai sản phẩm. Chỉ năm trong số bảy kết quả có thể xảy ra, vì hai kết quả target yêu cầu FourA phải đọc được phản hồi của mục tiêu, trong khi phản hồi của tunnel là lưu lượng được mã hóa riêng của bạn.
| Kết quả | Đối với tunnel, điều này có nghĩa là |
|---|---|
success |
Tunnel đã mở và công cụ của bạn đã nhận được. |
client_error |
FourA sẽ không mở tunnel đó: địa chỉ riêng tư hoặc địa chỉ dành riêng, hoặc cổng không được phục vụ. |
rate_limit |
Đã đạt đến một trong các giới hạn gói của bạn (số tunnel mở cùng lúc, số lượt mở tunnel mỗi phút, lưu lượng standard trong kỳ, lưu lượng premium chưa có), hoặc chính cổng đã đạt dung lượng hay tốc độ mở tối đa. |
service_error |
FourA không có exit phù hợp với yêu cầu của bạn. Thường là tạm thời. |
service_fail |
Không thể tiếp cận mục tiêu qua bất kỳ exit nào FourA đã thử: DNS, timeout, connection refused. |
application_error |
Không bao giờ xảy ra trên tunnel. |
application_fail |
Không bao giờ xảy ra trên tunnel. |
Mỗi lượt từ chối cũng đi kèm một lý do ngắn gọn, và dashboard sẽ hiển thị lý do đó theo thuật ngữ của bạn thay vì của chúng tôi. Tùy chọn mà FourA không thể đáp ứng sẽ được phản hồi 400 ngay trên chính kết nối và không ghi lại dòng nào, vì vậy nó hoàn toàn không xuất hiện ở đây.
| Lý do trên màn hình | Giới hạn bị vượt |
|---|---|
| port not in plan | Gói của bạn không bao gồm cổng proxy này |
| tunnels at once | Tất cả tunnel đồng thời mà gói của bạn cho phép đều đang được sử dụng |
| openings per minute | Số lượt mở tunnel trong phút này của gói đã hết |
| traffic used up | Lưu lượng của gói trong chu kỳ này đã hết |
| premium not available | Lưu lượng premium hiện không khả dụng trên gói của bạn |
| port was full | Bản thân cổng đã đạt giới hạn dung lượng hoặc tốc độ mở. Hãy thử lại sau giây lát. |
| port not served | FourA không mở tunnel tới cổng đó |
| private address | Không thể truy cập các địa chỉ riêng tư và địa chỉ dành riêng |
Không có phần nào của tunnel được tính phí bằng credit, vì tunnel không có request để trừ phí. Thay vào đó, cổng sẽ đo lường theo byte. Xem Cách đo lường gói dịch vụ của bạn.
Đọc Outcome trên Dashboard
Mọi request mà API key của bạn thực hiện đều xuất hiện trên bảng tin Activity cùng với nhãn outcome tương ứng. Các trang Metrics và Overview tổng hợp cùng trường dữ liệu này cho biểu đồ donut và biểu đồ dòng thời gian.
Khi bạn lọc Activity theo outcome, bạn cũng có thể tập trung vào một endpoint duy nhất (Auto, Single, Proxy Finder, Browser) để xem liệu một loại lỗi có chỉ xảy ra riêng với endpoint đó hay không. Chuyển mục Product của trang sang Proxy và các thẻ outcome tương tự sẽ lọc các tunnel của bạn.
Heuristic cho việc thử lại
Chính sách thử lại cơ bản dựa trên outcome:
| Outcome | Có an toàn để thử lại? | Khi nào |
|---|---|---|
success |
k/d | Bạn đã nhận được response. |
application_error |
Tùy trường hợp | Đọc body lỗi của mục tiêu. Một số là tạm thời, hầu hết thì không. Nếu X-FourA-Check-Page được thiết lập, trang web đã trả về một trang kiểm tra: hãy gửi URL tới Auto, nơi xử lý trang kiểm tra như một bước cần vượt qua, chứ không phải là kết quả cuối cùng. |
application_fail |
Tùy trường hợp | Nếu mục tiêu đang giới hạn tốc độ (rate limit), hãy giảm tốc độ gửi. Nếu mục tiêu đang chặn bạn, hãy chuyển sang endpoint Proxy hoặc Browser. |
client_error |
Không | Request sẽ tiếp tục thất bại theo cách tương tự. Hãy sửa lại input. |
rate_limit |
Tùy thuộc | Tuân thủ thời gian chờ mà response cung cấp: Retry-After, retry_after_seconds, hoặc retryAfter. Với plan_limit_browser_daily, dừng lại cho đến nửa đêm UTC; với plan_limit_credits hoặc plan_limit_bandwidth, dừng lại cho đến resets_at; với plan_limit_feature hoặc plan_limit_premium, hãy thay đổi request. |
service_error |
Có | Exponential backoff ngắn. |
service_fail |
Có | Tương tự như service_error. |
Liên quan
- Lỗi API: Các phản hồi lỗi ở cấp độ HTTP
- Cổng Proxy: Các mã trạng thái trả về khi tunnel từ chối
- Giới hạn tốc độ: Nguyên nhân kích hoạt
rate_limit, và hai định dạng phản hồi trả về - Số liệu: Nơi xem chi tiết kết quả
- Nhật ký hoạt động: Lịch sử kết quả theo từng request