HTTP는 우리가 보는 웹 페이지가 어떻게 구조화되어 있는지 브라우저로 하여금 알 수 있게 하는 마크업 언어입니다.
가게 안에서 고객이 점원에게 HTML이라는 물건을 달라고 말합니다. 이때 고객이 "HTML" 주세요!" 라고 말하면 점원은 "고객님이 요청하신 HTML은 여기 있습니다!"라고 대답하며 고객에게 물건을 전달할 것입니다.
앞서 언급한 예에서 고객과 점원은 서로 이해할 수 있는 문장으로 이야기 했는데요, 만약 서로 다른 언어를 사용한다면 어떻게 될까요? 점원은 고객이 무엇을 원하는지 이해하지 못하고 물건도 제대로 전달하지 못할 것입니다.
이런 문제가 발생하지 않으려면 서로 이해할 수 있는 언어로 상대방에게 전달해야하는 데요, 즉, 서로가 전달하는 메세지에 규칙이 있어야 하는 것입니다.
웹에서 고객은 클라이언트 직원은 서버입니다. 앞에서 언급한 HTML은 웹에서 리소스에 해당됩니다. 즉 클라이언트와 서버가 리소스를 주고 받기 위해 규칙이 있는 메세지를 전달하는 규칙이 HTTP인 것입니다.
HTTP는 WWW(월드 와이드 웹)에 내제된 프로토콜로 팀 버너스 리 박사에 의해 1989년에 발명되었습니다. 여기서 WWW는 인터넷을 통해서 연결된 웹 페이지 시스템을 뜻합니다. CERN(유럽입자물리학연구소)의 팀 버너스 리 박사는 멀리 떨어져 있는 동료 연구자들과 정보를 공유하기 위해서 WWW 시스템을 고안했습니다.
과거 HTTP는 HTML 같은 텍스트 파일을 전송하는 단순한 통신 규칙이었습니다. 하지만 웹이 발전하면서 텍스트 파일 뿐만 아니라 이미지, 오디오, 동영상 등등 모든 데이터를 전송하는 매우 중요한 통신 프로토콜이 되었습니다.
HTTP버전은 HTTP/0.9 ~ HTTP/3 등이 있습니다. 1991년에 처음으로 HTTP/0.9버전이 등장하며 HTTP의 역사가 시작되었고 현재는 HTTP/1.1 버전을 가장 많이 사용하고 있습니다. 오랜 시간이 지났지만 버전 업그레이드가 많이 되지 않았다는 것을 알 수 있습니다.
이 외에도 HTTP/2 HTTP/3 버전이 있으며 최근에는 웹 페이지에서 HTTP/2 버전과 HTTP/3 버전이 같이 사용되고 있습니다.