인터넷이 동작하기 위해서는 컴퓨터가 최소 몇 대가 있어야 할까?
바로 2대이다.
1대는 인터넷이 아니고 3대는 본질적이지 않다.
2대의 컴퓨터가 서로 정보를 주고 받는 순간 인터넷이 동작한다.
고객을 영어로 클라이언트
사업자를 영어로 서버라고 한다.
요청하는 컴퓨터를 클라이언트 컴퓨터
응답하는 컴퓨터를 서버 컴퓨터라고 부르기로 했다.
웹브라우저는 어떤 컴퓨터에서 동작할까?
바로 클라이언트다.
그래서 웹브라우저를 다른 말로는 웹 클라이언트라고 한다.
웹서버는 어떤 컴퓨터에서 동작할까?
바로 서버이다.
그래서 웹 서버라고 하는거다.
그래서 우리가 게임을 컴퓨터에 설치하면 게임 클라이언트라고 하는 것이다.
반대로 게임회사의 서버 컴퓨터에 설치된 프로그램은 게임 서버라고 하는것이다.
웹서버를 우리 컴퓨터에 직접 설치한다면 굉장히 어렵다.
하지만 그 과정에서 많은 것을 알게 될 것이다.
다른 방법으로는 웹서버를 제공해주는 업체를 이용하는 것이다.
이런 업체들을 웹호스팅 업체라고 하는데
이것은 쉽다. 하지만 많은 것이 감춰져있다.
직접 웹 서버를 운영하는 일은 쉽지 않은 일이다.
우선 컴퓨터가 있어야 하고, 컴퓨터가 냉장고처럼 항상 켜져 있어야 한다.
또한 웹서버라는 프로그램을 배워서 설치해야 하고, 인터넷을 통해 외부로 정보를 전송할 수 있게
설정을 해야 한다.
쉽지 않다는 뜻이다.
그래서 이런 일을 대행해 주는 회사들이 있다.
인터넷에 연결딘 컴퓨터 하나하나를 호스트라고 하는데,
이런 컴퓨터를 빌려주는 사업을 호스팅이라고 한다.
웹서버를 전문적으로 빌려주는 비즈니스를 웹호스팅 업체라고 부른다.
대표적인 무료 웹호스팅 업체로 github pages 기능에 대해 알아보자.
저장소를 만들어 내가 작업한 파일들을 드래그해서 옮긴 뒤
branch를 main 또는 master로 선택 후 save를 누르게 된다면
내가 만든 페이지를 전세계 사람들에게 서비스할 수 있게 된다.
[예시]
상자가 있다. my는 우리의 컴퓨터이다. visitor는 우리의 웹페이지를 보고 싶어하는 사람이다.
우리의 컴퓨터는 현재로서는 컨텐츠를 서비스 할 수 없다.
우리는 github의 pages 기능을 이용했다.
github에 파일들을 업로드하고, pages 기능을 활성화하면 github의 서버 컴퓨터에 웹서버가 켜진다.
그리고 우리에게 웹서버의 주소를 알려준다.
이제 웹서버의 주소를 방문자에게 알려주면 방문자는 나의 컴퓨터가 아닌 github의 컴퓨터에 설치된
웹서버에 접속하게 된다.
웹 서버를 직접 운영하는 것에 비해
웹호스팅을 이용한다면 쉽다.
하지만, 단점으로는 인터넷의 원리가 감춰져 있다는 것이다.
다행히 현업에서 웹서버를 직접 운영하는 경우는 많지 않아서
웹서버를 운영하기 위해서는 많은 노하우가 필요하다.
우리는 github를 사용했지만
미래에는 이 서비스를 이용하지 못할 수도 있다.
또 github pages는 제약이 많은 서비스이기도 하다.
중요한 것은 github의 사용법이 아니고,
우리가 필요한 웹호스팅을 찾아내는 능력이다.
지금까지 HTML만으로 웹페이지를 만들어봤는데
HTML은 웹브라우저가 해석하기 때문에
서버쪽에서 특별히 해줄 일이 없다.
이런 특성을 정적(static)이라고 한다.
자연스럽게 HTML만으로 만들어진 웹사이트를
호스팅하는 서비스 중에는 무료가 많다.
php나 python,ruby,java와 같은 동적(dynamic)도 있는데
대체적으로 비용을 내야한다.
우리의 목적에 맞게 웹호스팅을 알아보고 싶다면
검색창에 [free static web hosting] 으로 검색해보자.
[추천 드리는 사이트]
https://bitballoon.com
http://neocities.org
https://aws.amazon.com
visual studio code에서 live server설치 후 우측 아래 Go Live 버트을누르면 Port:5500으로 실행된다.
참고로,Live Server는 클라이언트의 요청이 들어왔을 때 visual studio code의 프로젝트 폴더에서 파일을 찾는다.
경로에 파일명이 없으면 index.html 파일을 응답해준다.
Live Server의 또 다른 기능은 실시간 편집 기능이다.
코드를 수정하면 웹페이지를 새로고침 하지 않았음에도 내용이 실시간으로 변경된다.
파일 찾기로 열었을 때:file///Desktop/web/index.html
웹서버를 통해서 열었을 때:http://127.0.0.1:5500/index.html
아래 이미지는 웹 서버로 접속한 주소를 살펴본 이미지이다.
http는 HyperText Transfer Protocol로서 웹페이지를 주고받기 위한 통신규약이라는 뜻이다.
127.0.0.1은 Internet Protocol Address로서 인터넷에서 사용하는 주소를 의미한다.
Ip Address는 0.0.0.0부터 255.255.255.255까지 약 43억개의 주소가 존재한다.
127.0.0.1은 내 컴퓨터 자신을 가리키는 특별한 주소이다.
Port는 컴퓨터에 여러 개의 서버가 동작하고 있을 때 서버를 구분하는 정보이다.
위의 그림처럼 port번호가 5500이므로 5500에서 동작하고 있는 Web Serve와 통신하게 된다.