검색창에 URL을 입력하면?

이주영·2023년 2월 27일
0

간단하게 보면 🗺️

  1. 브라우저가 그리기 위해서 필요한 데이터를 가져오는 단계
  2. 파일들을 가지고 브라우저가 렌더링을 진행하는 단계

첫번째 단계

0. DNS 쿼리를 보내기 전, 더 빠르게 IP를 획득할 수 있는 캐시를 확인한다.

  1. 브라우저 캐시 (Q. hosts 파일이 브라우저 캐시랑 동일한건가?)
  2. OS 캐시 (system call 활용해서 내용에 접근 가능)
  3. Router 캐시 (공유기 , ISP (인터넷 공급 업체) 캐시를 찾아본다.) -> 통신사 DNS 캐시?? 찾아보기
  4. IP 주소를 찾을 수 없으면 ISP에 DNS 쿼리를 보내야한다.

1. DNS을 통한 IP 획득

브라우저는 해당 URL을 DNS를 활용하여 IP 주소로 바꿉니다. 이를 통해 웹 사이트를 호스팅하는 서버의 위치를 결정할 수 있습니다.

2. TCP 연결 (HTTP 통신의 기반)

IP 주소를 얻으면 TCP/IP를 사용해 서버에 연결을 하려고 신호를 보낸다. HTTP(Hypertext Transfer Protocol) 또는 HTTPS(Secure Hypertext Transfer Protocol) 프로토콜의 기반인 TCP/IP.

TCP 연결을 통해 mac 주소, IP 주소 , 포트 번호, 데이터를 알 수 있고 ARP (주소 결정 프로토콜)을 통해 IP 주소를 물리적 네트워크 주소로 대응 시킨다고 하는데 조금 더 공부해야할 것 같습니다.

2-1. TCP 연결 시도

tcp 연결을 위해 3 way handshaking이 이루어진다.

2-2. 연결 중 방화벽이나 Https/SSL가 설정되어있으면 TCP/IP에서 제어된다.

방화벽은 특정 ip주소나 어떤 지역에서 접근해 오는 신호를 차단할 수 있고 https/ssl은 클라이언트와 서버와의 암호화를 통해 중간에 누가 패킷을 엿듣는 것을 차단합니다.

2-3. TCP 연결 성공시

TCP 연결이 성공하면 HTTP request가 날아갑니다.

3. 요청 보내기

그런 다음 브라우저는 서버에 HTTP 요청을 보냅니다. 이 요청은 원하는 리소스(예: 웹 페이지)를 지정하는 것과 같은 정보를 포함합니다. 이 정보는 요청 유형(예: GET, POST), 응답의 원하는 형식(예: HTML, JSON) 및 필요한 자격 증명(예: 쿠키) 등이 포함됩니다.

4. 서버 처리

서버는 요청(브라우저 버전 종류 쿠키, 사용자 정보등 )을 받고 처리합니다.

5. 응답 보내기

서버는 요청에 대한 응답을 생성하고 브라우저로 다시 보냅니다. 응답에는 요청된 리소스와 콘텐츠 유형 및 길이에 대한 정보와 같은 필요한 헤더가 포함됩니다.

두번째 단계

렌더러 프로세스에 데이터가 전달된 이후

6. 받은 데이터 화면으로 보여주기: 마지막으로 브라우저는 응답을 수신하고 내용을 구문 분석한 후 사용자의 화면에 페이지를 렌더링합니다.

6번에 해당하는 과정이 브라우저 렌더링 과정입니다.

용어 정리

  • protocol : 정보를 주고 받는데 필요한 형식
  • 패킷 : 데이터를 주고 받기 위해 형식에 맞게 쪼개진 데이터 조각
  • TCP/IP : 연결 지향 방식
  • UDP : 처음과 끝만 아는것
  • ARP : IP주소를 물리적 네트워크 주소로 매칭하기 위한 프로토콜

TCP/IP 4계층의 주요한 특징

  • application -> http
  • transport Layer -> 포트 번호
  • internet -> ip
  • network -> mac 주소

참고 자료

URL을 검색하면 나오는 결과 : https://www.youtube.com/watch?v=0Oqkw8wVY_c
널널한 개발자 : 널널한 개발자 TV
테코톡 TCP/IP : https://www.youtube.com/watch?v=BEK354TRgZ8

관련있는 메모

OS Moc , CDN, GSLB, HTTP, TCP_IP, ARP , CDN , 디자인 패턴

profile
https://danny-blog.vercel.app/ 문제 해결 과정을 정리하는 블로그입니다.

0개의 댓글