각 프로세스와 스레드가 어떻게 통신하는지 좀 더 깊게 알아본다.
브라우저의 주소 표시줄에 URL을 입력하면 브라우저가 인터넷에서 데이터를 가져와서 페이지를 표시한다.
→ 간단한 이 동작 — 사용자가 사이트를 요청하고 브라우저가 페이지 렌더링을 준비하는 과정
(이 글에서는 이 과정을 '내비게이션'이라고 하겠다)에 초점을 맞춰 살펴본다.
브라우저 프로세스가 탭 영역 밖에 있는 모든 부분을 제어한다.
브라우저 프로세스에는 UI 스레드와 네트워크 스레드, 스토리지 스레드 등이 있다.
— UI 스레드 : 브라우저의 버튼과 입력란을 그린다.
— 네트워크 스레드 : 인터넷에서 데이터를 가져오기 위해 네트워크 스택을 다룬다.
— 스토리지 스레드 : 파일에 대한 접근을 제어한다.
⇒ 주소 표시줄에 URL을 입력하면 브라우저 프로세스의 UI 스레드가 입력을 처리한다.
브라우저 UI와 브라우저 프로세스. 브라우저 프로세스에는 UI 스레드와 네트워크 스레드, 스토리지 스레드가 있다.
입력되는 내용이 검색어인지 URL인지 확인하는 UI 스레드
사용자가 입력한 문자열이 '검색어'라면 문자열을 사용자가 선택한 검색 엔진의 URL과 조합하여 새로운 URL 형태로 변환한다. 이런 변환을 위해 Chrome 검색엔진의 URL 주소를 관리한다.
입력된 문자열이 검색어인지 URL인지 판별하는 것을 어려운 일이라서 브라우저는 이를 도와줄 서버와 통신하거나 DNS Lookup을 실행하기도 한다.