하다보니
[TIL] 네트워크 기초 본문
브라우저에 URL을 입력하면 무슨 일이 발생할까요??👀
1. URL을 해석한다.
URL을 스키마, 계정 정보, 호스트, 포트와 같은 정보로 이루어져 있습니다.
스키마는 프로토콜이 들어가는 영역입니다. 프로토콜은 어떤 시스템이 다른 시스템과 원활하게 통신할 수 있도록 해주는 통신 규약입니다.
계정 정보는 ftp를 사용할 때 볼 수 있는데 인증이 요구되는 아이디와 비번을 포함하면 접속 허가를 받을 수 있습니다.
2. DNS를 조회한다.
DNS는 domain name system이다. dns는 도메인과 ip주소를 변환해주는 시스템입니다. ip는 컴퓨터와 컴퓨터가 각자를 식별하기 위해 가진 주소입니다. dns로 요청을 보내기 전에 브라우저는 몇 가지 체크합니다. 먼저 해당 도메인을 알고 있는지 브라우저 캐시를 찾아보고, 없다면 local의 hosts 파일을 참조합니다. 만약 이미 정의가 되어있다면, 내부적으로 ip를 반환합니다.
둘 다 해당이 안되면 dns를 호출합니다. 그 후로 root server→TLD server→Authoritative Server 순으로 탐색하게 됩니다. 도메인과 호스트를 착각할 때가 많은데, 도메인은 ip에 이름을 부여한 것입니다. 서버를 식별하기 위한 단위입니다. 호스트는 서브 도메인이 붙은 경우는 전부 호스트라고 부릅니다. 예를 들면 도메인은 present.do 에 해당하고, 호스트는 present.do, www.present.do, gateway.dev.present.do 와 같은 형태 전부를 말합니다.
url은 서버가 가지고 있는 다양한 콘텐츠를 식별하기 위한 식별자입니다.
3. 해당 IP가 존재하는 서버로 이동한다.
찾은 ip가 할당된 서버가 존재하는 대역으로 이동합니다.
4. ARP를 사용하여 MAC 주소 변환을 한다.
ARP는 Address Resolution Protocol입니다. 논리 주소인 ip를 물리 주소인 mac 주소로 변환하는 프로토콜입니다. 실제 통신을 위해서는 변하지 않는 고유한 MAC 주소가 필요합니다.
5. TCP 통신을 위해 서버의 socket을 열어야 한다.
실제 소켓을 열어서 허락받아야 데이터를 전달할 수 있습니다. 이때 tcp 연결을 위해 3 way handshake가 실행됩니다. 여기서 요청이 수락되면 데이터를 서버로 전달하게 됩니다.
tcp란 서버와 클라이언트 간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜입니다. 데이터를 전송하기 전에 데이터 전송을 위한 연결을 만드는 연결 지향 프로토콜입니다.
6. 서버는 응답을 반환한다.
데이터를 받은 서버는 데이터를 읽고 요청에 따라 처리하게 됩니다. 보통 URL을 브라우저에 입력했으면 html이 응답됩니다. http 프로토콜로 들어온 패킷을 읽고 처리하여 요청에 따른 적절한 응답 값을 반환합니다.
7. 화면을 렌더링한다.
브라우저는 받은 html을 읽어 dom tree를 구축합니다.
그 후 돔트리를 기반으로 화면을 렌더링 합니다. 여기서 만약 스크립트가 있다면 스크립트까지 실행하게 됩니다.
'프로그래머스 데브코스' 카테고리의 다른 글
[TIL] 프론트 엔드 개발자란.., 자료형, 메모리, 스코프와 클로저 (0) | 2022.05.22 |
---|---|
데브코스 2개월차 회고 (0) | 2022.05.21 |