반응형
HTTP(HyperText Transfer Protocol)
웹 상에서 클라이언트(주로 웹 브라우저)와 서버 간에 정보를 주고받기 위한 프로토콜이다. 웹 페이지, 이미지, 동영상, 텍스트 등 다양한 형태의 데이터를 전송하는 데 사용된다.
HTTP는 비연결형(stateless) 프로토콜이며, 요청(Request)과 응답(Response)의 형태로 동작한다.
특징
1. Stateless : 말 그대로 서버가 클라이언트 상태를 저장하지 X Stateful과 비교하자면
Stateful
손님: 노트북 모델 Z의 가격은 얼마인가요?
직원: 100만원입니다.
손님: 이 모델 2개 구매하겠습니다.
직원: 총 200만원입니다. 현금으로 결제하실까요, 카드로 결제하실까요?
손님: 카드로 결제하겠습니다.
직원: 200만원 결제 완료되었습니다. 감사합니다.
이 상황에서 우리는 직원이 손님의 이전 상태를 저장하고 있음을 알 수 있다.
즉, 직원이 Context(state) 보존 -> 모델 z가격, 총 구매 가격
Stateless
손님: 노트북 모델 Z의 가격은 얼마인가요?
직원A: 100만원입니다.
손님: 이 모델 2개 구매하겠습니다.
직원B: 어떤 모델 말씀이실까요?
손님: 카드로 결제하겠습니다.
직원C: 어떤 모델을 몇 개 구매하시는 건가요?
손님의 이전 정보(context)를 저장하지 않아 정보를 계속해서 추가적으로 요청해야 한다.
2. Connectionless : 요청을 주고 받을 때만 연결을 유지하고 응답을 주고 나면 tcp/ip 연결 끊음
HTTP의 장점
- 단순성: 구조가 간단하고 구현이 쉬워 웹 통신에서 효율적이다.
- 범용성: 전 세계적으로 표준화된 프로토콜로, 다양한 형태의 데이터 전송을 지원한다.
- 확장성: 이미지, 동영상, JSON 등 다양한 데이터를 전송할 수 있으며, 캐싱을 통해 성능을 향상시킨다.
- 보안 지원: HTTPS를 사용하여 암호화된 안전한 통신을 지원한다.
요약
- stateless라서 응답서버 쉽게 바꿀 수 있어 무한한 서버 증설 가능
- 트래픽이 많지 않고, 빠른 응답을 제공해 효율적
- 최소한의 자원으로도 서버를 유지
HTTP의 단점
- 무상태성: 각 요청마다 클라이언트 정보를 다시 제공해야 하므로, 사용자 세션 관리가 복잡해질 수 있다.
- 비연결성: 지속적인 연결이 필요할 때 비효율적이며, 매번 연결을 재설정하는 오버헤드가 발생할 수 있다.
- 보안 취약성: HTTP는 기본적으로 암호화되지 않아 중간에서 데이터가 탈취될 가능성이 있다.
- 오버헤드 발생: 텍스트 기반이기 때문에 대용량 데이터를 전송할 때 속도가 느릴 수 있다.
요약
- 매번 인증
- 이걸 해결하기 위해 쿠키나 세션 사용해 데이터 처리해야 한다.
- 보안 안됨
- 매번 새로 연결해서 3way handshake 시간 추가
결론
HTTP는 단순하고 범용적으로 사용되지만, 무상태성과 보안 문제를 해결하기 위해 HTTPS와 같은 기술이 필요하다.
반응형
'인터넷' 카테고리의 다른 글
쿠키와 세션을 사용하는 이유 (0) | 2024.10.14 |
---|---|
API란? (2) | 2024.10.12 |
RESTful API 이란? (4) | 2024.09.09 |