HTT API, REST API, WEB API의 차이점에 대해 알아보기 전에 API란 무엇인지 알아보자.
API란?
Application Programming Interface의 약자로,
애플리케이션(응용프로그램)에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 즉, 애플리케이션이 어떤 프로그램이 제공하는 기능을 사용할 수 있게 만든 매개체다.
컴퓨터와 인간을 연결시키는 사용자 인터페이스(UI)와 반대로, API는 컴퓨터나 소프트웨어를 서로 연결한다.
서버는 프로그램에게 자신이 제공하고자 하는 데이터나 기능을 제어할 수 있는 API로 만들면, 접근 권한이 있는 프로그래머나 프로그램이 API를 통해 서버에서 제공하는 데이터를 요청해서 사용할 수 있게 된다.
자 이제 각 API에 대해 알아보자!
HTTP API란?
HTTP를 사용하여 프로그램끼리 소통하는 API를 말한다.
즉 HTTP 프로토콜을 사용하여 클라이언트와 서버 간에 데이터를 전송하는 API로 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 요청을 처리한다.
보통 우리가 흔히 보는 OPEN API, facebook API, kakao API 등의 대부분 API는 HTTP라는 통신 규칙으로 소통하는 API이다.
REST API란?
REST(Representational State Transfer) API는 HTTP API의 한 종류로, REST 아키텍처 스타일을 따른다. 사실 HTTP API와 REST API는 사실 거의 같은 의미로 사용되고 있으며
다른 점이 있다면 REST API는 HTTP API에 여러 가지 제약 조건이 추가된다는 점이다.
REST는 다음 4가지 제약조건을 만족해야 한다.
*참고 : https://ko.wikipedia.org/wiki/REST*
- 자원의 식별
- 메시지를 통한 리소스 조작
- 자기서술적 메서지
- 애플리케이션의 상태에 대한 엔진으로써 하이퍼미디어
REST는 HTTP를 잘 활용하기 위한 원칙이라고 할 수 있고 REST API는 이 원칙을 준수해 만든 API이다.
그런데 이미 많은 사람들이 해당 조건을 지키지 않아도 REST API라고 하기 때문에, HTTP API나 REST API를 거의 같은 의미로 사용하고 있다. 하지만 앞서 말한 것처럼 위의 제약 조건들을 모두 지켜야 진정한 REST API라고 할 수 있다.
Web API란?
Web API는 웹에서 사용할 수 있는 API의 일반적인 용어로, HTTP를 통해 접근할 수 있는 모든 API를 포함한다. 즉 HTTP API와 REST API는 Web API의 하위 개념으로 포함된다.
정리하자면,
Web API: 웹에서 사용할 수 있는 모든 API를 포괄하는 용어이다. 이는 HTTP를 통해 접근할 수 있는 API를 포함하며, REST, SOAP, GraphQL 등 다양한 프로토콜과 아키텍처 스타일을 사용할 수 있다.
HTTP API: Web API의 한 종류로, HTTP 프로토콜을 사용하여 클라이언트와 서버 간에 데이터를 전송하는 API이다. HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 요청을 처리한다.
REST API: HTTP API의 한 종류로, REST 아키텍처 스타일을 따른다. REST API는 자원(리소스)을 URI로 식별하고, HTTP 메서드를 사용하여 자원에 대한 CRUD 작업을 수행한다. REST는 상태를 유지하지 않으며, 클라이언트와 서버 간의 상호작용이 독립적이다.
따라서, HTTP API와 REST API는 모두 Web API의 범주에 속하며, Web API는 이들 외에도 다양한 형태의 API를 포함할 수 있다.
'개발 > 기타' 카테고리의 다른 글
vscode사용시, .eslintrc.json 파일의 prettier설정이 적용되지 않는 이유 (0) | 2024.05.28 |
---|---|
.gitignore 자동 생성 사이트 (0) | 2024.03.25 |
Git Flow와 Github Flow (0) | 2024.03.14 |