프론트엔드 시스템과 백엔드 API 시스템은 HTTP 프로토콜을 기반을 통신한다.
HTTP란 ?
HyperText Transfer Protocol
웹상에서 HTAML을 서로 주고받을 수 있도록 약속한 통신 규약이다.
특징
request response, stateless
벡엔드 API 시스템의 엔드포인트 구현도 기본적으로 HTTP 요청을 input 으로 받아서 HTTP 응답을 output으로 리턴하는 구조
GET / search HTTP / 1.1
[HTTP 메서드] / [Request Target] / [HTTP version]
🕹 HTTP 메서드
HTTP 요청이 의도하는 액션을 정의한다. 서버로 부터 정보를 얻을 때는 GET, 서버에 새로운 데이터를 저장하려고 한다면 POST 요청을 보낸다. (종류: GET, POST, PUT, DELETE, OPTIONS 등...)
🕹 Request Target
HTTP 요청이 전송되는 목표
🕹 HTTP version
사용하는 해당 요청의 HTTP 버전 표시
Start Line
⌞HTTP 메소드
⌞-Request target
⌞-HTTP version
Header 는 key와 value 값으로 이루어져 있으며, HTTP 요청 정보를 담고 있다.
예) HOST : google.com
🕹 Host
요청이 전송되는 target의 URL 주소
🕹 User-Agent
요청을 보내는 클라이언트의 정보
🕹 Accept
해당 요청이 받을 수 있는 응답 body 데이터 타입의 정보
MIME(Multipurpose Internet Mail Extensions)
🕹 Connection
클라이언트와 서버가 계속해서 네트워크 연결을 유지 여부
🕹 Content-Type
request 의 body 타입을 알려준다
🕹 Content_Length
요청 body의 총 길이
HTTP요청이 보내는 데이터를 담고 있는 부분! 데이터가 없으면 비어있게 된다.
🕹 HTTP Version
HTTP Version 을 나타낸다.
🕹 Status Code
응답 상태가 미리 지정되어 있는 숫자로 된 코드를 나타낸다.
🕹 Status Text
응답 상태를 간략하게 설명해주는 부분
🕹 Server라는 헤더값이 User-Agent 대신 사용된다.
🕹 데이터가 담긴다. 만약에 데이터가 없다면 비어있게 된다.