[WEB] HTTP와 REST API 개념 알기
클라이언트-서버 아키텍처(Client Server Architecture)
서버간의 통신을 서버와, 클라이언트로 분리시킨 설계방식으로, 2티어 아키텍처, 또는 클라이언트-서버 아키텍처라고 부른다. 일반적으로 ‘서버’는 ‘리소스를 전달’하는 역할만 담당합니다. 전달해줄 리소스는 ‘데이터베이스’라는 별도의 공간에 따로 저장되어 있다. 2티어 아키텍처에 데이터베이스를 추가하면 3티어 아키텍처라고 한다.
2 티어 아키텍처
3 티어 아키텍처
- 클라이언트(client) : 서버로 요청을 보내고, 요청한 내용 응답(리소스)를 받아 사용하는 역할
- 서버(server) : 클라이언트의 요청에 따라 적절한 응답(리소스)를 전달해주는 곳
- 데이터베이스 : 리소스를 저장하는 공간
클라이언트는 보통 ‘플랫폼’에 따라 구분되며, 서버는 ‘무엇을 하느냐’에 따라 종류가 나뉘어집니다.
HTTP (HyperText Transfer Protocol)
클라이언트는 필요한 리소스를 ‘요청’하고, 서버는 해당 리소스를 찾아 ‘응답’하며, 이러한 통신을 하기 위해서는 통신 체계가 필요하다.
프로토콜은 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계이다. ‘정해진 규칙’에 따라 리소스를 요청해야만 원하는 리소스를 받을 수 있다.
HTTP는 웹 환경에서 정보를 주고받기 위한 프로토콜이며, HTTPS는 HTTP에서 보안이 강화된 프로토콜 이다.
API (Application Programming Interface)
API란 개발자와 API 제공자 사이에 프로그램을 작성하기 위해 만든 규약(Protocol)이자 계약(Contract)이다. 쉽게 말해, 프로그램들이 서로 상호작용하는 것을 도와주는 매개체로 볼 수 있다.
- 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여한다.
- 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 돕는 역할이다.
- 모든 접속을 표준화하기 때문에 기계/ 운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있다.
API
HTTP API
HTTP(Hypertext Trasnfer Protocol)를 통신 방식으로 사용하는 API를 HTTP API라고 한 다. 대부분 API는 HTTP라는 통신 규칙으로 소통하는 API이다.
REST API
REST란 네트워크 아키텍처 스타일입니다. REST는 HTTP를 잘 활용하기 위한 원칙이 존재한다. REST API는 REST의 원칙을 준수해서 만든 API이다.
*Representational State Transfer : 자원의 표현으로 상태를 전달하는 것
REST API 기본 설계 규칙
- 자원 : URI로 자원을 표현해야합니다.
- 행위 : 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현되어 합니다.
- 표현 : 응답 자원의 상태를 JSON, XML 등의 형태로 나타내야 합니다.
HTTP METHOD
REST API 설계 규칙
-
슬래시 구분자( / )는 계층 관계를 나타내는데 사용한다.
-
URI 마지막 문자로 슬래시( / )를 포함하지 않는다
-
하이픈( - )은 URI 가독성을 높이는데 사용
-
밑줄( _ )은 URI에 사용하지 않는다
-
URI 경로에는 소문자가 적합하다
-
파일확장자(.mp4, .png)는 URI에 포함하지 않는다
- 리소스 간에는 연관 관계가 있는 경우
- /리소스명/리소스 ID/관계가 있는 다른 리소스명으로 표현한다.
- /users/{userid}/devices
- 영어는 복수형으로 사용한다.
- 행위를 포함하지 않는다
✅ GET /members/delete/1 : delete와 같은 행위에 대한 표현이 들어가서는 안된다.
✅ DELETE /members/1 : HTTP Method DELETE를 이용한다.
API 문서 살펴보기
파이널 프로젝트의 API 문서룰 살펴보자
Rest 규칙 적용 전
Rest 규칙 정용 전
- url 에 동사가 포함되어 있다. (delete, update)
- http method 가 적절하게 적용되지 못했다.
- 대문자가 포함되어 있다.
Rest 규칙 적용
Rest 규칙 적용
- url이 명사로 이루어져 있다.
- 기능은 http method 를 이용해 표현했다.
- 하이픈(- )을 이용해 URI 가독성을 높였다.
Reference
- image
- 클라이언트-서버 아키텍처
- API
댓글남기기