전 게시글에서 웹사이트의 구조를 알아보았다.
이제 과정은 다음과 같다.
먼저, 사용자는 흔히 Chrome, Firefox, Safari 등을 가리키는
웹 브라우저를 연다.
웹 브라우저가 하는 역할은 다음과 같다.
- HTML 렌더링
- CSS 처리
- JavaScript 실행
- 웹 페이지 간의 이동, 북마크 저장, 검색 등을 지원한다.
이제 사용자는 웹 브라우저에서 검색창 혹은 주소 표시줄에
검색하고자 하는 웹사이트의 도메인 주소를 입력한다.
웹 브라우저는 사용자가 입력한 도메인 주소를 DNS(Domain Name System) 서버에 요청하여
해당 도메인 주소에 대응하는 IP 주소를 찾는다.
DNS는 도메인 이름을 IP 주소로 변환하여 웹 사이트에 접속할 수 있도록 해준다.
이 과정에서는 DNS 캐시나 필요하다면 추가적으로 네트워크 요청이 발생한다.
이 과정에 대해서 더 자세히 설명하자면, 다음과 같다.
DNS 작동 과정
1. 브라우저 캐시 확인
- 브라우저는 먼저 캐시에 해당 도메인 이름에 대한 IP 주소가 있는지 확인한다.
- 유효한 IP주소가 캐시에 존재한다면 이를 사용한다.
2. 운영체제 캐시 확인
- 브라우저 캐시에 IP 주소가 없다면, 운영 체제 수준의 DNS 캐시를 확인한다.
- 운영 체제는 이전에 조회된 도메인 네임과 IP 주소를 일정 기간 동안 캐시에 저장하는데 있다면 이를 사용한다.
3. 로컬 DNS 서버 캐시 확인
- 이전 방식 또한 없다면, 로컬 네트워크 DNS 서버(인터넷 서비스 제공자(ISP) 또는 기업 네트워크의 DNS서버)에 요청
- 로컬 DNS 서버는 ISP 또는 네트워크 관리자가 설정한 DNS 서버이다.
- 이전 조회된 도메인 네임과 IP 주소를 가지고 있을 수 있다. 있다면 이를 사용한다.
4. 권한 있는 DNS 서버로 쿼리 전송
- 로컬 DNS 서버 캐시에도 없다? 루트 DNS 서버로 쿼리를 전송한다.
- 루트 DNS 서버는 도메인 이름의 최상위 수준(TLD) 서버의 IP 주소를 알고 있다.
- 예를 들어 "example.com" 경우, ".com" TDL 서버의 IP 주소를 반환.
- 로컬 DNS 서버는 TLD 서버에 쿼리를 전송하여 해당 도메인의 권한 있는 DNS 서버의 IP 주소를 확인한다.
- TLD 서버는 권한 있는 DNS 서버의 IP 주소를 로컬 DNS 서버에 반환.
- 로컬 DNS 서버는 권한 있는 DNS 서버에 쿼리를 전송하여 최종적으로 도메인 이름에 해당하는 IP 주소를 확인.
- 권한 있는 DNS 서버는 해당 도메인의 정확한 IP 주소를 로컬 DNS 서버에 반환.
5. IP 주소 반환 및 캐싱
- 로컬 DNS 서버는 얻은 IP 주소를 운영 체제와 브라우저에 반환한다.
- 브라우저와 운영체제는 이 IP 주소를 캐시에 저장하여 이후 동일한 도메인 이름에 대한 요청 시 빠르게 응답할 수 있게 한다.
요약하자면 다음과 같다.
브라우저 캐시 확인 -> 운영체제 캐시 확인 -> 로컬 DNS 서버 캐시 확인
-> 루트 DNS 서버로 쿼리 요청 -> TLD 서버에 쿼리 전송 -> 권한 있는 DNS 서버의 IP 주소 반환
-> 권한 있는 DNS 서버에 쿼리 전송 -> 최종 IP 주소 반환 및 캐싱
이제 우리는 도메인 주소의 IP 주소를 받았다.
웹 브라우저는 해당 IP 주소로 서버에 연결을 시도한다.
서버에는 웹사이트들의 파일들이 저장되어 있고, 웹사이트의 내용을 사용자에게 전달한다.
웹 브라우저는 서버와 연결된 후, HTTP(HyperText Transfer Protocol)를 사용하여 서버에 요청을 보낸다.
이 요청에는 사용자가 접근하려는 페이지의 정보나 웹사이트로부터 받고자 하는 파일의 종류 등이 포함되어 있다.
서버는 받은 요청을 처리하고, 해당하는 웹페이지나 파일을 웹브라우저에 다시 전송한다.
이 과정에서 서버는 HTML, CSS, JavaScript, 이미지, 비디오 등의 파일을 전송한다.
웹 브라우저는 이제 받은 파일들을 이용하여 사용자가 볼 수 있는 웹 페이지를 생성 후 화면에 표시한다.
이때 HTML 파일을 해석하여 웹 페이지의 구조를 결정하고,
CSS를 이용하여 스타일을 입혀주고,
JavaScript 파일을 실행하여 동적인 기능을 추가한다.
이렇게 최종 화면이 렌더링되었다.
사용자는 렌더링 된 웹 페이지를 통해 웹사이트의 다양한 기능을 이용하고 정보를 얻는다!
이 과정에서 사용자와 웹사이트 사이의 상호작용이 이루어진다.
'Computer Science > Computer Network' 카테고리의 다른 글
| [OSI 7계층]네트워크 계층 (0) | 2024.07.15 |
|---|---|
| 웹사이트 구조 (0) | 2024.07.07 |
| 패킷 교환 방식과 IP address (0) | 2024.07.05 |
| 컴퓨터 네트워크 (0) | 2024.07.05 |