1. URL 분류: 브라우저는 URL을 schema(예: "http" 또는 "https"), domain(예: "www.example.com") 및 path(예: "/page.html")로 나눕니다.
- schema
- 정의한 프로토콜을 통해 다른 앱과 통신
- doamin
- 사이트에 액세스하는 데 사용되는 고유하고 기억하기 쉬운 주소
- IP 주소를 갖는 서버를 사용자가 쉽게 기억하고 찾을 수 있도록 만들어준 서비스
- path
- 페이지에 대한 경로
2. DNS Query: 웹사이트가 아직 캐시되지 않은 경우 DNS 서버를 쿼리하여 웹사이트의 실제 IP 주소를 찾습니다.
- (캐시 확인) hosts 파일 확인
- ip 주소와 hostname 을 매칭시켜놓은 텍스트 파일이며, 해당 컴퓨터 안에선 이 파일이 우선권을 갖습니다.
- hosts 파일에 정보가 없으면, 컴퓨터에 있는 local DNS cache에 ip 주소가 있는지 확인
- hosts 파일에서도, DNS cache 에서도 ip 주소를 알아낼 수 없다면, DNS 서버에 요청
- DNS 서버는 Root Domain부터 시작해 단계적으로 하위 ip 주소 탐색 (Recursive Query라 부름)
3. Network Connection: 브라우저는 IP 및 포트 번호(일반적으로 HTTP의 경우 80, HTTPS의 경우 443)를 사용하여 웹 서버에 연결합니다.
4. HTTP Request: HTTP 요청이 서버로 전송되어 헤더, 쿠키 및 사용자 에이전트 정보와 함께 원하는 리소스를 지정합니다.
5. Server Response: 웹 서버는 요청을 처리하고, 데이터를 검색하고, 콘텐츠 및 상태 정보가 포함된 HTTP 응답을 다시 보냅니다.
6. Rendering: 브라우저는 HTML, CSS, JavaScript 및 기타 리소스를 포함하는 응답을 수신하고 웹 페이지 렌더링을 시작합니다.
7. DOM 구성: HTML에서 DOM(Document Object Model)을 구성하고, CSS를 처리하고, JavaScript를 실행하여 페이지를 표시합니다.
8. 페이지 표시: 마지막 페이지가 화면에 나타나고 상호 작용할 수 있습니다.
동적 콘텐츠는 전체 페이지를 다시 로드하지 않고 json 데이터를 호출하여 업데이트될 수 있습니다.
9. 리소스 캐싱: 브라우저는 향후 방문 속도를 높이기 위해 리소스를 캐시할 수 있습니다.
10. Interaction: 페이지와 상호 작용하여 더 많은 HTTP 요청 및 응답을 트리거합니다.
11. Secure Connection: HTTPS 사이트의 경우 데이터를 암호화하기 위해 보안 SSL/TLS 연결이 설정됩니다.
12. Cookie Management: 쿠키 및 세션은 사용자 기본 설정 및 상태를 유지하기 위해 관리됩니다.
최신 브라우저는 다양한 기술을 통해 성능, 보안 및 사용자 경험을 최적화합니다.
출처