Chrome에서 www.google.com을 검색창에 검색을 하면 구글의 홈페이지가 나온다.
이러한 웹 통신의 내부를 봐보자
그전에 DNS, NAT, ISP가 무엇인지 간단하게 알아보자
DNS란 "Domain Name System"의 약자로,
도메인 이름을 IP 주소로 변환하는 프로세스이다.
인터넷에서 컴퓨터나 기기들은 IP 주소를 사용하여 통신한다.
하지만 사람들이 기억하기 쉬운 도메인 이름을 사용하여 웹사이트에 접근하려고 할 때,
해당 도메인 이름을 IP 주소로 변환해야한다.
일반적으로 DNS 서버에 쿼리를 보내 해당 도메인 이름과 연결된 IP 주소를 찾아 응답하여 사용자는 도메인 이름을 사용하여 웹 사이트에 액세스할 수 있게 된다.
DNS Lookup이란?
DNS 서버에서 해당 도메인 네임에 해당하는 IP 주소를 찾는 행위이며
DNS Lookup 과정은 크롬의 경우에는
브라우저 → hosts 파일 → DNS Cache -> DNS 직접 Request의 순서로 도메인에 매칭되는 ip를 찾는다.
NAT란 "Natwork Address Translation"의 약자로, 주소 변환 서비스이다.
라우터 같은 장비를 사용하여 다수의 사설 IP(우리가 사용하는 컴퓨터 IP)를 하나의 공인IP 주소로 변환해주는 기술이다.
자세한 내용은 이분의 포스팅을 참조하자
https://brunch.co.kr/@sangjinkang/61
ISP란 "Internet Service Provider"의 약자로, 인터넷 서비스 제공자이다.
KT, LG, SK와 같은 기업을 말한다.
개인이나 기업에게 인터넷 접속 서비스 및 웹 호스팅 서비스를 제공하는 회사들을 의미한다.
www.google.com을 예시로 설명해보자
1. 클라이언트가 도메인 주소를 입력한다.
-> 클라이언트의 요청은 브라우저에 의해 HTTP 요청 메시지(웹 페이지의 URL 정보 등이 포함)로 구성된다.
2. 브라우저는 DNS 서버에게 도메인 이름을 IP 주소로 변환해달라는 DNS 조회 요청을 보낸다.
-> 통신을 하기 위해서는 google의 IP 주소를 알아야한다.
3. DNS 서버는 도메인 이름에 대응하는 IP 주소를 찾아서 응답으로 전송한다.
-> 그 전에 hosts 파일 → DNS Cache를 확인한다.
4. 브라우저는 응답 받은 IP 주소를 사용하여 구글 서버에 대한 TCP/IP 연결을 수립한다.
-> HTTP 통신을 하니 TCP 연결을 한다.
5. 브라우저는 TCP/IP 연결을 통해 HTTP Request를 구글 서버로 보낸다.
6. 구글 서버는 Response를 한 후 내용을 분석하여 요청된 리소스의 종류와 위치, 요청 메서드 등을 파악한다.
7. 검색된 데이터를 기반으로 구글 서버는 요청된 웹 페이지를 생성한다
8. 구글 서버는 생성된 웹 페이지의 HTML, CSS, JavaScript 등의 구성 요소를 결합하여 최종적인 답 데이터를 형성한다.
9. 구글 서버는 생성된 데이터를 HTTP Response의 형태로 브라우저로 전송한다.
10. 응답을 받은 브라우저는 응답 본문에 포함된 리소스를 해석하여 웹 페이지를 사용자에게 표시한다.
11. 구글 서버는 생성한 웹 페이지를 HTTP Response의 형태로 브라우저로 전송합니다. 응답은 상태 코드(예: 200 OK)와 함께 헤더와 본문으로 구성된다.
14. 브라우저는 받은 HTTP 응답을 받아들이고, 응답 본문에 포함된 HTML, CSS, JavaScript 등의 리소스를 해석하여 웹 페이지를 렌더링한다.
15. 브라우저는 웹 페이지의 로딩이 완료되면 사용자에게 페이지가 표시된다.
HTML vs JSP (0) | 2024.03.19 |
---|---|
애자일(Agile) 개발 모델 (0) | 2024.03.18 |
동기화 비동기화 (0) | 2024.03.18 |
Transction (0) | 2024.03.16 |