본문 바로가기

IT/네트워크

서버 connection timeout, read timeout 시간 개념과 차이는?

728x90
반응형

 

 

 

서버와 클라이언트 간의 통신에서 **connection timeout**과 **read timeout**은 모두 시간 초과 관련 개념이지만, 의미와 발생하는 시점이 다릅니다.

 


✅ 1. Connection Timeout (연결 시간 초과)

서버에 연결하는 과정에서 일정 시간이 지나도 연결이 되지 않으면 발생

📌 개념

  • 클라이언트(브라우저, 앱 등)가 서버에 요청을 보낼 때 TCP 연결을 시도하지만, 지정된 시간 내에 서버가 응답하지 않으면 발생
  • 네트워크가 불안정하거나, 서버가 다운되었거나, 방화벽 문제로 연결이 차단된 경우 발생

📌 발생 시점

  • 서버와의 연결이 수립되기 전에 발생

📌 예시

 
import requests

# Connection Timeout 설정 (예: 5초)
requests.get("https://example.com", timeout=5)
 
 

🔹 설명:

  • 5초 내에 서버와의 연결(TCP Handshake) 이 완료되지 않으면 requests.exceptions.ConnectTimeout 오류 발생

✅ 2. Read Timeout (응답 대기 시간 초과)

서버와 연결은 되었지만, 일정 시간 동안 응답을 받지 못하면 발생

📌 개념

  • 서버가 요청을 받았지만, 지정된 시간 내에 응답을 보내지 않으면 발생
  • 서버가 과부하 상태이거나, 응답을 생성하는 데 시간이 오래 걸리는 경우 (예: 대량 데이터 처리)

📌 발생 시점

  • 연결이 완료된 후, 서버 응답을 기다리는 중에 발생

📌 예시

import requests

# Read Timeout 설정 (예: 10초)
requests.get("https://example.com", timeout=(5, 10))

 

 

🔹 설명:

  • (5, 10):
    • 5초: Connection Timeout (서버 연결 제한)
    • 10초: Read Timeout (서버 응답 제한)
  • 연결은 성공했지만 10초 내에 응답이 없으면 requests.exceptions.ReadTimeout 오류 발생

🚀 Connection Timeout vs. Read Timeout 비교

 

구분 Connection Timeout Read Timeout
정의 서버에 연결하는 시간 초과 서버에서 응답을 받는 시간 초과
발생 시점 연결이 수립되기 전 연결 후, 응답 대기 중
원인 네트워크 장애, 서버 다운, 방화벽 문제 서버 과부하, 요청 처리 지연
해결 방법 네트워크 상태 확인, 서버 정상 작동 여부 점검 서버 성능 개선, 타임아웃 시간 조정

 

👉 결론:

  • Connection Timeout: 아예 서버 연결이 안 될 때
  • Read Timeout: 서버는 연결되었지만 응답이 너무 느릴 때

 

필요에 따라 적절한 타임아웃 값을 설정하면 네트워크 문제를 더 효과적으로 처리할 수 있습니다.

 

 

 

 

300x250
반응형