인터넷 브라우저에 google.com 을 입력한다면 어떤일이 일어날까 ?
클라이언트와 웹 서버 간의 통신은 아래의 구성 요소로 이루어 질 수 있습니다.
- DNS
- Network
- HTTP
DNS
- DNS 브라우저는 먼저 google.com 을 확인하며 클라이언트는 자신의 캐시에 google.com 의 데이터가 저장되어 있는지 확인합니다 만약 캐시에 데이터가 있다면 해당 데이터를 통해 바로 페이지를 렌더링 합니다.
- 위의 조건이 부합하지 않다면 브라우저는 도메인 네임 시스템(DNS)을 통해 google.com의 IP 주소를 찾습니다 이 경우에는
브라우저 -> 운영체제 DNS Resolve(/etc/resolv.conf) -> 재귀 DNS 서버 -> 권한 있는 DNS 서버들(root, TLD, 도메인) -> 최종적으로 google.com 에 대한 IP 주소를 받습니다.
Network
- 앞서 DNS에서 google.com에 대한 IP 주소를 받은 상태이며 3way-handshake를 통해 구글의 웹 서버와 TCP 연결을 수립합니다.
- 3way-handshake의 과정으로는
브라우저 -> 웹 서버(SYN - 연결 요청) -> 웹서버 -> 브라우저(SYN/ACK - 요청 승인) 브라우저 -> 웹 서버(ACK - 최종 승인) 과정으로 신뢰 할 수 있는 TCP 연결이 맺어집니다.
HTTP
- 만약 google.com이 https://google.com 과 같이 SSL 인증서가 적용 되어 https 인 경우에는 TLS 암호화 핸드쉐이크 과정을 진행합니다.
- TCP/TLS 연결을 통해 브라우저는 구글 웹서버에 HTTP 요청을 보내면 구글 웹 서버는 HTTP 요청을 받아 처리한 후 응답 데이터를 만들어 보내고 브라우저는 구글 웹 서버로부터 HTTP 응답을 받아 html, css, javascript 등을 해석하여 렌더링합니다.
- 추가로 리소스 요청/수신 렌더링 중 추가 리소스(이미지, 동영상 등)이 필요하면 개별적으로 HTTP 요청을 보내어 데이터를 가져옵니다.
- 이후 과정으로는 브라우저가 업데이트 된다면 위에서 진행한 TCP 연결 및 HTTP 요청/응답 렌더링 과정을 차례로 수행합니다.
감사합니다.
틀린점 있다면 댓글로 알려주시면 수정하도록 하겠습니다.
'Computer Science > 네트워크' 카테고리의 다른 글
Wireshark로 ARP통신보기 (0) | 2023.01.05 |
---|---|
OSI 7 Layer (0) | 2018.09.05 |