KYC 없이 — 신분증, 셀카, 문서 없이. 암호화폐로 결제: BTC, USDT, USDC, ETH, SOL, LTC
언어: 한국어
시작하기

프록시 오류 참조 · 연결 및 TLS 오류

프록시를 통한 읽기 시간 초과: 원인과 적절한 제한 시간

클라이언트 타임아웃 오류: 각 도구에서 정확한 메시지, 가능한 원인들의 순서, 그리고 효과적인 해결 방법.

마지막 업데이트: · 4 분 읽기

빠른 답변

프록시에서 Read timed out (ReadTimeout)는 무엇을 의미하나요?

읽기 시간 초과는 클라이언트가 응답 다음 바이트를 읽기 제한 시간보다 오래 기다렸다는 의미입니다. CrawlRelay 주거용 프록시를 사용하면 주로 느린 대상 서버 또는 느린 홈 ISP가 지연 원인입니다. 접속 및 읽기 제한 시간을 각각 설정하세요. HTML 페이지 기준 접속 약 10초, 읽기 30~60초가 적절하며, 제한 시간 초과 시 한 번 새 연결에서 재시도하세요.

Read timed out (ReadTimeout) 한눈에 보기

오류Read timed out (ReadTimeout)
유형클라이언트 타임아웃 오류
전송 주체HTTP 클라이언트가 읽기 제한 시간 내에 데이터를 받지 못할 때
정의 위치Client setting, no protocol status
다시 시도할까요?예, 새 출구에서 1~2회 가능
먼저 확인하세요읽기 제한 시간과 대상 서버의 정상 응답 시간 비교

Read timed out (ReadTimeout)가 무엇을 의미하나요?

클라이언트는 통상 두 개 타이머가 있습니다. 접속 제한 시간은 프록시와 연결을 열 때까지 대기하는 최대 시간을 정합니다. 읽기 제한 시간은 요청을 보낸 후 다음 바이트 사이의 최대 대기 시간을 의미합니다. 따라서 읽기 제한 시간 초과는 연결은 되었으나 응답이 너무 늦다는 뜻입니다.

명시적 제한 시간이 없으면 일부 클라이언트는 영원히 대기합니다. Python requests의 기본 제한 시간은 없으므로, 한 번 막히면 워커가 멈출 수 있습니다.

Python, curl, Node.js, 브라우저에서 a read timeout는 어떻게 나타나나요?

같은 실패가 도구마다 다르게 출력됩니다. 로그에서 검색할 메시지들:

  • Python requests: ReadTimeout: HTTPSConnectionPool(...): Read timed out. (read timeout=10)
  • httpx: httpx.ReadTimeout
  • Node.js: ETIMEDOUT, ESOCKETTIMEDOUT 또는 자체 타이머 AbortError
  • Playwright: TimeoutError: page.goto: Timeout 30000ms exceeded

a read timeout의 원인은 무엇인가요?

가장 가능성 높은 첫 번째 원인:

  • 느린 대상 페이지, 검색 결과 또는 무거운 동적 페이지 등
  • 느린 출구 연결: 가정 업로드 속도, 와이파이, 트래픽 많은 모바일 셀
  • 한 번에 읽는 큰 다운로드 (스트리밍 처리 아님)
  • 페이지 유형에 비해 지나치게 짧은 제한 시간
  • 네트워크 유휴를 기다리는 브라우저 페이지 (추적기 끊임없이 로딩하는 사이트)

a read timeout를 단계별로 진단하는 방법은?

  1. 프록시 없이 요청 시간을 측정해 기본값을 확인하세요.
  2. 첫 바이트 도착 시간과 전체 소요 시간을 별도 기록하세요.
  3. 느린 URL의 응답 크기를 점검하세요.
  4. 브라우저에서는 사용하는 waitUntil 조건을 확인하세요.
curl로 실패한 URL 테스트하기(HTTP 포트, 상세 모드)
# 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:[email protected]: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

a read timeout를 어떻게 고치나요?

  • 접속 제한 시간과 읽기 제한 시간 모두 설정: 접속 약 10초, HTML 읽기 30~60초 이상, 큰 파일은 더 길게 설정하세요.
  • 큰 응답은 스트리밍 처리하여 부분별로 디스크에 저장하세요.
  • Playwright에서는 HTML만 필요하면 네트워크 유휴 대신 domcontentloaded를 사용하세요.
  • 브라우저에서 필요 없는 무거운 리소스(예: 비디오) 차단하세요.
  • 제한 시간 초과 시 새 연결에서 한 번 재시도하고, 이후에는 느린 작업 큐로 이동하세요.
Python httpx: 명시적으로 연결, 읽기, 쓰기 및 풀 타임아웃 설정하기
import httpx

proxy = "http://USERNAME:[email protected]: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...

a read timeout 이후에 다시 시도해야 하나요?

읽기 제한 시간이 초과되면 새 연결에서 1~2회 재시도하세요. 같은 URL에서 지속적으로 제한 초과 시 전체 제한 시간을 늘리는 대신 별도 느린 큐에 배치하는 것이 좋습니다. 부작용이 중복되지 않게 GET처럼 안전한 요청만 재시도하세요.

Read timed out (ReadTimeout)가 CrawlRelay에 어떻게 적용되나요?

CrawlRelay의 각 연결은 세션 ID 없이 연결하면 다른 주거용 출구를 사용하므로 재시도는 다른 홈 연결도 테스트하는 셈입니다. 느린 출구가 있다면 세션 고정 시간을 짧게 유지하세요. 그렇지 않으면 세션 내 모든 요청이 느려집니다.

게이트웨이: gw.crawlrelay.com, 포트 7777 (CONNECT를 통한 HTTP, HTTPS) 및 포트 7778 (SOCKS5). 사용자 이름 형식: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. 관련: 504 게이트웨이 타임아웃 · 연결 재설정 · 동시성 가이드.

Read timed out (ReadTimeout): 개발자들이 묻는 질문들

프록시를 사용할 때 어떤 타임아웃을 설정해야 하나요?

HTML 페이지 기준 접속 약 10초, 읽기 30초로 시작해서 측정 결과에 따라 조정하세요. JSON API는 더 빠르며, 큰 파일·느린 검색 페이지는 더 긴 시간이 필요합니다. Python requests는 기본 제한 시간이 없으니 명시적으로 설정하세요.

타임아웃 설정에도 트래픽이 발생하나요?

타임아웃 전까지 전송된 바이트에 대해서만 트래픽이 발생합니다. 첫 바이트를 기다리다 타임아웃되면 거의 전송된 데이터가 없습니다. 큰 다운로드에서 중간에 타임아웃되면 일부 데이터가 전송된 것입니다. 대용량 파일은 스트리밍하고 가능한 경우 중단 지점부터 재개하세요.

타임아웃이 한 번에 몰려 발생하는 이유는 무엇인가요?

대상 서버가 부하에 따라 느려져서 발생하는 경우가 많으며, 때로는 귀하의 부하 때문일 수도 있습니다. 여러 출구를 동시에 통한 급증은 대상 서버 문제를 가리키고, 단일 타임아웃은 특정 느린 출구를 의미합니다. 급증이 시작될 때 호스트의 동시 접속 수를 줄이십시오.

이 참조에서 다른 프록시 오류들

HTTP 상태 코드

브라우저 및 클라이언트 오류

연결 및 TLS 오류

실패 사례를 다루는 문서가 있는 레지덴셜 프록시들

US$0.50/GB의 레지덴셜 프록시 CrawlRelay개, 트래픽이 절대 만료되지 않음.

US$0.50/GB 부터 · KYC 없이

시작하기