웹 브라우저(Web Browser)는 사용자가 웹 페이지를 볼 수 있도록 이용자 친화적인 인터페이스를 제공하면서 다양한 기능을 제공하는 소프트웨어다. 웹 브라우저는 사용자에게 웹 사이트 주소를 전달받아 해당 웹 사이트의 서버로부터 데이터를 응답받아 사용자에게 시각화해준다.
사용자는 웹 브라우저를 사용하면서 어떠한 동작이 내부에서 일어나고 있는지 알지 못한다. 사용자가 주소창에 인터넷 주소를 입력을 했을 때 웹 브라우저가 웹 페이지를 보여주는 과정은 크게 세 가지 단계로 나눌 수 있다.
1. DNS 조회
URL 은 Uniform Resource Locator의 약자로, 웹에 있는 리소스의 위치를 표현하는 문자열이다. 브라우저로 특정 웹 리소스에 접근할 때 URL을 이용해 서버에게 요청한다.
URL의 구성은 Scheme, Authority(Userinfo, Host, Port), Path, Query, Fragment 등으로 구성된다.
구성 | 역할 |
---|---|
Scheme | 웹 서버와 어떤 프로토콜로 통신할지 나타낸다. |
Host Name | Authority의 일부로, 자원이 위치한 서버의 도메인 이름 또는 IP 주소를 나타낸다. |
Port Number | Authority의 일부로, 자원에 접근할 때 사요하는 포트 번호를 나타낸다. |
Path | 접근할 웹 서버의 리소스 경로로 '/'로 구분된다. |
Query String | 웹 서버에 전달하는 파라미터이며, 자원에 대한 추가적인 정보를 제공하는 문자열이다. |
Fragment | 메인 리소스에 존재하는 서브 리소스를 접근할 때 이를 식별하기 위한 정보를 담고 있다. |
웹 브라우저가 접속할 웹 서버의 주소를 Domain Name이라하고, URL 구성 요소 중 Host가 된다. 이용자는 복잡한 IP Address의 형태가 아닌 도메인의 특성을 담은 주소를 입력하여 IP대신 사용한다.
Domain Name을 입력하면, 브라우저는 Domain Name Server(DNS)에 전달하여 DNS가 찾은 IP Address를 사용한다.
Linux에서 Domain Name에 대한 정보를 nslookup 명령어를 사용해 확인할 수 있다.
$ nslooup example.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non--authoritative answer:
Name: example.com
Address: 93.184.216.34