-
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