ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • REST API
    네트워크 2023. 3. 27. 23:20

    REST? (REpresentational State Transfer)

    : 전반적인 웹 어플리케이션에서 상호작용하는데 사용되는 웹 아키텍쳐 모델.

    : 자원을 주고받는 웹 상에서의 통신 체계에 있어 범용적인 스타일을 규정한 아키텍쳐.

    : 자원을 이름으로 구분해 해당 자원의 상태를 주고받는 모든 것.

    : HTTP URI를 통해 자원 명시하고, HTTP Method 통해 해당 자원에 대한 CRUD적용하는 것.

    : 자원 기반의 구조 설계의 중심에 자원이 있고, HTTP Method로 이를 처리한다.

     

    REST 특징

    • 균등한 인터페이스 : HTTP 표준만 따른다면 어떤 기술이던지 접목하여 사용가능하다.
    • 무상태성 : 클라이언트 상황을 고려하지 않고 API 요청에 대해서만 처리한다.
    • 캐싱 가능
    • 자체 표현성 : 자원명시 규칙 및 Method 그 자체로 의미를 지니기 때문에 어떤 요청에 있어 어떤 것을 표현하는지 알아보기 쉽다.
    • 클라이언트-서버 구조 : REST서버가 API 제공하는 방식이기 때문에 클라이언트에서 처리하는 부분과 독립적으로 동작. 의존성 줄어들고 독립적으로 개발할 수 있다.
    • 계층형 구조 : 보안, 로드 벨런싱, 암호화 등 추가할 수 있다. Proxy 및 게이트웨이 등 중간매체 사용할 수 있다.

     

    리소스에 대한 행위는 HTTP Method로 표현한다.

    • GET : 리소스 조회
    • POST : 리소스 생성
    • PUT : 리소스 (전체) 업데이트
    • DELETE : 리소스 삭제
    • PATCH : 리소스 (일부) 수정
    • HEAD : GET 방식과 동일. 응답에 body 존재하지 않으며, 응답코드와 head만 응답.
    • CONNECT : 동적으로 터널모드 교환. Proxy 기능 요청시 사용
    • TRACE : 원격지 서버에 루프백 메세지 호출하기 위해 테스트용으로 사용
    • OPTIONS : 웹 서버에서 지원하는 메서드 종류 확인할 경우 사용

     

    HTTP 상태코드

    • 2xx : 성공 관련
    • 3xx : 리다이렉션 관련
    • 4xx : 클라이언트 에러 관련
    • 5xx : 서버 에러 관련

     

    API? (Application Programming Interface)

    : 기존에 있는 응용 프로그램을 통해 데이터를 제공받거나 기능을 사용하고자 할 때 사용하는 인터페이스 및 규격

    : 응용 프로그램에서 사용할 수 있도록 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

    : 프로그램끼리 통신할 수 있도록 하는 중재자


    URI (Uniform Resource Identifier)

    : 리소스에 접근할 수 있는 유일한 식별자

    • URL (Uniform Resource Locator)
      • 리소스의 경로를 기반으로 식별
      • 4가지 요소로 구성
        • Protocol (Scheme) : 어플리케이션 계층의 통신 규약. FTP, HTTP, HTTPS
        • HostName (IP Address) : 도메인 이름.
        • Port : 메세지를 받아야 하는 프로세스가 있는 위치
        • 추가정보 (Path or Query) : 리소스가 있는 Path. 리소스를 반환하는 질의 Query.
    • URN (Uniform Resource Name)
      • 리소스의 이름을 기반으로 식별

     

    CRUD

    : 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능 Create + Read + Update + Delete를 묶어서 일컫는 말.

    : 사용자 인터페이스가 갖추어야 할 기능(정보의 참조, 검색, 갱신)을 가리키는 용어

     

    터널모드

    : IPSec에 두가지 모드가 있다.

    • 전송 모드(Transport Mode) : IP의 내용만 보호
    • 터널 모드(Tunnel Mode) : 헤더까지 모두 보호

     

    Proxy

    : 보안상의 문제를 방지하기 위해, 직접 통신하지 않고 중계자 거친다.

     

    루프백(loopback)

    : 가상의 인터페이스 만들어 사용하는 것.

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

    HTTP HTTPS  (0) 2023.03.29

    댓글

heeezzang Tistory.