본문 바로가기
IT&Tech

HTTP와 REST API 개념 정리

by 퍼니홀릭 백과사전 2024. 10. 13.
반응형

HTTP 프로토콜 개념을 설명하는 클라이언트와 서버 간의 데이터 요청 및 응답 일러스트

1. HTTP (Hypertext Transfer Protocol)

HTTP는 월드 와이드 웹(WWW)에서 데이터를 주고받기 위한 통신 프로토콜입니다. 웹 서버와 클라이언트(브라우저 또는 애플리케이션) 사이에서 데이터를 전송하는 표준으로, 대부분의 웹 애플리케이션이 이를 통해 상호작용을 수행합니다. HTTP는 리소스(문서, 이미지, 데이터 등)를 요청하고 응답하는 방식으로 작동하며, 주로 다음과 같은 방식으로 데이터를 전송합니다.

  • GET: 리소스(데이터)를 가져올 때 사용.
  • POST: 리소스를 생성하거나 서버에 데이터를 보낼 때 사용.
  • PUT: 리소스를 업데이트할 때 사용.
  • DELETE: 리소스를 삭제할 때 사용.

2. REST API (Representational State Transfer API)

REST API는 HTTP를 기반으로 하는 웹 서비스의 일종입니다. REST는 자원을 정의하고 자원에 대한 작업을 수행하는 방식을 제공하는 아키텍처 스타일입니다. RESTful API는 HTTP 메서드(주로 GET, POST, PUT, DELETE)를 사용하여 클라이언트와 서버 간의 통신을 수행합니다.

REST의 주요 특징:

  • 무상태성 (Stateless): 서버는 클라이언트의 이전 요청 상태를 기억하지 않습니다. 모든 요청은 독립적으로 처리됩니다.
  • 리소스 기반: URL을 통해 자원을 식별하고, 자원에 대한 작업은 HTTP 메서드를 사용해 수행합니다.
  • 일관된 인터페이스: 요청과 응답의 구조가 일관되어야 합니다. 클라이언트는 다양한 자원에 대해 동일한 방식으로 상호작용할 수 있습니다.
  • 클라이언트-서버 구조: 클라이언트는 사용자 인터페이스를 관리하고, 서버는 데이터와 리소스를 관리합니다. 이 둘은 서로 독립적으로 동작합니다.

HTTP와 REST API의 관계

REST API는 HTTP 프로토콜을 기반으로 설계되었기 때문에, REST API에서 사용하는 대부분의 작업은 HTTP 메서드와 일치합니다. 즉, HTTP는 RESTful 웹 서비스가 자원과 상호작용하는 기본 통신 수단입니다.

예시:

  • GET /users/123 : 서버에서 ID가 123인 사용자의 정보를 가져옵니다.
  • POST /users : 새로운 사용자를 생성합니다.
  • PUT /users/123 : ID가 123인 사용자의 정보를 수정합니다.
  • DELETE /users/123 : ID가 123인 사용자를 삭제합니다.

REST API의 장점

  • 확장성: 클라이언트와 서버의 독립적인 설계로 인해, 클라이언트를 변경하지 않고도 서버를 확장할 수 있습니다.
  • 유연성: 다양한 포맷(JSON, XML 등)을 사용할 수 있어 여러 클라이언트와 쉽게 호환됩니다.
  • 다양한 애플리케이션에 사용 가능: 웹 애플리케이션뿐만 아니라 모바일 앱, 데스크톱 애플리케이션에서도 활용 가능합니다.

결론

HTTP는 웹에서 데이터를 주고받기 위한 프로토콜이고, REST API는 이러한 HTTP를 사용하여 리소스와 상호작용하는 웹 서비스 스타일입니다. REST API는 HTTP의 구조와 메서드를 기반으로 클라이언트-서버 간의 통신을 효율적으로 처리합니다.

반응형