일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 네트워크 관리사 2급
- Windows Server
- 서브넷마스크
- 코딩테스트
- 머신러닝
- 딥러닝
- 실기
- ICQA
- 자료구조
- Dynamic Programming
- 밑바닥부터 시작하는 딥러닝
- 알고리즘
- dns
- Algorithm
- Protocol
- 네트워크 관리사
- 네트워크
- 자격증
- Python
- 네트워크 자격증
- Django
- network
- 패스트캠퍼스
- 기본 정렬
- Machine learning
- IPV4
- 파이썬
- deep learning
- 프로토콜
- FTP
- Today
- Total
쳉지로그
[네트워크] REST(Representational State Transfer) 본문
REST(Representational State Transfer) 정의
- 자원(Resource)의 표현(Representation)에 의한 상태(정보) 전달
- 즉, HTTP URI를 통해 자원을 명시하고 HTTP Method를 통해 해당 자원에 대한 CRUD를 적용하는 것
CRUD란?
- 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능(Create, Read, Update, Delete)를 묶어서 일컫는 말
Create 생성 (POST) Read 조회 (GET) Update 수정 (PUT) Delete 삭제 (DELETE)
REST 구성요소
1. 자원(Resource, URI)
- 모든 자원은 고유한 ID를 가지며, 서버에 존재한다.
2. 행위(Method)
- HTTP 프로토콜의 Method를 사용한다.
3. 표현(Representation)
- 주로 JSON, XML을 통해 데이터를 주고 받는 것이 일반적이다.
REST 특징
1. 서버-클라이언트 구조(Server-Client)
- Client가 Server로 자원을 요청한다.
2. 무상태성(Stateless)
- HTTP 프로토콜의 특징과 동일하게 Stateless하다.
- 즉, 서버는 각각의 요청을 완전히 별개로 인식하여 처리한다.
3. 캐시 처리 가능(Cacheable)
- 웹 표준 HTTP 프로토콜을 그대로 사용하므로, HTTP의 특징 중 하나인 캐싱 기능 적용이 가능하다.
4. 계층화(Layered System)
- REST 서버는 다중 계층으로 구성 가능하다.
5. 인터페이스 일관성(Uniform Interface)
- URI를 지정한 자원(Resource)에 대한 조작을 일관된 인터페이스로 수행한다.
REST 장/단점
장점
- HTTP 표준 프로토콜을 따르는 모든 플랫폼에서 사용 가능
- HTTP 프로토콜의 인프라를 그대로 사용하므로 별도의 인프라 구축이 불필요
- 서버와 클라이언트의 역할을 명확하게 분리
단점
- 표준이 없음
- 사용 가능한 메소드 4개밖에 없음
- 구형 브라우저가 지원해주지 못하는 부분이 존재함
REST API? RESTful?
REST API 정의
- REST를 기반으로 서비스 API를 구현한 것
API(Application Programming Interface)란?
- 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
REST API 설계 기본 규칙
1. 슬래시( / )는 계층 관계를 표현한다.
2. URI 마지막에는 슬래시를 포함하지 않는다.
3. 하이픈( - )을 사용해 가독성을 높이고, 밑줄( _ )은 사용하지 않는다.
4. 파일 확장자는 URI에 포함하지 않는다. (Accept header 사용)
RESTful 정의
- REST 원리를 따르는 시스템
- 즉, REST API를 제공하는 웹 서비스를 RESTful하다고 표현
'네트워크 > 기초 용어' 카테고리의 다른 글
[네트워크] CDN(Content Delivery Network) (0) | 2021.11.03 |
---|---|
[네트워크] NAS(Network Attached Storage) (0) | 2021.11.01 |
[네트워크] Well-Known Port (0) | 2021.10.27 |
[네트워크] 이더넷(Ethernet) (0) | 2021.10.22 |
[네트워크] ARP(Address Resolution Protocol) (0) | 2021.10.18 |