인터넷은 수 많은 컴퓨터들이 서로 연결되어 데이터를 주고 받을 수 있는 네트워크를 의미한다. 더 단순하게 말하면 컴퓨터끼리의 네트워크라고도 말할 수도 있다.
그럼 컴퓨터와 컴퓨터를 어떻게 연결할 수 있을까? 여러가지 방법이 있겠지만, 가장 기초적이고 근본적인 방법은 케이블을 이용해 연결하는 것이다. 가까운 거리에 있든, 먼 거리에 있든 케이블은 기본적으로 연결의 수단이 된다. 우리가 사용하고 있는 무선 인터넷과 wifi와 같은 것들도 유선 연결을 기반으로 하고 있다.
이렇게 연결을 통해 구성된 네트워크 안에는 또 다른 네트워크가 존재할 수 있으며, 그 네트워크 안에는 또 다른 네트워크가 존재할 수 있다. 즉 Inter-Network, 인터넷
이 되는 것이다.
인터넷을 사용한다는 것은 네트워크에 접속하여 다양한 형태의 데이터를 주고 받는 행위를 말한다. 컴퓨터에 있는 텍스트, 이미지, 동영상 등의 데이터들을 주고 받을 수 있도록 하는 것이 그것들을 하나의 종합적인 컨텐츠로 묶어서 페이지 형태로 주고 받게 된 것이 바로 웹 페이지
이다. 이런 웹 페이지들이 서로 관련된 내용으로 작성되어서 하나의 집합 형태로 뭉쳐질 때 웹 사이트
라고 부른다.
앞서 인터넷에 대해서 알아본 것처럼, 엄밀히 말해서 인터넷과 웹은 동일한 뜻을 가지고 있지는 않다. 인터넷
은 컴퓨터와 컴퓨터가 서로 연결되어 데이터를 주고받을 수 있는 공간을 총칭하는 말이다.
웹
은 인터넷에 연결된 사용자들이 서로의 정보를 공유할 수 있는 공간을 의미한다. 웹 서비스는 그런 네트워크 공간 안에서 서로 다른 종류의 컴퓨터들이 데이터를 주고 받을 수 있도록 하는 소프트웨어를 말하는 것이다. 그래서 사람들이 웹을 마치 인터넷과 동의어처럼 사용하는 것이다.
웹 서비스에서는 어떻게 데이터를 주고 받을까? 데이터를 주고 받기 위해 최소 2대의 컴퓨터만 있으면 된다.
하나의 컴퓨터는 요청(Request)
을 전송하고 다른 컴퓨터는 요청에 대해 응답(Response)
을 전달하는데 그 Response로 HTML 파일, 이미지, 동영상 파일 등을 전달한다. 여기서 HTML 파일은 브라우저를 통해 눈으로 보게 되는 웹 페이지이다.
데이터를 요청하는 컴퓨터를 Client
, 그 요청에 응답하는 컴퓨터를 Server
라 한다. 다시 말해 클라이언트는 서버에게 얻고자 하는 데이터를 요청하는 쪽이 되고 서버는 그러한 데이터를 찾아서 서빙을 하는 주체가 된다. 클라이언트는 꼭 PC일 필요는 없다. 모바일로도 웹 서비스를 이용할 수 있는 것처럼, 데이터를 요청할 수 있는 모든 Device를 클라이언트라 한다.
그래서 주로 클라이언트에서 웹 브라우저를 통해서 데이터를 요청(Request)하게 되고, 그 Request 에 대해서 서버가 HTML 파일, 웹 페이지를 응답(Response)으로 전달해주기 때문에 우리가 눈으로 웹 페이지를 볼 수 있게 되는 것이다.
서버에 데이터를 요청하려면, 인터넷에 존재하는 수많은 서버 중에서 어떤 서버에게 데이터를 요청할지 그 서버를 특정해야한다. 이 때 가장 중요한 정보가 바로 주소, 컴퓨터 용어로는 IP address
라고 한다.
흔히 IP 주소라고 이야기 하는 IP address 는 Internet Protocol Address 의 약자이다. 컴퓨터가 네트워크에 접속했을 때, 반드시 부여받게 되는 주소체계로, IP 주소만으로도 어디에서 네트워크에 접속했는지를 파악할 수 있다. IP address는 총 4개의 섹션으로 구분되어 있고, 각 섹션은 0 ~ 255 범위의 10진수 숫자로 표현한다.
매번 클라이언트가 요청을 보내기 위해 서버의 주소를 외우는 것은 매우 불편한 방법이다. 그래서 컴퓨터 전문가들은 좀 더 인간 친화적인 방법을 고안해내게 된다.
IP address가 불편한 점은 우리가 핸드폰 번호를 일일히 외우고 다니지 않는다는 점과 같다고 할 수 있다. www.google.com 이라는 주소로 요청하면, 그에 맞는 IP address로 변환해 서버를 찾아 요청할 수 있도록 하는 것을 우리는 Domain
이라고 한다.
이 Domain과 IP address를 양방향으로 변환할 수 있게 해주는 것이 바로 Domain Name System, 줄여서 DNS
라 한다.
HTTP
는 Hyper Text Transfer Protocol의 약자인데, 웹 서비스에서 데이터를 주고 받을 때 반드시 지켜야 하는 규약을 의미한다. 여기서의 Hyper Text는 나중에 배울 HTML(Hyper Text Markup Language)에도 들어가 있는 단어이다. 우리가 수없이 눌러봤던 웹사이트의 링크들이 바로 하이퍼링크, 하이퍼텍스트이다. 우리가 보는 웹사이트들은 이 하이퍼텍스트를 기반으로 만들어진 HTML 파일이다.
HTTP라는 이름에 Hyper Text가 들어가있고, 실제로 HTML 파일을 주고받을 때 사용하지만, 다른 포맷의 파일도 주고 받을 수 있다. HTTP 는 이렇게 웹 상에서 데이터를 주고 받을 때 반드시 지켜야 하는 통신 규약을 의미한다.