웹 브라우저(Web Browser)는 인터넷 상의 다양한 정보를 조회하고 접근할 수 있습니다. 우리가 일반적으로 사이트에 접속하였을때, HTML, CSS, JavaScript 파일을 전달받아 이를 해석하고 우리의 눈으로 볼 수 있게 되는 것입니다.
이 과정에서 웹 브라우저는 정적인(Static)파일과 동적인(Dynamic)정보를 처리하게됩니다. 여기서, 정적 웹 페이지는 서버에서 브라우저로 전송되는 그대로 표시되지만, 동적 웹 페이지는 서버로부터 데이터를 받아 브라우저가 실시간으로 내용을 생성 또는 변경되는 것이죠. 🙂
우리는 여러 가지의 웹 브라우저를 사용한 적이 있을 것입니다. Windows XP 시절 컴퓨터를 사용하셨다면, 가장 친숙한 Internet Explorer부터, 최근 가장 많이 사용되는 Google Chrome, Firefox, Safari와 같은 것들을 웹 브라우저라 부르게됩니다.

**URL(Uniform Resource Locator)**
<aside>
📌 **URL(Uniform Resource Locator)**은 **인터넷(Internet)**상의 리소스 위치를 나타내기 위해 사용합니다. 인터넷 상의 **주소**라고 생각하시면 편해요!
</aside>
웹 브라우저는 주소창에서 원하는 인터넷 리소스를 조회하기 위해 **URL(Uniform Resource Locator)**을 입력합니다. 여기서, URL은 ‘`<프로토콜>://<도메인 명>:<포트>/<경로>`’의 구조를 가지며, 이는 웹서버의 특정한 리소스의 위치를 가리키게 됩니다.
예를 들어, ‘`http://cafe.naver.com/joonggonara`’ 라는 URL을 보면, ‘`http`’는 프로토콜을, ‘`cafe.naver.com`’은 ‘`naver.com`’ 이라는 **메인 도메인 명**과 ‘`cafe`’라는 **서브 도메인 명**으로 이루어져있습니다. 그리고 ‘`joonggonara`’는 서버에서 **리소스 경로**를 가리키게 됩니다. 즉, **중고나라** 라는 카페를 가리키게 되는것이죠.
이렇게 URL을 통해 웹 브라우저는 웹 서버의 특정 리소스에 대한 위치를 파악하고 요청을 전달하게 됩니다.
따라서, 우리가 웹 브라우저에 ‘`cafe.naver.com`’이라고 입력하면, 브라우저는 ‘`cafe.naver.com`’ 서버의 메인 페이지를 요청하게 되고, 해당 서버가 보내는 데이터를 받아 웹 브라우저에 보여줌으로써 우리가 웹 페이지를 조회할 수 있게 되는 것입니다.4) DNS로 조회하기blog.naver.com’ 주소를 입력하여 해당하는 정보를 조회하게 됩니다. 여기서, ‘blog.naver.com’ 주소와 같이 영어, 숫자, 특수문자로 이루어진 URL을 입력하게되는데, 해당하는 URL을 IP로 변환해주는 역할을 하는 서비스를 DNS(Domain Name Service)라고 부르게됩니다.사실, 인터넷 상의 각각의 리소스들은 고유의 IP 주소를 가지고 있습니다. 이 IP 주소는 숫자와 점(.)으로 이루어져 있어, 사람이 외우기 어렵고, 무슨 정보를 나타내는지 이해하기 어려울 것입니다.
→ 매번 “8.8.8.8 IP는 Google이다.” 와 같이 모든 사용자가 별도로 메모를 해야 인지할 수 있을 것입니다. 🥲
이 때 DNS를 이용하게된다면, 사용자가 IP를 사용하지 않고도 더욱 편리하게 해당하는 인터넷의 리소스에 접근할 수 있게 되는 것이죠.😉
→ 이제는 구글 리소스를 사용하고 싶다면 8.8.8.8이 아닌, google.com만 입력하면 됩니다! 🔥
결론적으로는 DNS는 인터넷의 ‘주소록’ 또는 ‘연락처’와 같은 역할을 하게됩니다. DNS는 사용자가 ‘blog.naver.com’과 같은 도메인 이름을 입력하면 DNS가 이를 해당하는 IP 주소로 변환해주는 역할을 수행합니다. 그로인해, 우리는 복잡한 숫자로 이루어진 IP 주소를 사용하지 않고도, 원하는 웹 페이지에 접속하여 사용할 수 있게 되는 것입니다.
5) IP를 이용하여 웹 서버와 통신하기
IP는 일반적으로 IPv4, IPv6와 같이 2가지의 방법을 사용하는데 현재 까지는 IPv4가 많이 사용되고 있습니다
출처: https://한국인터넷정보센터.한국 인터넷이 처음 세상에 나왔을 때, 네트워크 상의 고유한 정보를 조회하기 위해 32비트(8비트 4그룹, 약 43억 개)의 주소를 사용하는 IPv4체계가 도입되었습니다. 하지만, 시간이 지나며 인터넷에 연결되는 기기가 늘어나면서 IPv4 주소가 부족해지게 되었습니다. 원래는 주로 데스크탑만이 인터넷에 연결되었지만, 스마트폰, IoT 기기 등 다양한 모바일 기기들이 등장하면서 IP 주소를 필요로 하는 기기가 크게 늘게 된 것입니다. Ipv4에서 할당할 수 있는 주소가 초과할 조짐이 보이자, 이런 문제를 해결하기 위해 128비트(16비트 8그룹)를 가진, 약 3.4x10^38개의 주소를 할당할 수 있는 주소체계인 IPv6가 도입되었습니다. Ipv6는 단순히 주소의 확장만을 위한 것이 아니라, 더 나은 확장성과 보안성을 제공하는 여러 장점을 가지고 있답니다. 🙂DNS를 이용하여 우리는 IP(Internet Protocol)를 얻게 되었습니다. 이제 얻은 IP를 바탕으로 인터넷 상의 리소스를 사용하거나, 조회하기 위한 통신 작업을 진행할 것입니다.
💪 다음 섹션 부터 IP주소를 사용하여 특정 웹 서버와 통신을 시작하게 됩니다. 이 통신 과정에서 가장 흔히 사용되는 프로토콜인 HTTP(Hypertext Transfer Procol)를 알아보도록 하겠습니다!**GET Method로 요청하게 됩니다. 그러나 `POST, PUT, DELETE` 와 같은 다른 HTTP 요청 메서드들도 존재하며, 이들은 서버에 다른 타입의 요청을 보낼 때 사용됩니다.