-
주소창에 google.com을 입력하면 일어나는 일CS지식 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
'CS지식' 카테고리의 다른 글
Map()과 Set(), iterable 객체 (1) 2023.12.04 리액트 렌더링 최적화 (2) 2023.11.14 동기와 비동기, 자바스크립트에서 비동기 처리가 가능한 이유, 비동기 프로그래밍 (1) 2023.11.11 리액트의 재선언, Virtual DOM 동작원리, Diffing 알고리즘 (0) 2023.11.11 호이스팅, 호이스팅 원인, 호이스팅 종류 (0) 2023.11.05