본문 바로가기

DEVELOPER/CS

[네트워크] HTTP 알아보기-개념

안녕하세요. 이번 게시글은 HTTP에 대해서 포스팅하도록 하겠습니다.

HTTP는 우리가 개발을 하면서 알아야할 중요한 개념입니다. 그 이유는 일상에서 웹과 애플리케이션 등 어디서든 HTTP를 접하기 때문인데요. 당장 웹 페이지의 상단을 보면, URL에 HTTP 또는 HTTPS가 적혀있는 것을 알 수 있습니다. 이렇듯 네트워크에서 데이터들을 교환하기 위해 HTTP(S)가 중요하게 사용되고 있습니다. 그렇다면 이러한 HTTP가 무엇일까요? 이제 개념과 어떻게 사용되는지 알아보도록 하겠습니다.


 

HTTP(HyperText Transfer Protocol)


# HTTP란?

웹은 기본적으로 HTML, URI, HTTP로 구성됩니다. 그 중 우리가 알아볼 HTTPHyperText Transfer Protocol의 약자로 클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜입니다. 여기서 프로토콜은 '약속' 또는 '규칙'과 같습니다. 즉, HTTP는 클라이언트와 서버가 메시지를 주고 받기 위해 정해진 규칙을 의미합니다.

# HTTP의 탄생과 다양한 버전

HTTP는 WWW(World Wide Web, 월드 와이드 웹)에 내재된 프로토콜로 1989년 팀 버너스 리 박사에 의해 발명되었습니다. 여기서 WWW는 인터넷을 통해서 연결된 웹 페이지 시스템을 뜻합니다. 과거 CERN(유럽 입자 물리학 연구소)의 팀 버너스 리 박사는 멀리 떨어져 있는 동료 연구자들과 정보를 공유하기 위해서 WWW 시스템을 고안한 것입니다. 이 때는 정말 단순한 정보들만 교환했기 때문에 HTTP가 단순 text 파일만 전송하는 역할을 수행했습니다. 하지만 오늘 날에는 text 뿐만이 아닌 이미지, 오디오, 동영상 등 다양한 형식에 데이터를 전송하는 매우 중요한 통신 프로토콜이 되었습니다.

HTTP 버전은 HTTP/0.9 ~ HTTP/3 등이 있습니다. 1991년에 HTTP/0.9 버전이 첫 등장을 하며 HTTP의 역사가 시작했습니다. 현재는 HTTP/1.1 버전을 가장 많이 사용하고 있습니다. 이 외에도 HTTP/2와 3이 점점 발전하고 있으며 동시에 같이 사용되고도 있습니다.

* RFC2068(1997) -> RFC2616(1999) -> RFC7230~7235(2014)

# 추가 설명

HTTP를 이해하기 쉽도록 우리 일상의 예로 설명을 드리겠습니다.

어떤 가게 안에 손님과 점원이 서로 마주보고 있습니다. 이내 고객은 점원에게 HTML이라는 물건을 달라고 말합니다. 하지만 고객은 "HTML 주세요"라는 말이 아닌 자신만의 언어로 말합니다. 결국 점원은 고객의 말을 이해하지 못하게 되었습니다. 위 그림을 보다시피 서로 소통이 안되는 것을 알 수 있습니다. 네트워크에서도 동일합니다. 클라이언트가 서버에 어떠한 요청을 아무리 보내도 서버가 알아듣지 못한다면 문제가 발생하는 것입니다. 따라서  클라이언트와 서버가 서로 이해할 수 있도록 규칙을 정하고, 메시지를 전달하는 것입니다. 그리고 이러한 규칙이 바로 HTTP입니다.


내용이 많다보니 두 파트로 나누었는데요. 이번 게시글에서는 HTTP의 개념을 위주로 알아보았습니다.

따라서 다음 게시글에서는 HTTP의 특징과 어떻게 사용하는지에 대해서 알아보도록 하겠습니다.

다음 게시글에서 알아볼 내용

1. HTTP 메시지
2. HTTP 메소드
3. HTTP 상태코드
4. HTTP 특징

반응형