CS/네트워크

우리가 구글 페이지를 어떻게 들어갈까?

Timha 2023. 1. 10. 09:59

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