http://helloworld.com
라는 주소를 가진 컴퓨터가 있다고 가정해보자. 이때 이 주소는 실제 ip 주소가 아닌, 도메인 주소이다. 도메인 주소
란 인터넷에 연결된 컴퓨터를 사람이 쉽게 기억할 수 있도록 문자로 만든 인터넷 주소를 뜻한다. 이 컴퓨터의 실제 서버 주소는 127.0.0.1:3000
와 같은 ip
주소이므로, 사용자들이 해당 주소를 기억하기 쉽지 않기 때문에 문자로 구성된 도메인 주소를 따로 만든 것이다.
📌 참고: DNS를 통한 도메인-ip 변환
도메인 주소를 ip 주소로 바꾸는 과정은 도메인 이름 시스템(DNS)에 의해 일어난다. DNS는 사용자가 요청한 도메인 주소에 대한 ip 주소 목록을 가지고 있을 경우 응답하고, 가지고 있지 않을 경우 다른 DNS 서버에게 다시 요청한다.
그렇다면 사용자가 http://helloworld.com
라는 주소를 가진 서버에 접근할 때 어떤 일이 일어날까? 해당 주소에는 데이터베이스 서버, 웹 서버 등이 연결되어 있을 수 있다. 어떤 서버 애플리케션에 연결해 줄 지는 서버 관리자가 정할 수 있다. 이때 각각의 서버 애플리케이션에 연결하기 위해 포트(port)를 사용할 수 있다. ip 주소에는 0번부터 65535번까지의 포트가 존재하는데, 이 중 웹 서버는 기본적으로 80번 포트에 연결되어 있다. 따라서 웹 서버에 접근하기 위해서는 http://helloworld.com.80
처럼 포트 번호를 명시해 줘야 하지만, 웹 시스템 상에서 http
로 접근하는 경우(즉 웹 브라우저로 접근하는 경우)에는 자동으로 80번 포트로 연결되기 때문에 숫자를 생략할 수 있다.
따라서 다른 종류의 서비스를 접근하기 위해서는 종종 80번 포트가 아니라 다른 포트로 접근하고는 한다. 예를 들어, InfluxDB는 8086 포트를, MySQL은 3306 포트를 사용한다(물론 서비스마다 기본적으로 설정된 포트 말고 다른 포트를 설정할 수 있다. 또한, docker를 사용하면 서비스의 기본 포트가 아닌 다른 포트로 바인딩해줄 수 있다).