모두CBT

HTTP의 오버헤드 상세 페이지

HTTP의 오버헤드

해설

HTTP 요청 시마다 발생하는 추가 비용:

헤더 정보: 매 요청마다 User-Agent, Accept, Cookie, Content-Type 등의 헤더가 포함됨 (보통 500바이트~2KB)

연결 설정: TCP 3-way handshake + TLS handshake (HTTPS의 경우)

연결 해제: 요청 완료 후 연결을 닫는 과정

상태 정보: HTTP는 stateless라서 매번 인증 정보 등을 다시 보내야 함

예시: "안녕"이라는 4바이트 메시지를 보내도, HTTP 헤더까지 포함하면 실제로는 1KB 이상이 전송됨

웹소켓의 낮은 오버헤드

초기 연결 후 발생하는 비용:

프레임 헤더: 메시지마다 단 2-14바이트의 작은 헤더만 추가됨

연결 유지: 한 번 연결되면 계속 사용, 매번 새로 연결할 필요 없음

상태 유지: 연결이 지속되므로 인증 정보 등을 매번 보낼 필요 없음

예시: "안녕" 메시지를 보낼 때 실제로 6-18바이트 정도만 전송됨 (메시지 4바이트 + 헤더 2-14바이트)

실제 차이

HTTP: 작은 메시지도 매번 큰 헤더와 함께 전송 → 비효율적

웹소켓: 작은 헤더만 추가되므로 순수한 데이터 비율이 높음 → 효율적

특히 실시간으로 작은 메시지를 자주 주고받는 상황에서 이 차이가 크게 납니다. 채팅처럼 짧은 메시지를 많이 보내는 경우 웹소켓이 HTTP보다 대역폭을 훨씬 적게 사용하게 됩니다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.