미새문지

www.google.com를 입력하면 발생하는 일 본문

개발 TIL

www.google.com를 입력하면 발생하는 일

문미새 2025. 1. 18. 22:04
728x90

www.google.com을 입력하면 발생하는 일

웹 브라우저 주소창에 "www.google.com" 입력하면, 브라우저는 사용자가 요청한 웹 페이지를 화면에 표시하기 위해 여러 단계를 거친다.

1. DNS 조회

  • 사용자가 입력한 도메인 이름(예: www.google.com)은 사람이 읽기 쉬운 형태로, 실제 서버와 통신하려면 해당 도메인의 IP 주소가 필요하다.
  • 브라우저는 먼저 캐시를 확인하여 IP 주소가 있는지 찾고, 만약 캐시에 없으면 로컬 DNS 서버를 통해 IP 주소를 조회한다.
  • 결과적으로 www.google.com에 해당하는 IP 주소를 얻는다.(예: 142.250.190.78)

2. TCP 연결 수립

  • IP 주소가 확인되면 브라우저는 해당 서버와 데이터를 주고받기 위해 TCP 연결을 설정하며, TCP 연결은 신뢰성 있는 데이터 전송을 보장하고 3-way handshake 과정을 통해 이루어진다.
    1. 브라우저 → 서버: SYN 패킷 전송 (연결 요청)
    2. 서버 → 브라우저: SYN-ACK 패킷 전송 (요청 수락 및 확인)
    3. 브라우저 → 서버: ACK 패킷 전송 (응답 확인)

3. SSL/TLS 핸드셰이크

  •  이 단계는 웹사이트가 보안 통신(SSL/TLS)을 지원하는지 확인하는 과정이며, HTTPS를 사용하는 경우, TCP 연결 후 SSL/TLS 핸드셰이크가 이루어진다.
  • 브라우저와 서버는 보안 인증서를 교환하여 신뢰성을 확인하며, 암호화 키를 협상하여 데이터가 암호화된 상태로 전송되도록 한다.

4. HTTP 요청

  • 연결이 설정되면, 브라우저는 서버에 HTTP 요청을 보내며, 요청에는 추가 정보(헤더, 쿠키 등)가 포함될 수 있다.
  • 예: GET / HTTP/1.1

5. 서버 응답

  • 서버는 브라우저의 요청을 처리하고, 해당 리소스(HTML, CSS, JavaScript, 이미지 등)를 HTTP 응답으로 보낸다.
    • 응답에는 HTTP 상태 코드가 포함된다. (예: 200 OK 성공, 404 Not Found 등등)
    • 데이터는 요청에 따라 압축되어 전송될 수도 있다. (예: Gzip)

6. 브라우저 렌더링

  • 브라우저는 받은 리소스를 바탕으로 렌더링 파이프라인을 진행하여 화면에 웹 페이지를 표시한다.
    1. HTML 파싱: DOM 트리를 생성
    2. CSS 파싱: CSSOM 트리를 생성
    3. 렌더 트리 생성: DOM과 CSSOM을 결합하여 화면에 표시할 요소를 준비
    4. 레이아웃: 요소의 크기와 위치를 계산
    5. 페인팅 및 컴포지팅: 화면에 요소를 그려 최종적으로 페이지를 렌더링

요약

  1. DNS를 통해 도메인을 IP 주소로 변환
  2. 서버와 TCP 연결을 설정하고(HTTPS인 경우 TLS 핸드셰이크 포함), HTTP 요청 전송
  3. 서버에서 응답받은 리소스를 기반으로 브라우저가 렌더링 과정을 거쳐 화면에 표시

 

728x90

'개발 TIL' 카테고리의 다른 글

Render phase와 Commit phase  (0) 2025.01.22
Strict Mode  (1) 2025.01.20
브라우저 렌더링 파이프라인  (0) 2025.01.17
리액트 성능 최적화 방법  (0) 2025.01.15
Controlled Component와 Uncontrolled Component  (0) 2025.01.14