CS/네트워크
우리가 구글 페이지를 어떻게 들어갈까?
Timha
2023. 1. 10. 09:59
- 브라우저의 주소창에 google.com 을 친다.
- 브라우저에서 google.com 과 대응 되는 ip주소를 브라우저 캐시 에서 찾는다 (이미 방문했던 사이트인지 ) 방문하지 않았다면 → OS캐시를 체크 (사용자 컴퓨터에 저장이 되어있는지) →컴퓨터에도 없다면 라우터캐시를 체크 - > 없다면 ISP(인터넷공급망)캐시를 확인
- 요청된 URL이 저장되어있지 않다면 GOOGLE.COM을 호스트하는 서버의 주소를 찾기위해 DNS서버에 쿼리를 보내서 IP를 찾는다
- GOOGLE.COM 과 매칭되는 값(IP)를 찾아서 목적지 (GOOGLE.COM의 IP주소)를 찾아가는 경로를 라우팅을 통해 확인 (이 과정에서 찾지 못한다면 요청실패에러) 실패가 아닌 성공이라면 올바른 IP를 받고 브라우저로 돌아오게 된다.
- 브라우저가 올바른 IP주소를 받았다면 받은 IP주소로 인터넷 프로토콜을 사용한다 (일반적으로 TCP/IP 사용 ,
- 프로토콜을 연결하고 요청을 보내기 위해 TCP/IP three-way handshake라고 불려지는 과정을 사용해서 수립
- 클라이언트는 인터넷 상에서 SYN 패킷을 서버에게 보내서 새로운 연결이 열려있는지 물어봅니다.
- 서버가 수용할 수 있는 새로운 포트가 열려 있고 새로운 연결을 시작할 수 있다면 SYN/ACK 패킷을 사용해서 SYN 패킷의 ACKnowledgement를 응답합니다.
- 클라이언트는 서버로부터 SYN/ACK 패킷을 받을 것이고 ACK 패킷을 보냄으로써 응답합니다.
- TCP연결이 연결이 되었다면 데이터를 전송 브라우저 → GOOGLE.COM 웹서버로 HTTP요청
- 브라우저에서 HTTP - GET REQUEST (GET 요청)을 한다.
- 요청을 받은 구글의 웹서버는 응답을 받고 특정한 포멧을 통해 응답을 분석
- 구글의 웹서버는 HTTP 응답을 보낸다.
- 1xx는 정보 메세지를 나타낸다.
- 2xx는 성공을 나타낸다.
- 3xx는 다른 URL로 클라이언트를 리다이렉션한다.
- 4xx는 클라이언트 측에서 에러가 났음을 나타낸다.
- 5xx는 서버측에서 에러가 났음을 나타낸다.
- 구글 웹서버에서 보낸 응답을 브라우저에서 받고 받은 데이터를 통해 HTML컨텐츠 등에 대한 데이터에 대해 추가 요청을 보낸다. ( CSS,이미지,JAVAscriptsFiles 등 웹 페이지를 구성하기 위한 추가요소를 get요청)
- 추가요소를 렌더링 시켜주며 우리가 보는 google페이지 도착!