[CS공부] Restful API와 HTTP Method

JUHEE·2024년 11월 19일

공부

목록 보기
3/3

REST(Representational State Transfer)

  • 분산 네트워크 시스템을 설계하기 위한 아키텍처를 의미
  • REST의 주요 특징으로는 자원(resource) 중심의 설계, 표현 전달, 서버-클라이언트 분리 구조, 무상태성, HTTP 프로토콜의 사용 등등이 있다
  • 무상태성이란 각 요청은 독립적이며, 서버는 클라이언트의 이전 요청 상태를 저장하지 않는 것을 의미한다

REST의 구성 요소

  • 자원(Resource): URI
    - 모든 자원에 고유한 ID가 존재한다
    - 자원을 구별하는 ID는 HTTP URI 형태로 존재
    - uri를 이용하여 자원을 지정하고 상태(정보)조작을 서버에 요청한다
    - ex) https://example.com/users/123
  • 행위(Verb): HTTP Method
    - HTTP 프로토콜 사용
    - GET, POST, PUT, DELETE
  • 표현(Representation of Resource)
    - 클라이언트가 요청을 보내면 서버는 응답을 보낸다
    - 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 응답으로 나타내어 질 수 있다
    - 보통 JSON 또는 XML을 사용한다

HTTP Method

  • 서버가 수행할 동작을 요청하는 방법
  • GET,POST,PUT,DELETE,PATCH 등이 있다
  • HTTP 상태코드: 클라이언트 요청의 처리상태를 알려주는 기능, 보통 100-500번대를 사용한다
    - 1XX(Informational): 요청이 수신되어 처리중인 상태
    - 2XX(Successful): 요청이 정상적으로 처리된 상태
    - 3XX(Redirection): 요청 처리를 위해 추가 작업이 필요한 상태
    - 4XX(Client Error): 클라이언트 오류나 잘못된 문구로 서버가 요청을 수행할 수 없는 상태
    - 5XX(Server Error): 서버 오류로 서버가 정상 요청임에도 처리하지 못하는 상태

Restful API

  • REST아키텍처를 따라 클라이언트와 서버 간의 통신을 설계하는 방식을 의미한다
  • uri를 통해 자원을 명시하고 http 메소드를 통해 자원에 대한 상태(정보) 변화 등을 요청하는 것이다
  • 장점
    - HTTP 프로토콜을 사용하여 별도의 인프라를 구축할 필요가 없고, HTTP 표준 프로토콜을 따르는 모든 플랫폼에서 사용할 수 있다
    - 서버와 클라이언트의 완전한 분리를 지원하여 개발 과정에서 유연함을 가진다 예를 들어, 개발자는 애플리케이션 로직을 다시 작성하지 않고도 데이터베이스 계층을 변경할 수 있게 된다
    - 다양한 클라이언트의 등장, 모바일 디바이스에서도 통신할 수 있는 프로그램이 필요해짐에 따라 멀티플랫폼 지원을 위한 아키텍처를 세우고 이용하는 방법을 모색하게 되었고, REST가 관심을 받게 되었다
  • 단점
    - HTTP Method 형태가 제한적이고, 표준이 존재하지 않는다는 단점이 있다.
    - 실시간 통신, 복잡한 트랜잭션 등을 처리하는 데는 적합하지 않다

참고자료

profile
초보개발자

0개의 댓글