# Read timeout melalui proxy: penyebab dan timeout yang wajar

> Read timeout melalui proxy residential: alasannya, timeout connect dan baca yang tepat untuk scraper, serta cara retry tanpa menumpuk.

- URL: https://crawlrelay.com/id/docs/errors/read-timeout/
- Terakhir diperbarui: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Kesalahan timeout klien: pesan tepat di tiap alat, penyebab yang mungkin secara urut, dan perbaikan yang berhasil.

**Jawaban cepat — Apa arti Read timed out (ReadTimeout) dengan proxy?**

**Read timeout** berarti klien Anda menunggu lebih lama dari batas waktu bacanya untuk byte berikutnya dari respons. Melalui proxy residential CrawlRelay, delay biasanya dari target yang lambat atau exit rumah yang lambat. Atur timeout connect dan baca terpisah, sekitar 10 dan 30 hingga 60 detik untuk halaman HTML, dan coba ulang permintaan yang timeout sekali di exit baru.

## Read timed out (ReadTimeout) sekilas

| Atribut | Nilai |
| --- | --- |
| Kesalahan | Read timed out (ReadTimeout) |
| Tipe | Kesalahan timeout klien |
| Dikirim oleh | Klien HTTP Anda, ketika tidak ada data yang tiba dalam batas waktu baca |
| Didefinisikan dalam | Client setting, no protocol status |
| Mencoba lagi? | Ya, sekali atau dua kali di exit baru |
| Periksa pertama | Bandingkan batas waktu baca dengan waktu respons normal target |

## Apa arti Read timed out (ReadTimeout)?

Klien biasanya memiliki dua timer. Timeout connect membatasi berapa lama klien menunggu membuka koneksi ke proxy. Timeout baca membatasi berapa lama menunggu antar byte setelah permintaan dikirim. Timeout baca berarti koneksi berhasil tapi jawaban terlalu lambat.

Tanpa timeout eksplisit, beberapa klien menunggu selamanya. Di Python requests, tanpa timeout adalah default, jadi satu permintaan macet dapat membekukan worker.

## Seperti apa a read timeout dalam Python, curl, Node.js, dan browser?

Kegagalan yang sama dicetak berbeda di setiap alat. Ini adalah pesan yang perlu dicari di log Anda:

- **Python requests:** `ReadTimeout: HTTPSConnectionPool(...): Read timed out. (read timeout=10)`
- **httpx:** `httpx.ReadTimeout`
- **Node.js:** `ETIMEDOUT`, `ESOCKETTIMEDOUT`, atau `AbortError` dari timer Anda sendiri
- **Playwright:** `TimeoutError: page.goto: Timeout 30000ms exceeded`

## Apa penyebab a read timeout?

Kemungkinan besar pertama:

- **Halaman target lambat**, seperti hasil pencarian atau halaman dinamis berat.
- **Exit lambat**: kecepatan upload rumah, Wi-Fi, atau sel mobile sibuk.
- **Unduhan besar** dibaca sekaligus bukan streaming.
- **Timeout yang disetel terlalu ketat** untuk jenis halaman.
- **Halaman browser** yang menunggu idle jaringan pada situs yang tak pernah berhenti memuat tracker.

## Bagaimana cara mendiagnosis a read timeout langkah demi langkah?

1. Ukur waktu permintaan tanpa proxy untuk baseline.
2. Catat waktu sampai byte pertama dan total waktu secara terpisah.
3. Periksa ukuran respons untuk URL lambat.
4. Di browser, periksa kondisi `waitUntil` yang Anda gunakan.

*Uji URL yang gagal dengan curl (port HTTP, verbose)*

```bash
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:PASSWORD@gw.crawlrelay.com:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL
```

## Bagaimana cara memperbaiki a read timeout?

- **Atur kedua timeout:** connect sekitar 10 detik, baca 30 sampai 60 detik untuk HTML, lebih untuk file besar.
- **Streaming respons besar** dan tulis ke disk secara bertahap.
- **Gunakan `domcontentloaded`** daripada idle jaringan di Playwright saat hanya perlu HTML.
- **Blokir sumber berat** yang tidak Anda butuhkan di browser, seperti video.
- **Coba ulang sekali di exit baru**, lalu pindahkan URL ke antrean lambat.

*Python httpx: atur timeout connect, read, write, dan pool secara eksplisit*

```python
import httpx

proxy = "http://USERNAME:PASSWORD@gw.crawlrelay.com:7777"
timeout = httpx.Timeout(connect=10.0, read=30.0, write=10.0, pool=10.0)

with httpx.Client(proxy=proxy, timeout=timeout) as client:
    try:
        r = client.get("https://api.ipify.org")
        print(r.status_code, r.text)
    except httpx.TimeoutException as exc:
        print("timed out:", type(exc).__name__)  # ConnectTimeout, ReadTimeout...
```

## Haruskah saya mencoba lagi setelah a read timeout?

Coba ulang read timeout sekali atau dua kali di exit baru. Jika URL sama terus timeout, beri timeout lebih lama di antrean lambat terpisah daripada menaikkan timeout untuk semuanya. Waspadai efek samping duplikat: hanya ulang permintaan yang aman diulang, seperti GET.

## Bagaimana Read timed out (ReadTimeout) berlaku untuk CrawlRelay?

Setiap koneksi baru CrawlRelay tanpa ID sesi menggunakan exit residential berbeda, jadi retry juga menguji koneksi rumah berbeda. Jaga sesi sticky pendek untuk target lambat: jika exit lambat, setiap permintaan dalam sesi juga lambat.

Gateway: `gw.crawlrelay.com`, port 7777 (HTTP, HTTPS melalui CONNECT) dan port 7778 (SOCKS5). Format username: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Terkait: [504 Gateway Timeout](https://crawlrelay.com/id/docs/errors/504-gateway-timeout/) · [Connection reset](https://crawlrelay.com/id/docs/errors/connection-reset/) · [Concurrency guide](https://crawlrelay.com/id/docs/concurrency/).

## Read timed out (ReadTimeout): pertanyaan yang sering ditanyakan pengembang

### Timeout berapa yang harus saya gunakan untuk scraping dengan proxy?

Mulailah dengan sekitar 10 detik untuk connect dan 30 detik untuk baca untuk halaman HTML, lalu sesuaikan dari pengukuran Anda sendiri. API JSON sering lebih cepat; file besar dan halaman pencarian lambat butuh lebih. Atur secara eksplisit: Python requests tidak punya timeout bawaan.

### Apakah timeout menghabiskan kuota saya?

Hanya untuk byte yang sudah ditransfer sebelum timeout. Permintaan yang timeout saat menunggu byte pertama hampir tidak mengirim data. Unduhan besar yang timeout di tengah sudah mengirim data. Streaming file besar dan lanjutkan di tempat yang memungkinkan.

### Mengapa timeout terjadi secara berturut-turut?

Sering karena target melambat saat beban tinggi, terkadang beban Anda sendiri. Lonjakan di banyak exit sekaligus mengarah ke target; timeout terisolasi mengarah ke exit lambat tunggal. Turunkan konkurensi pada host saat lonjakan mulai.

## Kesalahan proxy lain dalam referensi ini

- [401 Unauthorized vs 407](https://crawlrelay.com/id/docs/errors/401-unauthorized/)
- [403 Forbidden](https://crawlrelay.com/id/docs/errors/403-forbidden/)
- [407 Proxy Authentication Required](https://crawlrelay.com/id/docs/errors/407-proxy-authentication-required/)
- [429 Too Many Requests](https://crawlrelay.com/id/docs/errors/429-too-many-requests/)
- [502 Bad Gateway](https://crawlrelay.com/id/docs/errors/502-bad-gateway/)
- [503 Service Unavailable](https://crawlrelay.com/id/docs/errors/503-service-unavailable/)
- [504 Gateway Timeout](https://crawlrelay.com/id/docs/errors/504-gateway-timeout/)
- [Cannot connect to proxy (ProxyError)](https://crawlrelay.com/id/docs/errors/cannot-connect-to-proxy/)
- [Connection reset by peer (ECONNRESET)](https://crawlrelay.com/id/docs/errors/connection-reset/)
- [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/id/docs/errors/err-proxy-connection-failed/)
- [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/id/docs/errors/err-tunnel-connection-failed/)
- [Read timed out (ReadTimeout)](https://crawlrelay.com/id/docs/errors/read-timeout/)
- [SOCKS5 proxy errors](https://crawlrelay.com/id/docs/errors/socks5-proxy-errors/)
- [SSL: CERTIFICATE_VERIFY_FAILED](https://crawlrelay.com/id/docs/errors/ssl-certificate-verify-failed/)
- [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/id/docs/errors/ssl-wrong-version-number/)

**Proxy residensial dengan dokumentasi yang membahas kasus kegagalan** Proxy residensial CrawlRelay dari US$0,50/GB, lalu lintas yang tidak pernah kedaluwarsa. [Lihat harga](https://crawlrelay.com/id/pricing/) · [Mulai cepat](https://crawlrelay.com/id/docs/)

---

CrawlRelay: CrawlRelay adalah layanan proxy residensial dan proxy seluler 4G/5G yang berfokus pada pengembang untuk scraper dan pipeline data AI: trafik pay-as-you-go tanpa kedaluwarsa mulai dari US$0,50/GB, dibayar dengan crypto, tanpa perlu unggah ID. Tanpa KYC — tanpa ID, tanpa selfie, tanpa dokumen. Bayar dengan crypto.
