네트워크

HTTP란?

yujenius 2025. 2. 7. 03:00

프론트엔드를 해오고 있는 나도 웹 개발을 하다 보면 브라우저가 어떻게 웹사이트를 가져오는지

또는 API 요청이 어떻게 이루어지는 궁금할 때가 있다. 

이 모든 과정의 핵심에는 HTTP가 있다.

오늘은 웹 개발의 기본이 되는 HTTP란 무엇인지, 그리고 어떤 원리로 동작하는지에 대해 알아보겠다.

 

HTTP의 개념과 특징

HTTP 란 HyperText Transfer Protocol 의 약자로 클라이언트와 서버 간의 통신 프로토콜을 의미한다. 

즉, 클라이언트와 서버가 데이터를 주고받는 통신 규약이다.

HTTP 는 WWW(World Wide Web) 상에서 데이터를 주고 받기 위한 프로토콜로

서버 간의 요청(request) 과 응답(response)을 통해 작동한다.

클라이언트는 서버에 요청을 , 서버는 이에 대한 응답을 돌려 주는 방식으로 동작한다. 

 

HTTP의 특징에는 비연결, 무상태 두가지가 존재한다. 

1. 비연결 

HTTP는 비연결 방식이기 때문에 요청 , 응답 과정이 끝나면 서버와의 연결을 종료한다

즉, 클라이언트가 요청을 보내고 서버가 응답을 보내면, 그 즉시 연결이 끊긴다.

이는 리소스를 효율적으로 관리할 수 있지만, 매번 새로운 연결을 맺어야 하기 때문에 성능 저하가 발생할 수도 있다.

이를 Keep-Alive 옵션 추가로 하나의 연결을 유지하면서 여러 개의 요청을 처리할 수 있도록 개선되었다.

 

 

2. 무상태

HTTP는 무상태 방식이므로, 서버는 클라이언트의 이전 요청 정보를 저장하지 않는다. 

즉, 요청이 독립적으로 처리되고, 서버는 클라이언트가 누구인지 기억하지 않는다. 

이 방식은 서버의 부담을 줄일 수 있지만 , 로그인 상태 유지나 장바구니 같은 기능을 구현하기 어렵다.

이 상태 유지를 위해 아래 방법들을 활용한다.

  1. 쿠키(Cookie): 클라이언트에 저장된 데이터(자동 전송됨)
  2. 세션(Session): 서버에 저장된 데이터 (세션 ID를 쿠키로 관리)
  3. JWT(JSON Web Token): 토큰 기반 인증 방식 (서버 부담을 줄이면서 보안 유지 가능)

다음에 더 자세히 소개하도록 하겠다.

HTTP의 단점

이러한 HTTP는 단점이 있다 .

기본적으로 데이터를 평문으로 전송하기 때문에 도청이나 데이터 변조의 위험이 있고

중간에 패킷을 가로채어 내용을 엿볼 수 있어서 보안에 취약하다.

물론 이를 해결하기 위해 나온 것이 HTTPS(Hypertext Transfer Protocol Secure)다

HTTP에 SSL(Secure Socket Layer) 와 TLS(Transport Layer Security) 프로토콜을 통해 암호화된 상태로 전송이 가능하다.

 

**HTTP 요청 메서드**

메서드들은 api 통신을 위해 반드시 알아둬야 하는 개념들이다.

  1. GET : 정보를 요청하기 위한 (조회)
  2. POST : 서버에 데이터를 전송할 떄 사용 (등록)
  3. PUT: 정보를 업데이트(갱신)하기 위해 사용, 정보 변경(수정)
  4. DELETE: 정보를 삭제하기 위해 사용 (삭제)
  5. PATCH: 리소스의 일부분을 수정
  6. OPTIONS: 서버에서 지원하는 HTTP 메서드의 목록을 요청할 때 사용

기본적으로 가장 많이 사용하는 메서드는 GET, POST, PUT, DELETE 가 있다.

다음 포스트에서 이어서 자세하게 소개하도록 하겠다.