URL 구문 분석 : 브라우저는 입력한 URL을 구문 분석하고 프로토콜(예: HTTP 또는 HTTPS), 호스트 이름, 경로 등을 비롯한 여러 구성 요소로 분해합니다.
DNS 확인 : 브라우저는 호스트 이름을 해당 IP 주소로 확인해야 합니다. 호스트 이름에 해당하는 IP 주소에 대해 DNS(도메인 이름 시스템) 서버에 요청을 보냅니다.
네트워크 연결 설정 : 브라우저는 분석을 통해 얻은 IP 주소를 사용하여 서버와 네트워크 연결을 설정합니다. HTTP 프로토콜의 경우 기본적으로 포트 번호 80이 사용되며 HTTPS 프로토콜의 경우 기본적으로 포트 번호 443이 사용됩니다.
HTTP 요청 보내기 : 네트워크 연결이 설정되면 브라우저가 HTTP 요청을 보냅니다. 이 요청에는 URL 및 요청 방법(GET, POST 등), 요청 헤더(브라우저 정보, 필수 콘텐츠 유형 등 포함) 및 요청 본문(POST 요청의 경우)과 같은 기타 관련 정보가 포함됩니다.
서버 처리 요청 : 서버는 브라우저가 보낸 요청을 받은 후 처리합니다. 서버의 구성 및 애플리케이션에 따라 여기에는 요청된 리소스 조회, 백엔드 로직 실행, 데이터베이스에서 데이터 가져오기 등이 포함될 수 있습니다.
응답 반환 : 서버가 요청을 처리한 후 HTTP 응답을 생성합니다. 응답에는 HTTP 상태 코드(요청의 성공 여부를 나타내는 숫자 코드)와 응답 콘텐츠가 포함됩니다. 일반적인 상태 코드에는 200(성공), 404(찾을 수 없음) 및 500(서버 오류)이 포함됩니다.
응답 수신 : 브라우저는 서버가 반환한 HTTP 응답을 수신한 후 응답의 콘텐츠 유형에 따라 해당 처리를 수행합니다. 예를 들어 응답이 HTML 콘텐츠인 경우 브라우저는 이를 구문 분석하여 웹 페이지로 렌더링합니다.
페이지 렌더링 : 브라우저는 HTML, CSS 및 JavaScript와 같은 수신된 리소스와 브라우저 자체 렌더링 엔진을 기반으로 페이지를 구문 분석하고 렌더링합니다. DOM 트리(문서 개체 모델), CSSOM 트리(CSS 개체 모델) 및 렌더링 트리를 빌드하고 마지막으로 사용자에게 페이지를 표시합니다.
리소스 다운로드 : 페이지 렌더링 중에 브라우저는 이미지, 스타일시트, 스크립트 파일 등과 같이 페이지에서 참조되는 다른 리소스도 다운로드합니다. 이러한 리소스는 후속 방문 시 더 빠르게 로드할 수 있도록 브라우저에서 캐시됩니다.
페이지 완성 : 페이지의 모든 리소스가 다운로드, 구문 분석 및 렌더링되면 페이지가 표시되고 사용자와 상호 작용할 수 있습니다.