Timeout 에러
timeout 에러 발생시, 다양한 이유에서 Timeout 504 에러가 발생 할 수 있다.
ConnectTimeOut
연결 수립 과정(Connection TimeOut) 에서의 에러
해당 서버로 아예 연결 수립 과정에서 막히는 경우
timeout=0.0001 : 0.0001 초 안에 연결 수립 되어야 한다고 가정
import requests
from requests.exceptions import ReadTimeout, ConnectTimeout
############## Error - ConnectTimeout 에러! ##############
url = "https://alden-kang.tistory.com/20"
try:
# 의도적으로 매우 짧은 타임아웃으로 연결 수립 조차 못하게 설정 (0.001초)
response = requests.get(url, timeout=0.0001)
print(response.text)
except ConnectTimeout as e:
print("ConnectTimeout: 서버의 연결이 수립되지 못했습니다.", e)
except ReadTimeout as e:
print("ReadTimeout: 서버의 응답이 시간 안에 오지 않았습니다.", e)
ReadTimeout
데이터를 받아오는 과정에서 (ReadTimeOut) 에서의 에러
연결은 성공하였고, (ConnectTimeout)
데이터를 받아오는 과정에서 Timeout 에러가 발생하는 경우
해당 서버의 http 통신 데이터 응답(response)이 느리다거나, 쿼리가 느린 경우 등 데이터를 제한 시간안에 못받은 경우 발생한다.
import requests
from requests.exceptions import ReadTimeout, ConnectTimeout
############## Error - ReadTimeout 에러! ##############
url = "http://localhost:8000/api/health" # 로컬 서버 사용
try:
# 수립 후 데이터 받는 과정 -> api에는 time.sleep(3)을 걸어주세요.
response = requests.get(url, timeout=1)
print(response.text)
except ConnectTimeout as e:
print("ConnectTimeout: 서버의 연결이 수립되지 못했습니다.", e)
except ReadTimeout as e:
print("ReadTimeout: 서버의 응답이 시간 안에 오지 않았습니다.", e)
'Python > Advanced' 카테고리의 다른 글
[Python] 데이터 직렬화 및 검증 라이브러리 비교 (with 웹프레임워크) (0) | 2024.08.04 |
---|---|
[최적화] Python 인터닝(Interning) 기법 (0) | 2024.08.03 |
Python 코드 실행 과정 (0) | 2024.07.31 |
[Python] 모듈과 패키지 (0) | 2024.06.22 |
[Python] Class 이해 - 언더바 정의, @property, @staticmethod, setter/getter (0) | 2023.07.02 |