일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코틀린
- elk
- kotiln
- c# scv
- 본식후기
- 400에러
- Kotlin
- 그라나다
- 스페인
- 아펠가모선릉
- 스페인 준비물
- kopring
- 바르셀로나
- 세비야
- 관심지향프로그래밍
- sprintboot
- 코프링
- Srping AOP
- 마드리드
- HTTP
- git명령어
- 코틀린 함수
- HTTP #웹기술
- 스프링 AOP
- http상태코드
- b-tree index
- 아펠가모 선릉
- 아펠가모
- @Component
- db index
- Today
- Total
끄적이는 메모장
[HTTP] HTTP 이해하기 (5) / REST API, RESTful 본문
서버 개발자에서 웹 기술 개발자가 되기 위한 스텝. HTTP 이해하기 (5)
REST API 란?
- HTTP 프로토콜을 사용하여 정보를 주고받는 웹의 장점을 최대한 활용한 아키텍쳐
- HTTP 프로토콜의 표준을 지킨다면 어느 플랫폼에서나 호환됨
- URI를 통해 자원을 정의하고 활용할 수 있음
- Method를 통해 API의 의도를 명확히 알 수 있음
- 서버와 클라이언트 모델을 지킴
REST 아키텍쳐의 조건
- Client-Server 구조 : 서버는 일관적인 API를 제공하며 클라이언트는 API를 이용함으로써 역할이 구분됨
- Stateless : 서버는 클라이언트의 요청을 처리만하며 상태정보를 저장하지 않음. (HTTP의 특성)
- Cacheable : 캐싱을 통해 클라이언트의 요청에 빠르게 응답이 가능함
- 인터페이스의 일관성 : 서버가 제공하는 인터페이스는 일관된 동작이 수행되어야 함 (플랫폼이 다르다고해서 다른 동작이 수행되거나 하면 안됨)
- Layered System : 클라이언트의 요청에 대해서 계층적으로 처리가 가능함. 서버 앞단에 Proxy, API-Gateway 등이 존재할 수 있으며 클라이언트는 이를 인지할 수 없음
REST API의 구조
- 자원(Resource) : URI를 이용하여 서버의 자원을 구별할 수 있음
- 행위(Verb) : Method를 통해 의미적으로 어떤 수행을 하려는지 알 수 있음
GET | 자료를 조회하는 목적 |
POST | 자료를 삽입하는 목적 |
PUT | 자료를 수정하는 목적 |
DELETE | 자료를 삭제하는 목적 |
- 표현(Representations) : 서버는 요청에 대한 응답을 다양한 데이터의 형태(XML, JSON 등)로 가능
RESTful 하다는 의미
- REST API의 설계 원리를 따르도록 구현이 되었다는 의미
- 설계원칙
1. 계층관계는 슬래시(/)를 이용함
2. URI의 마지막은 슬래시(/)로 끝나서는 안됨
3. 경로에는 명사를 사용하며 소문자를 이용함
4. 가독성을 위해 언더바(_)를 지양하고 하이픈(-)을 사용함
5. 파일의 확장자를 URI에 포함하지 않음
+ Method를 API목적에 맞게 사용
참고
https://ko.wikipedia.org/wiki/REST
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
'웹기술 개발자 되기 > HTTP' 카테고리의 다른 글
[HTTP] HTTP 이해하기 (4) / HTTP status codes (0) | 2020.04.03 |
---|---|
[HTTP] HTTP 이해하기 (3) / Chunked transfer, Pull & Push (0) | 2020.03.29 |
[HTTP] HTTP 이해하기 (2) / Session, Cookies, Keep-Alive (0) | 2020.03.29 |
[HTTP] HTTP 이해하기 (1) (0) | 2020.03.29 |