4장 HTTP의 구조 및 핵심 요소
-
HTTP 통신 방식
- 요청(request)과 응답(response)
-
stateless
     각각의 HTTP통신은 독립적이며 그 전에 처리된 HTTP통신에 대해서 전혀 알지 못한다.
요청을 보낼 때 필요한 모든데이터를 매번 포함시켜야한다
-
HTTP 요청(request) 구조
-
Start Line
GET /search HTTP/1.1
HTTP 메소드| Request target | HTTP version
-
Headers
- key:value ex) HOST : google.com
-
Accept : 해당 요청이 받을 수 있는 응답 body 데이터 타입을 알려 줄 수 있는 헤더
- MIME type이 value로 지정된다.
- Body
-
Start Line
-
HTTP 응답(response) 구조
-
Status Line
HTTP/1.1 404 Not Found
HTTP Version | Status Code | Status Text
-
Headers
- 응답에서만 사용되는 헤더값이 있다. ex) server헤더
- Body
-
Status Line
- 자주 사용되는 응답
- API 엔드포인트 아키텍쳐 패턴
- REST(Representation State Transfer)ful HTTP API
- API에서 전송하는 리소스를 URI로 표현하고 해당 리소스에 행하고자 하는 의도를 HTTP 메소드로 정의하는 방식.
- self-descriptiveness; 엔드포인트의 구조만 보더라도 제공하는 리소스와 기능을 파악할 수 있다. 구조가 훨씬 직관적이며 간단해진다.
- API 구조가 특정 클라이언트에 맞추어져서 다른 클라이언트에서 사용하기에 적합하지 않다.
- GraphQL
- 페이스북이 만든 방식, REST 방식의 API와는 다르게 엔드포인트가 하나. 이 엔드포인트에 클라이언트가 필요한 것을 정의해서 요청하는 방식.
- REST(Representation State Transfer)ful HTTP API
'Books > about dev' 카테고리의 다른 글
[깔끔한 파이썬 탄탄한 백엔드] 8장 unit test🔍 (0) | 2020.04.29 |
---|---|
[깔끔한 파이썬 탄탄한 백엔드]7장 인증(authentication) (0) | 2020.04.13 |
[HTTP 완벽가이드] 3, 4장 (0) | 2020.03.21 |
[깔끔한 파이썬 탄탄한 백엔드]3장 첫 API 개발 시작 (0) | 2020.03.20 |
[깔끔한 파이썬 탄탄한 백엔드] 1장 개발 환경 구성 (0) | 2020.03.19 |