[HTTP] 구조 및 핵심요소[수정중]

프론트엔드 시스템과 백엔드 API 시스템은 HTTP 프로토콜을 기반을 통신한다.

HTTP란 ?
HyperText Transfer Protocol
웹상에서 HTAML을 서로 주고받을 수 있도록 약속한 통신 규약이다.

특징
request response, stateless

벡엔드 API 시스템의 엔드포인트 구현도 기본적으로 HTTP 요청을 input 으로 받아서 HTTP 응답을 output으로 리턴하는 구조


🤔 REQUEST 구조

⚡️1. Start Line

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

⚡️2. Header의 구조

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의 총 길이


⚡️3. Body

HTTP요청이 보내는 데이터를 담고 있는 부분! 데이터가 없으면 비어있게 된다.


🤔 RESPONSE 구조

⚡️1. Status Line

🕹 HTTP Version
HTTP Version 을 나타낸다.
🕹 Status Code
응답 상태가 미리 지정되어 있는 숫자로 된 코드를 나타낸다.
🕹 Status Text
응답 상태를 간략하게 설명해주는 부분


⚡️2. Headers

🕹 Server라는 헤더값이 User-Agent 대신 사용된다.


⚡️3. Body

🕹 데이터가 담긴다. 만약에 데이터가 없다면 비어있게 된다.


자주 사용 되는 메서드

GET

POST

OPTIONS

좋은 웹페이지 즐겨찾기