네이버를 주소창에 치면 어떻게 될까?

Y b·2024년 2월 21일

면접질문

목록 보기
11/24

서론

불과 몇일 전에 면접에서 받은 질문 ㅠㅠ
DNS만 알고.. 제대로 답하지 못해서 슬펐다.
그래서 접했던 질문이더라도 용어 정리 및 직접 해보면서 익혀보려고 한다.

요약

대기열, 캐싱, DNS, 라우팅, ARP, 초기연결을 거쳐 컨텐츠를 다운받게 되고 이 후 브라우저렌더링 과정을 거쳐 네이버라는 화면이 나타나게 됩니다. 또한 이러한 과정이 캡슐화, 비캡슐화과정을 거쳐서 이뤄지게 됩니다

[출처][CS전공지식면접] www.naver.com을 주소창에 치면 어떻게 될까요?|작성자 큰돌
참고: https://blog.naver.com/jhc9639/222700552159

-대기열
-캐싱
-ARP
-초기연결
-브라우저렌더링
-캡슐화
-비캡슐화

과정

1단계

사용자가 입력한 url 주소 중에서 도메인 네임을 DNS 서버에서 검색한다.

※ DNS:사람이 읽을 수 있는 도메인 이름(예: www.amazon.com)을 머신이 읽을 수 있는 IP 주소(예: 192.0.2.44)로 변환
※ 도메인 네임: 네트워크상에서 컴퓨터를 식별하는 호스트명이자 www.amazon.com같은 웹주소

2단계

DNS 서버에서 해당 도메인 네임에 해당하는 IP주소를 찾아 사용자가 입력한 URL 정보와 함께 전달합니다

※ 도메인 네임 = URL(Uniform Resource Locator) = 인터넷 주소
※ 도메인은 인터넷 상에서의 주소로 URL의 일부.

※ URL은 프로토콜, 이름, 확장자로 구성되어 있으며 도메인이 포함되어 있는 경로.

3단계

웹 페이지 URL + IP 주소는 HTTP 프로토콜을 사용하여 HTTP 요청 메세지를 생성합니다

※ HTTP은 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜.

※ 클라이언트와 서버들은 개별적인 메시지 교환에 의해 통신합니다. 보통 브라우저인 클라이언트에 의해 전송되는 메시지를 요청(requests)이라고 부르며, 그에 대해 서버에서 응답으로 전송되는 메시지를 응답(responses)이라고 부릅니다.

참조 : https://developer.mozilla.org/ko/docs/Web/HTTP/Overview

4단계

HTTP 요청 메세지는 TCP 프로토콜을 사용하여 인터넷을 거쳐 해당 IP 주소의 컴퓨터로 전송된다

※ TCP 프로토콜이란 OSI 7Layer 중 4계층인 전송계층에 속하는 중요 프로토콜로 네트워크 망에 연결된 컴퓨터의 프로그램 간 데이터를 순서대로, 에러없이 교환할 수 있게 하는 역할이다.

5단계

이렇게 도착한 HTTP 요청 메세지는 HTTP 프로토콜을 사용하여 웹 페이지 URL 정보로 변환된다.

6단계

웹 서버는 도착한 웹 페이지 URL 정보에 해당하는 데이터를 검색한다

7단계

검색된 웹 페이지 데이터는 또다시 HTTP 프로토콜을 사용하여 HTTP 응답 메세지를 생성한다

8단계

이렇게 생성된 HTTP 응답 메세지는 TCP 프로토콜을 사용하여 인터넷을 거쳐 원래 컴퓨터로 전달된다.

9단계

도착한 HTTP 응답 메세지는 HTTP 프로토콜을 이용하여 웹 페이지 데이터로 변환되고, 웹 브라우저에 의해 출력되어 사용자가 볼 수 있게 된다.

다른 페이지 설명

1
https://oozoowos.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%A3%BC%EC%86%8C%EC%B0%BD%EC%97%90-URL%EC%9D%84-%EC%9E%85%EB%A0%A5-%EC%8B%9C-%EC%9D%BC%EC%96%B4%EB%82%98%EB%8A%94-%EC%9D%BC
2
https://blog.naver.com/jhc9639/222700552159
3
https://velog.io/@easttwave/Network-%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80%EC%97%90%EC%84%9C-%EB%8F%84%EB%A9%94%EC%9D%B8-%EC%9D%B4%EB%A6%84%EC%9C%BC%EB%A1%9C-%EA%B2%80%EC%83%89%EC%9D%84-%ED%96%88%EC%9D%84-%EB%95%8C-%EB%B2%8C%EC%96%B4%EC%A7%80%EB%8A%94-%EC%9D%BC

profile
웹 개발자

0개의 댓글