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
반응형
'IT > 네트워크' 카테고리의 다른 글
내부ip 똑같은 ip로 쓸 수 있는지? (0) | 2025.03.11 |
---|---|
전용회선 라우터 역할과 변경 작업 방법은? (0) | 2025.03.11 |
내부ip와 공인ip의 차이는? (0) | 2025.03.10 |
대역폭과 트래픽 산정하는 방식은? (0) | 2025.03.09 |
전용회선 대역폭 개념은? 1G, 2M 트래픽 등등 (0) | 2025.03.08 |