반응형

1. Connection Timeout

발생 시점: 서버와 연결을 시도하는 과정에서 시간 초과 발생.

  1. 클라이언트가 서버에 연결 요청을 보냄 (CONNECT).
  2. 서버가 응답하지 않거나 네트워크 문제로 연결이 지연.
  3. Connection Timeout 설정 시간 초과 → ConnectTimeoutException 발생.

예시

 

  • 서버 주소가 잘못 설정되어 DNS 조회 실패.
  • 서버가 다운되어 요청을 처리하지 못함.
  • 방화벽이 연결을 차단.

 

 

 

2. Socket Timeout (응답 대기)

발생 시점: 연결이 성공한 후, 서버가 응답 데이터를 보내기 시작하지 않을 때 시간 초과 발생.

전체 응답 시간이 아닌 개별 패킷 응답 시간

  1. 클라이언트가 서버와 연결 성공.
  2. 서버는 요청을 받았으나 응답 처리가 지연됨.
  3. 클라이언트가 Socket Timeout 동안 대기했으나 데이터가 도착하지 않음 → SocketTimeoutException 발생.

예시

 

  • 서버 과부하로 응답 지연.
  • 요청 처리 중 서버의 작업이 중단됨.
  • 네트워크 패킷이 손실됨.

 

 

 

3. Read Timeout

발생 시점: 응답 데이터의 일부를 읽은 후, 남은 데이터를 끝까지 받지 못할 때 시간 초과 발생.

  1. 클라이언트가 서버와 연결 성공.
  2. 서버가 일부 응답 데이터를 보내기 시작.
  3. 응답 데이터의 나머지가 전송되지 않음.
  4. 클라이언트가 Read Timeout 동안 대기했으나 데이터 전송이 완료되지 않음 → SocketTimeoutException 발생.

예시

  • 대규모 데이터를 처리 중 네트워크 장애 발생.
  • 서버 응답이 중간에 중단됨.
  • 클라이언트가 데이터를 너무 빨리 읽으려 함.

 

 

SocketTimeout = ReadTimeout:

  • 두 용어는 Java에서 동일한 타임아웃 설정을 가리킵니다.
  • 둘 다 응답 데이터 읽기와 관련된 대기 시간을 제어합니다.
반응형

+ Recent posts