브라우저 작동의 원리

FeelSoo·2022년 4월 23일
0

CodeStates

목록 보기
16/43
post-thumbnail



우리가 사용하는 인터넷에는 역할이 크게 3가지로 구분된다.



1. 리소스 ( 권한 및 기능 ) 를 제공 (Serve) 하는 Server


ex ) 로그인, 로그아웃, 항공편 조회, 상품 카트에 담기, 혹은 검색 .. etc


2. 리소스를 이용하는 client


ex ) 사이트를 이용하는 대부분의 고객들 --- 인터파크를 이용하는 김코딩, 카카오페이를 이용하는 박해커


3. 리소스와 연계된 DB ( DataBase )


ex ) 인천 to 오사카 항공편을 조회했을 때 운항노선 DB 중 server는 고객이 요청한 항목만을 필터링하여 화면에 띄운다 ---

예를 들면 코리아항공의 전체 운항 노선을 담은 DB는 mysql로 구축해놓고 필터링 기능은 JS로 구현한 다음 DB와 JS를 연동시키면 리소스 요청이 들어왔을 때 서버는 DB를 참조하여 필터링을 진행한다




이렇게 Server, client, DB가 공존하는 프레임을 3 tier 아키텍처라고 부른다.

DB를 따로 구축해놓지 않고 Server단에다 통합해놓은 후 Client와 상호작용하는 프레임은 2 tier 아키텍처라 부른다.

DB의 규모가 크지 않을 땐 2tier 아키텍처를 사용할 수도 있겠지만 대다수의 사이트는 3 tier를 쓰지 않을까 싶다. 서버와 DB를 분리하는 이유는 서버 부담을 줄이기 위해서다. 토이나 사이드 프로젝트에만 2 tier를 쓸 수 있지 않나 싶다.



자 이제 인터넷의 주소창을 한 번 살펴보자

네이버에 접속했을 때 뜨는 주소창의 모습이다. https://www.naver.com 으로 되어있는데 여기에는 포트번호가 생략되어 있다. 원래는 https://www.naver.com:80, https://www.naver.com:443인데
www ( world wide web ) 의 URL은 기본적으로 80번 포트를 사용하므로 웹 브라우저는 자동적으로 이를 위와 같은 의미로 실행하고 우리는 포트번호를 생략해도 네이버 사이트에 접속할 수 있게 된다. 포트번호를 81이나 기타 번호로 수정해서 접속하면 접근이 되지 않는걸 확인할 수 있다.



이렇게 주소창에는 여러 요소들이 결합해 작동하는데 위와 같이 scheme, hosts, url-path, query로 이뤄져 있다.

query는 해당 사이트에서 수행할 기능을 주문하는 것이다. 위의 경우 구글에서 javascript를 검색하라는 주문이다. 아래의 자료는 각 부분별로 어떤 역할을 하는지 설명하고 있다.



만약 서버 말고 특정 pc를 찾고 싶다면 어떻게 해야 할까? 우리는 특정 pc의 고유한 주소인 ip 주소를 이용해야 한다. 그리고 ip주소로 접근하기 위한 port번호도 사용해야 한다.

나의 로컬 네트워크에 접속하기 --- 127.0.0.1, 172.30.1.1 혹은 (이하 생략)1.14는 호스트에 할당된 ip이다. 즉, 즉, 내가 갖고 있는 노트북에서 localhost 또는 127.0.0.1로 서버를 띄울 경우 서버를 띄운 노트북에서만 접속이 가능하다.

사진은 로컬 ip주소를 3001번의 port ( 통로 ) 로 접근한다는 의미를 담고 있다.

한 가지 더. 위에서 우리는 특정 pc를 찾기 위해서는 ip 주소가 필요함을 알 수 있었다. 그러면 특정 사이트 가령 naver 같은 경우는 왜 ip 주소 없이 상호명만 검색해도 접속이 될까?

DNS ( Domain Name System ) 덕분이다. DNS는 상호명의 주소를 해당하는 ip주소로 변경하여 접속시켜 준다. DNS는 ISP ( Internet Service Provider --- ex) KT, LG U+ ..etc) 등이 운영한다.

한 가지 더. ip주소의 종류에는 2가지가 있고 활용 방법 또한 2가지가 있다.

종류로는 공인 ip, 사설 ip가 있다.

공인 IP

인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP(인터넷 서비스 공급자)가 제공하는 IP 주소이다. 공용 IP 주소라고도 불리며 외부에 공개되어 있는 IP 주소이다.

공인 IP는 전세계에서 유일한 IP 주소를 갖는다.

공인 IP 주소가 외부에 공개되어 있기에 인터넷에 연결된 다른 PC로부터의 접근이 가능하다. 따라서 공인 IP 주소를 사용하는 경우에는 방화벽 등의 보안 프로그램을 설치할 필요가 있다.



사설 IP

일반 가정이나 회사 내 등에 할당된 네트워크의 IP 주소이며, 로컬 IP, 가상 IP라고도 한다. IPv4의 주소부족으로 인해 서브넷팅된 IP이기 때문에 라우터에 의해 로컬 네트워크상의 PC 나 장치에 할당된다.

즉, 사설 IP로는 동일 라우터에 연결된 개별 컴퓨터들에만 통신이 가능하고 인터넷 통신을 위해서는 공인 IP를 사용하여야 한다.




활용 방법으로는 고정 ip와 유동 ip가 있는데 글자 그대로 고정 ip 방식은 ip를 ISP에게 반납할 때까지 고정 주소로 사용하고, 유동 ip 방식은 그리고 남아있는 IP 중에서 유동적으로 할당받아 사용한다.

인터넷 상에서 서버를 운영하고자 할 땐 고정 IP, 공인 IP를 받아야 한다. 공인 IP가 없으면 클라이언트가 접근 자체를 하지 못하게 되고 고정 IP를 이용하지 않으면 주소가 계속 변경이 되기 때문에 클라이언트가 접속할 때마다 주소를 바꿔서 접속해야 할 수 있다. DNS 시스템과 연동하기 위해선 고정 IP를 사용해야 한다

profile
세상은 넓고 배울건 많다

0개의 댓글