| 구분 | HTTP (Short-lived) | 소켓 (Long-lived) |
| OS 주요 업무 | 연결 생성 및 해제 (노가다) | 연결 상태 유지 및 감시 (관리) |
| 자원 소모 | 포트 번호, 메모리 (TIME_WAIT) | CPU (컨텍스트 스위칭), 파일 서술자 |
| 효율성 | 가끔씩 데이터 보낼 때 유리 | 실시간으로 자주 보낼 때 유리 |
| 한계 상황 | 포트 부족 | 동시 관리 인원 과다 |
HTTP는 요청이 끝나면 자동으로 통신 연결이 해제된다.
반면에 소켓은 Close 동작이 있기 전까지 통신 연결이 지속되며 클라이언트의 요청이 별도로 없더라도 통신이 가능하다.
즉 실시간 데이터를 주고 받기에 적합한 환경이며 bind를 통해 포트 번호를 지정한다.
클라이언트가 동일 환경에서 여러개의 프로그램을 실행하더라도 OS가 임시 포트를 발급하기 때문에 별도의 작업이 이루어짐.
TCP : 데이터를 확인하는 절차가 있음 데이터의 정확성이 중요한 일에 사용됨. 메일 같은 경우
UDP : 데이터를 보내기만 할 뿐 확인 절차가 없음 최소한의 지연이 필요한 게임 같은 분야에 사용됨
'BackEnd' 카테고리의 다른 글
| 상태 코드 (StatusCode) (0) | 2025.12.29 |
|---|---|
| auth.py, images.py 예시 (0) | 2025.12.28 |
| 작업 순서 Python Flask (서버 기본 설정) (1) | 2025.12.27 |