[깔끔한 파이썬 탄탄한 백엔드#3]

강지훈·2022년 9월 17일
0

가상환경 , 다 삑 나서

이론부분 진도 나가기...

[HTTP의 구조 및 핵심 요소]

프론트엔드 시스템과 백엔드 API 시스템은 일반적으로 HTTP 프로토콜을 기반으로 통신한다.
● HTTP 핵심요소
● HTTP 구조
● 자주 사용되는 HTTP 메소드와 Status Code

HTTP는 HyperText Transfer Protocol 의 약자

HTTP 통신 방식에는 2가지 특징이있다.
하나는 HTTP의 요청(request)과 응답(response) 방식이고 또 다른 특징은 stateless 다

HTTP는 기본적으로 요청(request)와 응답(response)의 구조로 되어있다.
HTTP를 기반으로 통신 할 때 클라이언트가 먼저 HTTP 요청을 서버에 보내면 서버는 요청을 처리한 후 결과에 따른 HTTP 응답을 클라이언트에게 보냄으로써 하나의 HTTP 통신이 된다

그러므로 백엔드 API 시스템의 엔드포인트 구현도 기본적으로 HTTP 요청을 인풋(input)으로 받아서 HTTP 응답을 아웃풋(output)으로 리턴하는 구조로 구현을 하게 된다

stateless
stateless는 말 그대로 상태가 없다는 뜻
HTTP통신에서는 상태라는 개념이 존재하지 않는다.

세션(session)은 쿠키와 마찬가지로 HTTP 통신상에서 필요한 데이터를 저장할 수 있게 하는 메커니즘이다. 쿠키와 차이점이라면 쿠키는 웹 브라우저, 즉 클라이언트 측에서 데이터를 저장하는 반번에 세션은 웹 서버에서 데이터를 저장한다.

[Start Line]
이름 그대로 HTTP 요청의 시작줄이다. 예를 들어 "search" 엔드포인트에 GET HTTP 요청을 보낸다면 해당 HTTP 요청의 start line은 다음과 같다

GET /serch HTTP/1.1

start line은 세 부분으로 구성되어 있다
HTTP 메소드
Request tartget
HTTP version

HTTP 메소드
HTTP 메소드는 해당 HTTP 요청이 의도하는 액션을 정의하는 부분
ex) GET,POST,PUT,DELETE,OPTIONS

Request target
HTTP 요청이 전송되는 목표 주소를 말한다.

HTTP version
해당 요청의 HTTP 버전을 나타낸다
HTTP 버번을 명시하는 이유는 HTTP 버전에 따라 HTTP 요청 메시지의 구조나 데이터가 약간씩 다를 수 있으므로 서버가 받은 요청의 HTTP version에 맞추어서 응답을 보낼 수 있도록 하기 위함

[헤더]
헤더 정보는 HTTP 요청 그 자체에 대한 정보를 담고 있다. 예를 들어, HTTP 요청 메시지의 전체크기와 같은 정보를 담고 있다.

[바디]
HTTP 요청이 전송하는 데이터를 담고 있는 부분

profile
never stop

0개의 댓글