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

김기용·2020년 11월 2일
0

프론트엔드 시스템과 백엔드 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

profile
매일 새로운 배움을 통해 꾸준히 성장하는 것을 목표를 두고 있습니다. 논리적인 사고로 문제해결 하는것에 희열을 느끼고 언젠가 제가 만든 결과물들이 사람들에게 편이를 제공하며 사용되는 날을 간절히 소망하고 있습니다. 🙏

0개의 댓글