HTTP 개요
HTTP에 관한 내용은 바로 전 장인 네트워크/인터넷
에서 약간 다룬 바 있다. 웹 브라우저에서 google.com
을 입력하면 구글의 첫 화면이 나오는 일련의 흐름 중 가장 상단에 위치한 프로토콜이 바로 HTTP(HyperText Transfer Protocol)
이다.
HTTP의 특징1 - 간단하다
1989년 스위스 제네바에 있는 유럽 입자 물리학 연구소(CERN)
에서 근무하고 있던 영국인 과학자 팀 버너스 리(Tim Berners-Lee)
박사와 동료들은 지식을 쉽게 검색하고 공유하기 위한 시스템을 고안했다. 이 시스템의 가장 큰 특징은 여러 문서 사이에 링크를 두고 참조를 할 수 있도록 하는 하이퍼텍스트(HyperText)
이며, 이는 곧 월드 와이드 웹(WWW, World Wide Web)
의 기반이 된다. 애당초 연구자료 공유를 위해 만들었기 때문에(논문을 생각하면 된다) HTTP는 태생 자체가 주로 텍스트를 전송하기 위한 프로토콜이었기 때문에 프로토콜 자체는 굉장히 간단하다.
HTTP의 특징2 - 클라이언트-서버 구성
HTTP는 웹 브라우저가 요청(Request)하고 누군가가 응답(Response)하는 형태이다. 프로토콜 유형으로는 클라이언트-서버 프로토콜이라고 구분하기도 한다. 요청하는 쪽을 클라이언트, 그 요청을 처리해서 응답하는 쪽을 서버(혹은 웹서버)라 한다. HTTP로 통신을 하기 위해서는 무조건 1:1 이어야 하며 누군가는 클라이언트, 다른 누군가는 서버의 역할을 담당해야 한다.
또한 통신은 반드시 클라이언트로부터 시작한다. 클라이언트가 요청을 보내야 서버가 응답을 하지, 클라이언트의 요청 없이 서버가 응답을 보내는 경우는 없다.
HTTP의 특징3 - 확장성
HTTP가 웹의 근간을 이룰 수 있는 이유는 HTTP 자체가 확장성이 좋기 때문이다. 확장의 중심에는 HTTP 헤더(Header)가 있다. 문자열 맵(Map)형태의 헤더는 서버와 클라이언트와 상호 합의만 된다면 얼마든지 새로운 기능을 추가할 수 있다.