Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- defee
- userprog
- 4기
- 나만무
- 자바스크립트
- 시스템콜
- 스택
- 오블완
- TiL
- 백준
- 코드트리
- 핀토스
- 큐
- 모션비트
- JavaScript
- 크래프톤정글
- 사이드프로젝트
- 알고리즘
- Vue.js
- CSS
- 자바
- Java
- 소켓
- Flutter
- 티스토리챌린지
- 리액트
- 크래프톤 정글
- HTML
- corou
- pintos
Archives
- Today
- Total
미새문지
www.google.com를 입력하면 발생하는 일 본문
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 과정을 통해 이루어진다.
- 브라우저 → 서버: SYN 패킷 전송 (연결 요청)
- 서버 → 브라우저: SYN-ACK 패킷 전송 (요청 수락 및 확인)
- 브라우저 → 서버: 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. 브라우저 렌더링
- 브라우저는 받은 리소스를 바탕으로 렌더링 파이프라인을 진행하여 화면에 웹 페이지를 표시한다.
- HTML 파싱: DOM 트리를 생성
- CSS 파싱: CSSOM 트리를 생성
- 렌더 트리 생성: DOM과 CSSOM을 결합하여 화면에 표시할 요소를 준비
- 레이아웃: 요소의 크기와 위치를 계산
- 페인팅 및 컴포지팅: 화면에 요소를 그려 최종적으로 페이지를 렌더링
요약
- DNS를 통해 도메인을 IP 주소로 변환
- 서버와 TCP 연결을 설정하고(HTTPS인 경우 TLS 핸드셰이크 포함), HTTP 요청 전송
- 서버에서 응답받은 리소스를 기반으로 브라우저가 렌더링 과정을 거쳐 화면에 표시
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 |