- 데이터를 주고 받는 양식을 정의한 "통신 규약"중 하나가 HTTP. (통신 규약: Protocol)
- 매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약.
- 여기서 말하는 통신 규약이란, 컴퓨터끼리 데이터를 주고 받을때 정해둔 약속을 의미.
- 비유를 하자면,
- 내가 친구에게 한국어로 말을 걸면 친구가 내 말을 한국어로 이해하듯이, 갑자기 내가 독일어나 불어로 말한다면? -> 알아 듣지 못함.
- 혹은 내가 같은 한국말로 말하더라도 친구가 잘 알고 있던 표준어가 아닌, 우리가 모르는 아주 작은 어느 지방에서만 사용하는 이해하기 난해한 사투리를 사용한다면? ->알아 듣지 못함.
- 이렇듯이 HTTP라는 통신 규약을 이용하여 서버나 클라이언트(브라우저)끼리 의사 소통을 할 수 있게 된다.
- 현대에 존재하는 대부분의 웹 서버가 HTTP를 기반으로 데이터를 주고 받는다.
또한 모든 브라우저는 HTTP 프로토콜을 기본으로 지원하기 때문에 매일 HTTP를 이용하는 셈이 된다.
여기서 오해하면 안되는 포인트!
우리가 "말"을 통해 의사 표현을 할 수 있듯이 모든 컴퓨터는 “네트워크”를 통해 의사 표현을 할 수 있다.
현실 세계에서 “말”은 의사 표현의 수단이며, “언어”(ex. 한국어)는 의사 표현의 방법이다.
그리고 디지털 세상에서는 “네트워크”가 의사 표현의 수단이고, “통신 규약(ex. HTTP)”이 의사 표현의 방법이다.
의사 표현의 수단: (현실 세상) 말 ↔ (디지털 세상) 네트워크
의사 표현의 방법: (현실 세상) 언어 ↔ (디지털 세상) 통신 규약
- HTTP에서는 언제나 Request, Response라는 개념이 존재한다.
- 서버와 브라우저의 관계로 가볍게 말해보면 아래와 같이 동작한다.
- 브라우저는 서버에게 자신이 원하는 페이지(URL 등의 정보)를 요구(Request)한다.
- 서버는 브라우저가 원하는 페이지가 있는지 확인하고, 있다면 해당 페이지에 대한 데이터를 반환(Response)해준다. 없다면 없는 페이지에 대한 데이터를 반환한다.
(일반적인 웹 서버 기준)- 브라우저는 서버에게 전달 받은 데이터를 기반으로 브라우저에 그려준다.
- 그리고 위와 같은 사례에서 "데이터"는 어떠한 데이터든 주고 받는게 가능하다.
- 웹서버는 인터넷을 통해 HTTP를 이용하여 웹상에서 클라이언트의 요청을 응답해주는 통신을 하는 컴퓨터 또는 프로그램이라고 생각하면 된다.
- 오늘날 우리가 자주 사용하는 이메일이나 웹사이트 등 대부분의 인터넷 사용은 웹서버를 통해 우리가 사용할 수 있게 되었다.
- 브라우저를 통해 HTTP request로 웹사이트를 웹서버에 요청한다. 이후 웹서버는 요청을 승인하고 HTTP response를 통해 웹사이트 데이터를 브라우저에 전송한다. 마지막으로 브라우저는 서버에서 받아온 데이터를 이용해 웹사이트를 브라우저에 그려내는 일을 한다.
- 기본적으로 브라우저가 웹서버에 요청을 할때는 항상 GET method로 요청하게 된다.