URI

"Uniform Resource Identifier" (통합 자원 식별자)

 

URL

컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약(URI의 서브셋)

 

"URI는 식별하고 URL은 위치를 가리킨다"

 

 

'Computer Science > Network' 카테고리의 다른 글

[VM] VirtualBox 네트워크 정리  (0) 2022.12.22
BGP 개념  (0) 2022.11.30
[Server] HTTPS와 SSL 인증서  (0) 2021.08.06
RESTful  (0) 2021.07.27

REST

"Representational State Transfer"

  • 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미
  • 자원(resource)의 표현(representation)에 의한 상태 전달
    • 자원: 소프트웨어가 관리하는 모든 것(문서, 그림 등)
    • 자원의 표현: 자원을 표현하기 위한 이름(DB의 학생정보가 자원이면 'students'는 자원의 표현
    • 상태 전달: JSON 혹은 XML을 통해 데이터를 주고 받는다
  • HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
  • 필요한 이유
    • 애플리케이션 분리 및 통합
    • 다양한 클라이언트의 등장
    • 최근의 서버프로그램은 다양한 브라우저와 안드로이드폰, 아이폰과 같은 모바일 디바이스에서도 통신을 할 수 있어야한다.
  • 구성요소
    • 자원(Resource): URI
    • 행위(Verb): HTTP Method
    • 표현(Representation of Resource): JSON, XML, TEXT, RSS
  • 특징
    • Server-Client: 서로간 의존성이 줄어든다.
    • Stateless: Client의 context(세션, 쿠키..)를 Server에 저장하지 않는다.
    • Cacheable: 웹 표준 HTTP 프로토콜을 그대로 사용하므로 웹에서 사용하는 기존의 인프라를 그대로 활용 가능
    • Layered System
    • Code-On-Demand: Server로부터 스크립트를 받아 Client에서 실행한다.(Optional)
    • Uniform Interface: URI로 지정한 Resource에 대한 조작을 통일되고 한정적인 인터페이스로 수행한다.

REST API

  • REST 기반으로 서비스 API를 구현한 것(API: Application Programming Interface)
  • 특징
    • 사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다.
    • REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다.

❗ REST API 설계 규칙에 관해서는 https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html 를 확인하자 ❗

 

RESTful

  • 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어
  • "REST 원리를 따르는 시스템을 지칭"
  • 목적
    • 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것
    • 일관적인 컨벤션을 통한 API의 이해도 및 호환성을 높이는 것
    • 성능이 중요한 상황에선 굳이 RESTful한 API를 구현할 필욘 없다!

 

❗ 아마 url, uri와 관련이 깊은 것으로 생각된다.. 다음 내용으론 url과 uri의 차이를 알아봐야겠다 ❗

'Computer Science > Network' 카테고리의 다른 글

[VM] VirtualBox 네트워크 정리  (0) 2022.12.22
BGP 개념  (0) 2022.11.30
[Server] HTTPS와 SSL 인증서  (0) 2021.08.06
URI vs URL  (0) 2021.07.27

+ Recent posts