# Timeout read przez proxy: przyczyny i sensowne limity

> Timeout read przez proxy residential: dlaczego, sensowne limity connect i read dla scraperów i jak powtórzyć bez nawarstwiania.

- URL: https://crawlrelay.com/pl/docs/errors/read-timeout/
- Ostatnia aktualizacja: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Błąd klienta: timeout: dokładny komunikat w każdym narzędziu, możliwe przyczyny w kolejności oraz działające rozwiązanie.

**Szybka odpowiedź — Co oznacza Read timed out (ReadTimeout) w kontekście proxy?**

**Read timed out** oznacza, że klient czekał dłużej niż ustawiony limit na kolejne bajty odpowiedzi. Przez residential proxy CrawlRelay opóźnienie zwykle pochodzi od wolnej strony lub wolnego wyjścia domowego. Ustaw osobno limity connect i read, około 10 i 30-60 sekund dla stron HTML, i powtórz żądanie po timeout tylko raz na nowym wyjściu.

## Read timed out (ReadTimeout) w skrócie

| Atrybut | Wartość |
| --- | --- |
| Błąd | Read timed out (ReadTimeout) |
| Typ | Błąd klienta: timeout |
| Wysłane przez | Twój klient HTTP, gdy nie dotarły dane przed upływem limitu czasu odczytu |
| Zdefiniowano w | Client setting, no protocol status |
| Spróbować ponownie? | Tak, raz lub dwa razy na nowym wyjściu |
| Najpierw sprawdź | Porównaj limit czasu odczytu z normalnym czasem odpowiedzi celu |

## Co oznacza Read timed out (ReadTimeout)?

Klienci zwykle mają dwa timery. Connect timeout ogranicza czas oczekiwania na otwarcie połączenia z proxy. Read timeout ogranicza czas oczekiwania między bajtami po wysłaniu żądania. Read timeout oznacza, że połączenie powiodło się, ale odpowiedź była za wolna.

Bez ustawionych timeoutów niektóre klienty czekają w nieskończoność. W Python requests domyślnie timeout nie jest ustawiony, więc pojedynczy zacięty request może zawiesić pracownika.

## Jak wygląda a read timeout w Python, curl, Node.js i przeglądarkach?

Ten sam błąd wyświetla się inaczej w każdym narzędziu. Oto komunikaty, które warto wyszukać w logach:

- **Python requests:** `ReadTimeout: HTTPSConnectionPool(...): Read timed out. (read timeout=10)`
- **httpx:** `httpx.ReadTimeout`
- **Node.js:** `ETIMEDOUT`, `ESOCKETTIMEDOUT` lub `AbortError` z własnego timera
- **Playwright:** `TimeoutError: page.goto: Timeout 30000ms exceeded`

## Co powoduje a read timeout?

Najczęściej na początku:

- **Wolna strona docelowa**, np. wyniki wyszukiwania lub ciężkie dynamiczne strony.
- **Wolne wyjście:** prędkość uploadu w domu, Wi-Fi lub przeciążona sieć mobilna.
- **Duże pobrania** czytane w jednym bloku zamiast strumieniowo.
- **Zbyt krótkie limity** dopasowane do rodzaju strony.
- **Strony w przeglądarce** czekające na sieciową bezczynność na witrynach, które nigdy nie przestają ładować trackerów.

## Jak krok po kroku zdiagnozować a read timeout?

1. Mierz czas zapytania bez proxy, by mieć bazę.
2. Loguj czas do pierwszego bajtu i łączny czas osobno.
3. Sprawdź rozmiary odpowiedzi dla wolnych URL.
4. W przeglądarkach sprawdź, jakiego `waitUntil` używasz.

*Przetestuj nie działający URL za pomocą curl (port HTTP, tryb 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
```

## Jak naprawić a read timeout?

- **Ustaw oba timery:** connect około 10 sek., read 30-60 sek. dla HTML, więcej dla dużych plików.
- **Strumieniuj duże odpowiedzi** i zapisz je na dysk częściami.
- **Użyj `domcontentloaded`** zamiast network idle w Playwright, gdy potrzebujesz tylko HTML.
- **Blokuj ciężkie zasoby**, których nie potrzebujesz, jak video, w przeglądarkach.
- **Powtórz raz na nowym wyjściu**, potem przenieś URL do wolnej kolejki.

*Python httpx: jawne ustawienie limitów connect, read, write i pool*

```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...
```

## Czy warto ponawiać próbę po a read timeout?

Retryuj read timeout raz lub dwa razy na nowym wyjściu. Jeśli ten sam URL ciągle timeoutuje, ustaw mu dłuższy timeout w oddzielnej wolnej kolejce zamiast podnosić timeouty globalnie. Uważaj na powtarzające się skutki uboczne: retryuj tylko bezpieczne do powtórzenia żądania, jak GET.

## Jak Read timed out (ReadTimeout) odnosi się do CrawlRelay?

Każde nowe połączenie CrawlRelay bez ID sesji korzysta z innego residential exit, więc powtórka testuje też inne połączenie domowe. Ustaw krótkie sesje dla wolnych stron: jeśli wyjście jest wolne, każde żądanie w sesji będzie wolne.

Gateway: `gw.crawlrelay.com`, port 7777 (HTTP, HTTPS przez CONNECT) i port 7778 (SOCKS5). Format nazwy użytkownika: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Powiązane: [504 Gateway Timeout](https://crawlrelay.com/pl/docs/errors/504-gateway-timeout/) · [Connection reset](https://crawlrelay.com/pl/docs/errors/connection-reset/) · [Concurrency guide](https://crawlrelay.com/pl/docs/concurrency/).

## Read timed out (ReadTimeout): pytania, które zadają deweloperzy

### Jakie timeouty ustawić przy scrapowaniu przez proxy?

Zacznij od około 10 sekund na połączenie i 30 sekund na odczyt dla stron HTML, a potem dostosuj według własnych pomiarów. API JSON są zwykle szybsze, duże pliki i wolne wyszukiwania potrzebują więcej. Ustaw timeouty jawnie: Python requests domyślnie nie ma timeoutu.

### Czy timeout zużywa ruch?

Tylko dla bajtów przesłanych przed timeoutem. Żądanie timeoutujące przy oczekiwaniu na pierwszy bajt niemal nic nie przesłało. Duże pobranie, które timeoutuje w połowie, przesłało dane. Strumieniuj duże pliki i wznawiaj transfer, gdzie się da.

### Dlaczego timeouty występują w falach?

Często dlatego, że cel zwalnia pod obciążeniem, czasem z powodu Twojego własnego obciążenia. Nagłe skoki na wielu wyjściach na raz wskazują na cel; odosobnione timeouty wskazują na pojedyncze wolne wyjścia. Zmniejsz współbieżność na hoście, gdy zaczyna się skok obciążenia.

## Inne błędy proxy w tym odniesieniu

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

**Proxy rezydencjalne z dokumentacją opisującą przypadki błędów** CrawlRelay proxy rezydencjalne od 0,50 USD/GB, ruch, który nigdy nie wygasa. [Zobacz ceny](https://crawlrelay.com/pl/pricing/) · [Szybki start](https://crawlrelay.com/pl/docs/)

---

CrawlRelay: CrawlRelay to serwis proxy rezydencjalne i mobilne proxy 4G/5G z rotacją, stworzony dla programistów i potoków danych AI: ruch bez wygasania w modelu pay-as-you-go od 0,50 USD/GB, płatny w kryptowalutach, bez konieczności przesyłania dokumentów. Bez KYC — brak dowodu, selfie i dokumentów. Płać w kryptowalutach.
