2025. 03. 07 블로그 A/S 프로젝트🚧 로 추가한 글입니다.
기존에는 "웹 브라우저" 로 퉁쳤던 대상을, 정확히 누가 수행하는지 자세히 알아봅시다.
주소창에 URI를 입력하면 어떤 일이 생길까?
주소창에 URI를 입력하면 다음과 같은 일이 진행된다.
1. handling inputs: 텍스트를 입력했네. 쿼리야 URL이야?
- 누가: 브라우저 프로세스의 UI 쓰레드가
- 무엇을: 주소창에 입력한 텍스트를
- 어떻게
- Search Query인지, URL인지 판단
- Search Query - 검색엔진으로 쿼리 보내서 검색 준비
- URL - 네트워크 쓰레드로 URL 값 보낼 준비
2. Start Navigation: enter 눌렀네. 요청 보내자!
2-1. UI 쓰레드
- 누가: 브라우저 프로세스의 UI 쓰레드가
- 무엇을: 주소창에 입력한 URL을
- 어떻게: 네트워크 쓰레드에게 전달
2-2. 네트워크 쓰레드
- 누가: 브라우저 프로세스의 네트워크 쓰레드가
- 무엇을, 어떻게
- DNS 확인: 어디로 요청 보내지?
- DNS를 조회하여 도메인(www.google.com)의 IP를 알아낸다
- HTTP 요청(데이터) 생성
- TCP/IP 연결
- 패킷 생성, 전송
- DNS 확인: 어디로 요청 보내지?
3. Read response: 응답 왔네. HTML이야 아니야?
3-1. 킁킁 이거 무슨타입이지
- 누가: 브라우저 프로세스의 네트워크 쓰레드가
- 무엇을: 응답의 type을 확인
- 어떻게: response header의 content-type으로
3-2. 분류 끝냈으니까 넘겨야겠다
- 누가: 브라우저 프로세스의 네트워크 쓰레드가
- 무엇을: 응답받은 파일을
- 어떻게
- HTML - 렌더러 프로세스에게 넘길 준비
- 그 외 - 다운로드 매니저에게 넘길 준비
4. Renderer process한테 넘기기
4-1. 데이터 받아왔는데 UI 쓰레드야 이것좀 전달해라
- 누가: 브라우저 프로세스의 네트워크 쓰레드가
- 무엇을, 어떻게: 데이터 준비됐어! 라고 UI 쓰레드에게 알림
4-2. ㅇㅋ 드디어 넘기는구나
- 누가: 브라우저 프로세스의 UI 쓰레드가
- 무엇을, 어떻게: 미리 찾아놓은 렌더러 프로세스에게 데이터 전달
5. Commit Navigation
- 누가: 브라우저 프로세스의 UI 쓰레드가
- 무엇을, 어떻게: IPC & 데이터 스트림을 렌더러 프로세스에게 보냄
- 누가: 렌더러 프로세스가
- 무엇을, 어떻게: 브라우저 프로세스에게 커밋 네비게이션 되었다고 컨펌
네비게이션 끝! 렌더링 시작!
브라우저 렌더링, 리플로우, 리페인팅
2025. 03. 06 블로그 A/S 프로젝트🚧 로 업데이트한 글입니다.1. 브라우저 렌더링 과정사용자가 브라우저를 통해 웹사이트에 접속하고, 브라우저가 리소스를 다운받으면서 시작된다. (HTML, CSS, JS 등
hamo0.tistory.com
'TIL > 네트워크' 카테고리의 다른 글
[240307] SSH(Secure SHell) 프로토콜 (1) | 2024.03.07 |
---|---|
[240222] HTTP 헤더 (0) | 2024.02.22 |
[240219] HTTP 상태코드 (1) | 2024.02.19 |
[240216] HTTP 메서드 (0) | 2024.02.16 |
[240213] HTTP 기초 (0) | 2024.02.13 |