본문 바로가기

인터넷

HTTP(HyperText Transfer Protocol)이란?

반응형

 

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의 장점

  1. 단순성: 구조가 간단하고 구현이 쉬워 웹 통신에서 효율적이다.
  2. 범용성: 전 세계적으로 표준화된 프로토콜로, 다양한 형태의 데이터 전송을 지원한다.
  3. 확장성: 이미지, 동영상, JSON 등 다양한 데이터를 전송할 수 있으며, 캐싱을 통해 성능을 향상시킨다.
  4. 보안 지원: HTTPS를 사용하여 암호화된 안전한 통신을 지원한다.

요약

- stateless라서 응답서버 쉽게 바꿀 수 있어 무한한 서버 증설 가능

- 트래픽이 많지 않고, 빠른 응답을 제공해 효율적

- 최소한의 자원으로도 서버를 유지

 

HTTP의 단점

  1. 무상태성: 각 요청마다 클라이언트 정보를 다시 제공해야 하므로, 사용자 세션 관리가 복잡해질 수 있다.
  2. 비연결성: 지속적인 연결이 필요할 때 비효율적이며, 매번 연결을 재설정하는 오버헤드가 발생할 수 있다.
  3. 보안 취약성: HTTP는 기본적으로 암호화되지 않아 중간에서 데이터가 탈취될 가능성이 있다.
  4. 오버헤드 발생: 텍스트 기반이기 때문에 대용량 데이터를 전송할 때 속도가 느릴 수 있다.

요약 

- 매번 인증

- 이걸 해결하기 위해 쿠키나 세션 사용해 데이터 처리해야 한다.

- 보안 안됨

- 매번 새로 연결해서 3way handshake 시간 추가

 

결론

HTTP는 단순하고 범용적으로 사용되지만, 무상태성과 보안 문제를 해결하기 위해 HTTPS와 같은 기술이 필요하다.

반응형

'인터넷' 카테고리의 다른 글

쿠키와 세션을 사용하는 이유  (0) 2024.10.14
API란?  (2) 2024.10.12
RESTful API 이란?  (4) 2024.09.09