우리가 웹브라우저의 주소창에 https://www.google.com을 입력하여 엔터를 누르는 순간 사용자의 눈에 보이지 않는 짧은 시간에
일어나는 일련의 과정을 정리해보았습니다.
주소창에 https://www.google.com 입력후 Enter
1. IP 주소 확인
URL(Uniform Resource Locator)을 번역하면 통일된 파일의 위치 지정자 입니다.
즉, URL은 HTML페이지, CSS문서, Image등이 통합된 고유한 자원을 찾기 위한 주소를 제공합니다.
이 때,
- URL은 해당 자원의 주소를 찾기 위해 DNS(Domain Name System)에 해당 도메인에 대응하는 IP주소를 요청합니다.
- DNS는 컴퓨터가 서로 통신하는 데 사용하는 숫자 IP 주소로 변환되는, 쉽게 읽을 수 있는 도메인 이름의 디렉터리입니다
- DNS는 URL을 해당 이름과 연결된 웹 서버의 IP 주소로 변환합니다
2. TCP 3-way HandShake
TCP(Transmission Control Protocol)는 전송 제어 프로토콜로 받는 대상인 노드(호스트)가 서비스가능(연결가능) 상태인지 확인 및 연결을 수립하는 역할을 합니다.
- 브라우저는 이 IP주소에 있는 서버를 찾아갑니다.
- 이때 Random Sequence(랜덤한 숫자를 적은 번호표)를 들고갑니다.
- 서버는 이 번호표에 1을 더해 다시 브라우저에게 돌려줍니다.
- 브라우저는 받은 번호표에 다시 1을 더해 서버에게 전달하는데 이 과정을 3-Way HandShake라고 합니다.
즉, TCP 3-Way HandShake는 양 쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이터 전달을 시작하기 전에 한쪽에서 다른쪽이 준비되었다는 것을 알 수 있게 합니다.
이제 브라우저는 서버에게 자료를 요청할 수 있는 상태가 됩니다.
3. HTTP Request&Response
- 브라우저는 서버에게 해당 주소(www.google.com)에 있는 데이터를 요청합니다(HTTP Request)
- 서버는 브라우저에게 요청을 받으면 브라우저에게 데이터를 보내줍니다(HTTP Response)
이렇게 웹브라우저는 서버에게 웹페이지에 필요한 자원을 요청하여 다운로드합니다. 이 자원에는 HTML 문서, CSS 스타일시트, JavaScript파일 등이 포함 될 수 있으며, 웹 브라우저는 이 파일들을 로컬 시스템에 임시적으로 저장(캐싱)합니다.
4. Data Parsing과 Dom Tree 생성
브라우저는 서버로부터 응답받아 다운로드한 파일을 사용자의 모니터에 출력(rendering)해줘야 합니다.
따라서 브라우저는 서버로부터 다운로드한 파일을 해석해야 합니다(Data Parsing)
- 먼저 브라우저의 렌더링 엔진은 HTML을 parsing하여 Dom Tree를 생성합니다. HTML을 작성하듯 상위 요소 안에 하위 요소를 넣은 구조를 트리구조로 생성합니다
5. 화면에 데이터 출력
'IT' 카테고리의 다른 글
SQL - SELECT문 실행 순서 정리 (0) | 2024.01.31 |
---|---|
표준적인 FirebaseFirestore 데이터 저장 방식 정리 (0) | 2023.07.24 |
REST API (0) | 2023.05.02 |