CS/네트워크

네트워크 - REST

개발 일기92 2024. 6. 19. 16:44

REST?

Representational State Transfer의 약자. HTTP 통신을 활용하기 위해 고안된 아키텍처.

클라이언트는 URI로 표현된 자원을 HTTP 메서드를 이용해 CRUD 연산을 할 수 있다.

자원을 명시해 연산을 수행하고 상태를 주고 받는 것이다.

 

REST의 특징

  • 일관된 인터페이스 : URI를 HTTP메서드로 조작하는 일관된 인터페이스를 사용. HTTP를 따르는 모든 플랫폼에서 REST사용 가능
  • 클라이언트-서버 구조 : 클라이언트와 서버 간에 요청-응답의 독립적인 구조를 갖는다. 클라이언트는 서버에 요청을 보내고 응답 대기. 서버는 자원을 가지고 있고 클라이언트의 요청에 응답
  • 무상태성 : 서버에서는 클라이언트의 요청을 저장/관리 하지 않는다. 서버는 클라이언트의 요청에 대한 처리와 응답만.
  • 캐시 가능 : HTTP 표준을 사용하므로 클라이언트는 이전에 서버로 부터 받은 응답을 저장 및 재사용하는 캐싱 사용. 캐싱은 서버 부하를 줄이고 클라이언트는 빠른 응답을 받을 수 있다.
  • 자체 표현 구조 : REST API는 자원, 행위, 표현으로 구성되어 메세지를 보고 어떤 요청인지 알 수 있다.
  • 계층형 구조 : REST 서버는 다중 계층으로 구성될 수 있어 보안,암호화 같은 계층을 추가해 유연하게 확장 가능.

URI : 인터넷에 있는 자원 주소. 인터넷 프로토콜에 항상 붙어다닌다. 

URL : 인터넷에서 자원의 위치를 알 수 있는 규약. 웹사이트 주소와 인터넷의 모든 자원을 나타낼 수 있다.

URN : 자원의 위치 정보가 아닌 실제 자원을 특정.

 

REST API

REST를 기반으로한 인터페이스.

 

REST API구성

자원 - URI

행위 - HTTP 메서드

표현 - json, xml 등

 

클라이언트 -> GET/ DELETE/ PUT/ POST -> REST API -> HTTP 요청 -> 서버

클라이언트 <- json/ xml                               <- REST API <- HTTP 응답 <- 서버

 

RESTful? - REST규칙을 지키며 API를 제공하는 서비스. 

RESTful 규칙 준수 사항

  • 자원에 대한 행위는 HTTP 메서드로 나타내며 메서드나 행위, 표현이 URI에 들어가면 안된다.
  • HTTP 메서드는 명시적이어야 함. ex) POST메서드로 Ceate + Update 같은 연산을 같이 하면 명시적이라 할 수 없음.
  • URI 경로는 슬래시/ 로 계층 관계 표현. 마지막에 /가 들어가면 안됨.
  • URI 경로에는 언더바_를 사용하면 안되고 소문자 사용을 지향함.

HTTP 메서드?

클라이언트가 요청을 보낼 때 요청에 포함된 HTTP 메서드는 아래와 같다.

  • POST : 데이터 생성
  • GET : 데이터 조회
  • PUT : 데이터 갱신
  • DELETE : 데이터 제거

HTTP외 메서드

  • PATCH : 데이터 일부 갱신
  • HEAD : 데이터 조회, HTTP메세지에 바디 포함하지 않고 헤더로만 응답
  • TRACE : 클라이언트 요청 메세지를 그대로 반환(루프백 메세지)하면서 쿠키 및 세션 값을 포함하여 응답
  • CONNECT : 요청한 자원을 양방향으로 연결하는데 사용. SSL을 사용하는 웹 사이트에 접속 가능
  • OPTION : 서버가 지원하는 HTTP메서드를 메세지 헤더에 포함하여 응답

'CS > 네트워크' 카테고리의 다른 글

네트워크 - 정리  (0) 2024.06.20
네트워크 - HTTP/S  (0) 2024.06.19
네트워크 - OSI 7계층, TCP/IP, TCP/UDP  (0) 2024.06.19