웹 브라우저에 URL을 입력하고 첫 화면이 출력되기까지

JM.dev·2021년 12월 6일
0

기술면접

목록 보기
2/2
post-thumbnail

1. 브라우저의 URL 파싱

  • 어떤 프로토콜을 통해 해당 URL에 요청할 것인지 => ex) https:// or http://

  • 어떤 URL로 요청할 것인지 => ex) www.naver.com

  • 어떤 포트로 요청할 것인지 => ex) :433 or :80
    포트를 선언하지 않았다면 브라우저에서는 설정된 기본값을 이용해 요청하게 됩니다. HTTP라면 80 포트를, HTTPS라면 443 포트를 기본 값으로 요청하는 것이죠.

2. HSTS 목록 조회

HSTS 목록에 있으면 첫 요청을 HTTPS로 보내고, 아닌경우 HTTP로 보낸다.

HTTP Strict Transport Security란?
HTTP 대신 HTTPS만을 사용하여 통신해야 한다고 웹 사이트가 웹 브라우저에 알리는 보안기능
출처) MDN - Strict Transport Security

3. URL을 IP주소로 변환

URL주소로는 컴퓨터끼리 통신할 수 없습니다. 이를 인터넷 상에서 컴퓨터가 읽을 수 있는 IP주소로 변환해야 서로 통신이 가능하게 됩니다.
도메인 주소를 IP주소로 변환해주는 DNS(Domain Name System) 서버에 요청하여 해당 URL을 IP주소로 변환합니다.

DNS 서버로 요청하는 과정

1. 미리 설정 된 Local DNS에 해당 URL 주소의 IP주소를 요청합니다.

2. Local DNS에 해당 IP주소가 존재한다면 이를 응답하고, 없다면 다른 DNS 서버와 통신합니다. root DNS 서버에 해당 URL의 IP주소를 요청합니다.

3. root DNS서버에 해당 IP주소가 없다면 하위 DNS 서버에 요청하라고 응답합니다. 이 응답을 받은 Local DNS는. net 도메인을 관리하는 DNS 서버에  같은 내용을 요청합니다.

4. .net DNS 서버에 해당 IP주소가 없다면 하위 DNS 서버에 요청하라고 응답합니다. 이 응답을 받은 Local DNS는 daum.net 도메인을 관리하는 DNS 서버에 같은 내용을 요청합니다.

5. daum.net DNS 서버에서 IP주소를 응답받은 Local DNS는 해당 IP주소를 캐싱하고 응답합니다.

4. 라우터를 통해 해당 서버의 게이트웨이까지 이동

IP주소로 가야 하는 것은 알지만 어떻게 가야 할지 경로는 알 수 없습니다. 이 요청이 네트워크를 타고 어떻게 이동할지는 네트워크 장비인 라우터의 라우팅을 통해 이루어집니다.

5. ARP를 통해 IP주소를 MAC주소로 변환

실질적인 통신을 하기 위해서는 논리 주소인 IP주소를 물리 주소인 MAC 주소로 변환해야 합니다. 이를 위해 해당 네트워크 내에서 ARP를 브로드 캐스팅합니다. 해당 IP주소를 가지고 있는 노드는 자신의 MAC 주소를 응답합니다.

6. 대상 서버와 TCP 소켓 연결


computer 와 server 사이에 packet 을 전송하기 위해 TCP connection 을 맺는 것은 매우 중요합니다.
TCP 는 three-way handshake 을 사용해 client 와 server 사이에 SYN(synchronize), ACK(acknowledge) message 를 교환하여 connection 을 맺습니다.

1.client computer 가 SYN packet 을 서버로 보내 connection 을 맺을 수 있는지 묻는다.

2.server 는 해당 port 가 열려 있어 새로운 connection 맺기가 가능하면 SYN 의 ACKnowledgment 로 응답하여 SYN/ACK packet을 전송한다.

3.client 가 SYN/ACK 를 받으면 ACK 를 서버로 전송한다.
이러한 process 로 TCP connection 이 맺어진다.

7. HTTP(HTTPS) 프로토콜로 요청, 응답

8. 브라우저에서 응답을 해석

profile
차곡차곡 한단계 씩

0개의 댓글