[Web] HTTP의 정의와 동작 방식(feat. 요청과 응답)

이태권 (Taekwon Lee)·2022년 6월 3일
0

[Web]

목록 보기
1/2
post-thumbnail

HTTP는 무엇일까

HTTP는 Hyper Text Transfer Protocol의 준말이다.
이를 크게 3가지 파트(Hyper Text와 Transfer, Protocol)로 나누어 알아 보자.

Hyper Text

하이퍼텍스트(hypertext)를 사전에 찾아 보면 다음과 같이 적혀 있다.

사용자에게 비순차적인 검색을 할 수 있도록 제공되는 텍스트.

즉, 링크를 통하여 문서와 문서 간에 연결 되어 있는 걸 뜻한다.
HTML의 HT 또한 Hyper Text를 의미한다.

Transfer

Transfer를 사전에서 찾아 보자. '~을 전송하다/이동하다/옮기다'를 뜻한다.

HTML로 만든 웹 페이지 문서를 보낸다.

Protocol

Protocol를 사전에서 찾아 보면 다양한 의미가 있다. 공통적으로 '약속'이라는 의미를 갖고, 컴퓨터 공학에서는 통신 규약을 뜻한다.

HTTP

이를 종합해서 말하면 아래와 같다.

컴퓨터와 컴퓨터 사이에, 어떻게 HTML 문서를 주고 받을지에 대한 규약(약속) 및 소통 방식.

HTTP는 어떻게 동작하는가?

HTTP 동작의 핵심은 요청(request)과 응답(response)이다.

Client의 Request

  • PC/스마트폰과 같은 단말기와 웹 브라우저(크롬, 사파리, ...)과 같은 프로그램 등을 Client이라 하며
  • 링크를 클릭하거나, 홈페이지에 접속하거나, 메신저 전송 버튼을 누르는 등의 행위가 Server에 요청을 보내는 것이다.

Server의 Response

  • 웹 페이지나 앱 등을 저장하는 컴퓨터를 서버라 하며
  • client의 요청을 받아서 해당하는 요청을 처리하거나 오류 메시지를 출력하여 응답을 보낸다.

HTTP의 2가지 특징

1. Request & Response

2. Stateless

Stateless vs Stateful

  • Stateless상태가 없는/기억력이 없는 것 걸 뜻한다.
    • HTTP 개별 통신은 모두 독립적이어서, 과거의 결과를 보존하지 않는다.
    • 따라서 나누어서 보낼 경우 이전 내용일 전혀 알지 못하기 때문에 적절한 응답을 받을 수 없다.
    • 매 통신마다 사전에 필요한 정보를 모두 담아서 한번에 요청을 보내야 한다.
  • 이와 반대로 Stateful은 상태가 있는 것 의미한다. 기억을 보존하는 걸 뜻한다.


HTTP 메시지의 구조

Request 메시지의 구조

아래와 같이 Start Line과 Headers, Body로 이루어져 있다.

Response 메시지의 구조

아래와 같이 Status Line과 Headers, Body로 이루어져 있다.
Request 메시지의 구조와는 달리 start line이 아닌 status line이 되어 있다.


참고 자료

(MDN Web Docs) An overview of HTTP

(MDN Web Docs) Protocol

profile
(Backend Dev.) One step at a time

0개의 댓글