[Web] HTTP통신의 요청과 응답

혜린·2022년 10월 2일
0

Computer Science

목록 보기
4/6
post-thumbnail

HTTP가 뭐죠?


HTTP는 Hyper Text Transfer Protocol의 약자예요. HTTP를 한 줄로 말하자면, 컴퓨터들끼리 HTML파일을 주고받을 수 있도록 하는 소통방식이라고 할 수 있어요.

서버로 데이터를 전송해야하는 웹 프론트엔드 개발자를 꿈꾸는 저로서는 꼭 알고있어야할 개념이에요!

  • Hyper Text
    문서와 문서가 링크로 연결돼 접근 할 수 있는 텍스트
  • Transfer
    HTML로 만든 웹페이지 문서를 전송 (보내는 주체🙋🏻‍♀️와 받는 주체🙋🏻‍♂️ 있음)
  • Protocol
    컴퓨터끼리 어떻게 HTML파일(Hyper Text)을 주고 받을지에 대한 약속

📜 HTTP란?
HTTP(Hyper Text Transfer Protocol)은 웹 상에서 정보를 주고 받을 수 있는 프로토콜이며, 주로 HTML 문서를 주고받는 데에 쓰인다.
위키백과, HTTP



Request(요청)


HTTP의 특징 중 하나는 클라이언트와 서버 사이에 이루어지는 Request(요청)와 Response(응답)프로토콜이에요. 먼저 Request(요청)에 대해 알아볼게요.

서버에 요청을 보낼 때는 요청에 대한 정보를 담아줘야 해요. 그래야 서버는 클라이언트에서 어떤 정보를 원하는 지를 알 수 있죠.

HTTP 메시지는 시작줄(Start Line), 헤더(Headers), 본문(Body)로 구성돼요.

💬 HTTP 메시지 구성
1. 시작줄(Start Line)
2. 헤더(Headers)
3. 본문(Body)


1. 시작줄 (Start Line)

  • 예시
    POST/login HTTP/1.1

  • 구성
    HTTP method/Request target/HTTP version

  • 상세
    HTTP method : GET, POST, DELETE와 같은 액션을 정의
    Request target : 요청이 전송되는 목표 URL
    HTTP version : HTTP 버전으로, 주로 1.1버전이 많이 쓰임


2. 헤더 (Headers)

헤더는 요청에 대한 정보를 담고 있으며, 아래의 예시 말고도 그 종류가 다양해요.

  • 예시
Headers : {
	Host: : www.hyerin.co.kr,
    User-Agent : chrome,
    Content-Type : application/json,
    Content-Length : 50,
}

3. 본문 (Body)

본문(Body)에는 요청의 실제 내용이 들어가요.

Body : {
	"username" : "hyerin",
    "password" : "hyerin123",
}



Response(응답)


클라이언트가 서버에 보낸 요청에 대해 서버는 응답을 보내줘요. 응답도 요청과 마찬가지로 메시지인데요, 이 또한 크게 세 부분으로 구성돼요.

💬 HTTP 메시지 구성
1. 시작줄(Start Line)
2. 헤더(Headers)
3. 본문(Body)


1. 시작줄 (Start Line)

  • 구성
    HTTP version Status Code Status Text

  • 상세
    HTTP version : HTTP 버전
    Status Code : 응답 상태 코드
    Status Text : 응답의 상태를 간략히 설명하는 텍스트

  • 예시
    HTTP/1.1 404 Not Found


2. 헤더 (Headers)

요청의 헤더와 동일해요. 헤더는 응답에 대한 정보를 담고 있으며, 요청의 헤더와 마찬가지로 그 종류가 굉장히 다양해요.

Headers : {
	Host: : www.hyerin.co.kr,
    User-Agent : chrome,
    Content-Type : application/json,
    Content-Length : 50,
}

3. 본문 (Body)

본문(Body)에는 응답해줄 데이터를 넣어줘요. 로그인 요청에 대해 성공했을 경우, 아래와 같이 성공 메시지와 토큰을 전달해줄 수 있죠!

Body : {
	"message" : "success",
    "token" : "dasldkfjowiejrfasdf",
}



참고


HTTP란 무엇인가
HTTP

profile
FE Developer

0개의 댓글