HTTP는 Hyper Text Transfer Protocol의 약자예요. HTTP를 한 줄로 말하자면, 컴퓨터들끼리 HTML파일을 주고받을 수 있도록 하는 소통방식이라고 할 수 있어요.
서버로 데이터를 전송해야하는 웹 프론트엔드 개발자를 꿈꾸는 저로서는 꼭 알고있어야할 개념이에요!
📜 HTTP란?
HTTP(Hyper Text Transfer Protocol)은 웹 상에서 정보를 주고 받을 수 있는 프로토콜이며, 주로 HTML 문서를 주고받는 데에 쓰인다.
위키백과, HTTP
HTTP의 특징 중 하나는 클라이언트와 서버 사이에 이루어지는 Request(요청)와 Response(응답)프로토콜이에요. 먼저 Request(요청)에 대해 알아볼게요.
서버에 요청을 보낼 때는 요청에 대한 정보를 담아줘야 해요. 그래야 서버는 클라이언트에서 어떤 정보를 원하는 지를 알 수 있죠.
HTTP 메시지는 시작줄(Start Line), 헤더(Headers), 본문(Body)로 구성돼요.
💬 HTTP 메시지 구성
1. 시작줄(Start Line)
2. 헤더(Headers)
3. 본문(Body)
예시
POST/login HTTP/1.1
구성
HTTP method/Request target/HTTP version
상세
HTTP method : GET, POST, DELETE와 같은 액션을 정의
Request target : 요청이 전송되는 목표 URL
HTTP version : HTTP 버전으로, 주로 1.1버전이 많이 쓰임
헤더는 요청에 대한 정보를 담고 있으며, 아래의 예시 말고도 그 종류가 다양해요.
Headers : {
Host: : www.hyerin.co.kr,
User-Agent : chrome,
Content-Type : application/json,
Content-Length : 50,
}
본문(Body)에는 요청의 실제 내용이 들어가요.
Body : {
"username" : "hyerin",
"password" : "hyerin123",
}
클라이언트가 서버에 보낸 요청에 대해 서버는 응답을 보내줘요. 응답도 요청과 마찬가지로 메시지인데요, 이 또한 크게 세 부분으로 구성돼요.
💬 HTTP 메시지 구성
1. 시작줄(Start Line)
2. 헤더(Headers)
3. 본문(Body)
구성
HTTP version Status Code Status Text
상세
HTTP version : HTTP 버전
Status Code : 응답 상태 코드
Status Text : 응답의 상태를 간략히 설명하는 텍스트
예시
HTTP/1.1 404 Not Found
요청의 헤더와 동일해요. 헤더는 응답에 대한 정보를 담고 있으며, 요청의 헤더와 마찬가지로 그 종류가 굉장히 다양해요.
Headers : {
Host: : www.hyerin.co.kr,
User-Agent : chrome,
Content-Type : application/json,
Content-Length : 50,
}
본문(Body)에는 응답해줄 데이터를 넣어줘요. 로그인 요청에 대해 성공했을 경우, 아래와 같이 성공 메시지와 토큰을 전달해줄 수 있죠!
Body : {
"message" : "success",
"token" : "dasldkfjowiejrfasdf",
}