CS지식

주소창에 google.com을 입력하면 일어나는 일

정니정은니 2023. 11. 14. 16:42

주소창에 google.com을 입력하면 일어나는 과정을 공부했다.

생각보다 너무너무..!!!! 복잡했다..
10개 넘는 블로그, 5개 넘은 동영상을 시청하며 드디어 이 과정을 나름대로 이해하고 정리할 수 있었다.

일단은 비교적 간단하게 정리해보았지만 하나하나 더 깊게 들어가서 마스터 하고싶다. 🌟


1. 사용자가 웹 브라우저를 통해 www.google.com(URL)을  입력한다.     

2. 브라우저는 먼저 4단계의 캐싱된 DNS 기록을 확인한다.

- 4단계

브라우저 캐시 → OS 캐시 → router 캐시(집에서 사용하는 공유기) → ISP 캐시(SK 브로드밴드)

 

- 왜 이런 캐시들이 있을까? 인터넷 스피드를 최대한 빨리 하기 위해서!

3. 있다면 DNS 서버로 연결하지 않고 IP 주소를 반환한다.

4. 없다면 ISP의 DNS 서버가 IP 주소를 찾기위해 DNS 쿼리를 날린다.

DNS Recursor(= DNS 서버)가 아래와 같은 순서로 com부터 역순으로 물어보며 IP 주소를 찾는다.
(이를 Recursive search라고 한다.)
: Root domain(.) → Top-level domains(com) → Second-level domains(google) → Third-level domains(www)

5. DNS 서버는 사용자가 입력한 URL 정보와 함께 IP 주소를 전송한다.

6. 브라우저가 서버와 TCP 연결을 한다.

: TCP 연결은 송신자와 수신자간의 연결에 신뢰성을 유지할 수 있도록 해준다.
: 즉, 클라이언트와 서버간 데이터 패킷들이 오가려면 TCP 연결이 되어야한다.
: TCP 연결 방법은 3 way handshaking으로 한다.
: 클라이언트와 서버가 SYN(연결요청)ACK(승인)3번의 프로세스를 거친 후 연결이 된다.

 

- 3 way handshaking
(1) 클라이언트가 SYN 신호보내며 연결 가능한지 묻고
(2) 서버가 SYN과 ACK를 응답하고
(3) 클라이언트가 서버에게 잘 받았다고 ACK를 보낸다.

 

이렇게 서로 안전하게 정보를 교환할 수 있는 길이 연결되는 것이다.

7. TCP 연결이 된 후, 브라우저가 웹 서버에게 HTTP 요청을 한다.

: 요청 헤더요청에 대한 정보(URL, Method)클라이언트에 대한 정보(accept, user-agent, cookie)를 담아서 함께 보낸다.
: 저는 헤더에 이러이러한 스택을 가진 클라이언트인데 구글 홈페이지를 get 하고 싶습니다. 라고 말하는 것이다.
: accept) 어떤 타입의 응답 컨텐츠를 수용할 수 있는지
: user-agent) 브라우저 버전 및 종류, 운영체제 종류
: cookie) 브라우저에서 얻은 쿠키 정보

8. 서버가 브라우저의 요청 헤더를 확인하고 HTTP 응답을 한다.

: 응답 헤더) 응답에 대한 부가적인 내용들
: 응답 바디) HTML 문서
: 상태 코드) 서버 요청에 따른 상태

 

- 상태 코드

1xx: (정보) 요청을 받았으며 프로세스를 계속한다.
2xx: (성공) 요청을 성공적으로 받았으며 인식해서 처리했다.
3xx: (리다이렉션) 요청 완료를 위해 추가 작업 조치가 필요하다.
4xx: (클라이언트 에러) 요청의 문법이 잘못되었거나 요청을 처리할 수 없다.
5xx: (서버 에러) 서버가 명백히 유효한 요청에 대해 충족을 실패했다.

9. 브라우저는 서버에게 응답받은 리소스로 파싱하여 화면에 렌더링을 한다.


기타 개념들

  • DNS 서버 (Domain Name System)

도메인 이름과 IP 주소에 대한 정보를 관리하는 시스템으로 DNS가 도메인 네임을 IP 주소로 바꿔줘서 인터넷 사용자는 어려운 IP 주소를 몰라도 이런저런 사이트에 쉽게 접근할 수 있다.

 

  • DNS 동작 과정

브라우저는 먼저 브라우저의 캐쉬에 해당 도메인의 IP 주소를 가지고 있나 확인한다. → 없으면 DNS 서버에게 IP를 요청한다.

 

  • DNS 계층 구조: 도메인을 계층적이게 관리하여 서버를 분리한다.

계층의 탐색 순서는 거꾸로 탐색한다.

뒤에서부터 해당 도메인 이름에 맞는 지역 DNS를 탐색하며, root DNS 서버가 나올때까지 거꾸로 탐색한다.


참고한 블로그 및 영상

https://youtu.be/YahjHM9UNCA?si=Mtx1Hk1jCsmoOysC

 

https://aws-hyoh.tistory.com/entry/TCPIP-쉽게-이해하기

 

TCP/IP 쉽게 이해하기

IT 분야에서 실무를 담당하시는 분들뿐만 아니라 학생, IT 쪽에 조금이라도 관심이 있는 분들이라면 TCP/IP에 대해 들어보셨을 겁니다. 저 또한 학부시절에 TCP/IP에 대해서 여러 번 들어보았는데요.

aws-hyoh.tistory.com

https://velog.io/@eassy/www.google.com을-주소창에서-입력하면-일어나는-일

 

'www.google.com'을 주소창에서 입력하면 일어나는 일

_개발자로서 웹이 어떤 과정으로 동작하게 되는지, 무슨일이 어떻게 일어나는지에 대해 제대로 이해하지 못한 채 그냥 만들고 보여지는데에만 집중했던 것 같다. 어느 정도 큰 그림으로라도 이

velog.io

https://youtu.be/0jV7xOUcKog?si=5fpGxzq1l1QkDlB2