2023년 12월 25일
2024년 1월 1일
나는 웹 브라우저가 어떻게 작동하는지 정확히 알고 있는가?
1. 아니요.
2. 공부하자
웹 브라우저의 주요 기능은 선택한 웹 리소스를 서버에 요청하여 브라우저 창에 표시하는 것이다. 리소스는 일반적으로 HTML 문서이지만 PDF, 이미지 등 여러 콘텐츠일 수 있다. 리소스의 위치는 URI
를 사용하여 지정된다.
사용자 인터페이스는 주소창, 뒤로가기/앞으로가기 버튼, 북마크바 등 요청된 페이지에서 볼 수 있는 모든 요소들이다.
브라우저 엔진은 사용자 인터페이스와 렌더링 엔진 사이의 작업을 중개한다. 렌더링 엔진에 전달되는 동작을 제어하며 요청에 따라 사용자 인터페이스에서 렌더링 엔전으로 또는 그 반대로 정보를 전달한다.
렌더링 엔진은 요청받은 콘텐츠를 화면에 표시한다. HTML과 XML 문서, 이미지를 표시할 수 있으며 플러그인이나 브라우저 확장 기능을 통해 다른 유형의 콘텐츠도 표시할 수 있다.
💡 렌더링엔진은 웹 브라우저에서 가장 중요한 부분이다.
- 웹 페이지의 HTML, CSS, JavaScript 등 코드를 해석하고 → 사용자가 볼 수 있는 시각적인 웹 페이지로 변환하는 작업을 수행하기 때문이다.
네트워킹은 HTTP 요청과 같은 네트워크 호출에 사용된다. 이는 플랫폼 독립적 인터페이스로, 다양한 플랫폼에서 동일한 인터넷 프로토콜을 사용할 수 있도록 한다.
UI 백엔드는 인터페이스 요소를 그리는데 필요한 기본적인 구조를 제공한다. 이는 컴퓨터에서 실행되는 운영체제의 사용자 인터페이스 요소를 그리는 역할을 한다. 예를 들어, 콤보 박스와 창 같은 기본적인 통제를 가진다.
자바스크립트 코드를 분석하고 실행한다.
데이터 스토리지란, 웹 브라우저에서 사용하는 쿠키와 같은 로컬 저장소를 관리하는 모듈이다.
http:
//example.com/
product/electric/
phone
http
: 이는 URL의 프로토콜을 나타내며, 브라우저가 서버와 통신하는 방법을 나타낸다.example.com
: 이는 도메인 이름으로, 웹 서버의 위치를 나타낸다./product/electric/
phone
: 이는 경로로, 서버에서 찾을 리소스를 나타낸다.
DNS
- 도메인 네임 시스템으로, 컴퓨터, 서비스, 또는 인터넷에 연결된 장치들의 이름을 네트워크 주소로 바꾸어주는 시스템이다. 이 시스템이 없으면 우리가 IP 주소를 직접 입력해야 하지만, DNS 덕분에 도메인 이름을 사용하여 인터넷에 연결할 수 있다.
DNS에 의해 변환된 IP 주소를 사용하여 해당 서버에 연결을 요청한다.
예를 들어, 사용자가 웹 브라우저에 "www.example.com"이라는 웹 주소를 입력하면
브라우저는 해당 IP 주소의 서버에 접속하기 위해서 TCP(Transmission Control Protocol)
를 사용한다.
TCP
인터넷에서 데이터를 전송하는데 사용되는 주요 프로토콜 중 하나로, 데이터를 패킷으로 나누고 이를 순서대로 전송하여 목적지에서 원래의 데이터로 재조립하는 역할을 담당한다.
브라우저는 웹 서버에 HTTP(Hypertext Transfer Protocol) 요청을 보낸다. 이 요청은 사용자가 원하는 웹 페이지의 URL을 포함하고 있다.
HTTP 요청
클라이언트가 서버에 데이터를 요청하는 방법이다. 웹 브라우저가 서버에게 웹 페이지의 정보를 달라고 요청하는 것을 예로 들 수 있다.
일반적으로 요청 메소드, URI, 프로토콜 버전, 요청 헤더 등의 정보를 포함하고 있다.
👩🏻💻 여기까지 정리하면
사용자가 URL을 입력하고 Enter를 클릭하면
- DNS는 URL을 컴퓨터가 읽기 쉽게 IP 주소로 변환한다.
- 브라우저는 TCP를 사용하여 서버의 IP 주소와 통신하고자 하는 포트 번호를 대상으로 연결을 시도한다. (TCP 연결 설정)
- 연결이 설정되면, 브라우저는 웹 페이지의 정보를 가져오기 위해서 서버에 HTTP 요청을 보낸다.
이제 서버가 요청을 응답하고 처리해야 한다.
웹 서버는 브라우저의 요청을 받아 처리하고, 요청한 웹 페이지의 HTML, CSS, JavaScript 등의 파일들을 HTTP 응답으로 브라우저에게 전송한다.
[http://example.com/index.html
을](http://example.com/index.html을) 요청했다면, 웹 서버는 index.html이라는 파일을 서버의 로컬 디렉토리에서 찾는다.product/electric/phone
product/electric/phone
도메인 뒤, 이것이 URI이다. 인터넷 상의 리소스를 고유하게 식별하고 위치를 지정하는 문자열이다. (Uniform Resource Locator)브라우저는 받은 HTML, CSS, JavaScript 파일들을 해석하여 사용자에게 보여줄 웹 페이지를 만들어낸다. 이 과정을 렌더링이라고 부른다. 이렇게 하여, 사용자는 웹 브라우저를 통해 웹 페이지를 볼 수 있다.