주소창에 google.com이나 naver.com같은 주소를 입력하면 어떤 과정을 통해 우리에게 결과를 보내주는 걸까?
- 브라우저가 캐싱된 DNS 기록들을 통해 도메인 주소와 대응되는 IP 주소가 있는지 확인한다.
DNS(Domain name system service) : DNS는 URL들의 이름과 IP주소를 가지고 있는(저장하고 있는) 데이터베이스이다.
숫자로 된 IP주소 대신 사용자가 사용하기 편리하도록 주소를 매핑해주는 역할을 한다
이렇게 nslookup 명령어를 터미널에 입력하게 되면 도메인의 ip정보를 출력할 수 있다.
여기서 Non-authoritative answer 값은서버가 직접 해당 도메인을 소유하고 있지 않지만 요청된 도메인에 대한 정보를 캐시하고 있을 수 있다는 것을 나타낸다.
브라우저는 DNS기록을 브라우저캐시, OS 캐시, router캐시, ISP 캐시 이렇게 4가지의 캐시에서 확인한다.
- 요청한 URL이 캐시에 없으면, DNS query를 날린다.
캐시에서 다 검색했는데 아직도 IP주소를 확인할 수 없다면 DNS query를 통해 다른 DNS서버를 검색해서 해당 사이트의 IP주소를 찾는다.
recursive serch라고도 불리는 이 검색은 IP주소를 찾을 때까지 다른 DNS 서버를 오가면서 에러가 발생하던지 검색이 완료될때까지 진행한다.
- 브라우저가 IP주소를 받게 되면 서버와 TCP connection을 빌드하고 브라우저는 인터넷 프로토콜을 사용해서 서버와 연결이 된다.
- TCP로 연결이 되었다면 브라우저가 웹 서버에 HTTP 문서를 요청을 한다.
클라이언트의 부라우저는 GET요청을 통해 서버에게 google.com 웹 페이지(index.html)를 요구한다.
이 요청을 할 때 쿠키 등의 다른 부가적인 정보도 함꼐 전달이 된다.
- 서버가 HTTP response를 보낸다.
status code
100번대 → 정보만 담긴 메세지
200번대 → responce 성공
300번대 → 클라이언트를 다른 url로 리다이렉트 함
400번대 → 잘못 된 주소 입력 등 클라이언트에서 error 발생
500번대 → 서버측에서 error 발생
- 웹 브라우저가 화면에 웹 페이지를 출력한다.
브라우저는 HTML content를 단계적으로 보여준다. HTML의 기본 틀을 렌더링 하고, 추가적으로 필요한 웹페이지 요소들을 요청한다.
이 파일들은 브라우저에 의해 캐싱되어 나중에 같은 페이지를 방문할 때 다시 서버로부터 불러와지지 않도록 한다.
요약하면, 도메인에 주소가 입력 되면 브라우저가 화면에 웹 페이지를 출력하기까지 6개의 단계를 거친다.
- 웹 브라우저는 캐싱된 DNS 기록들을 통해 도메인 주소와 대응하는 IP주소를 찾는다
- 캐싱된 기록에 없을 경우 HTTP를 사용하여 DNS에 입력된 도메인 주소를 요청한다.
- DNS가 브라우저에게 찾은 사이트의 IP주소를 반환한다
- 웹 브라우저가 서버에게 IP주소를 이용하여 HTML 문서를 요청한다.
- 서버가 요청을 처리한 뒤 HTTP response를 브라우저에게 보낸다.
- 웹 브라우저가 화면에 웹 페이지를 출력한다.
참고
'junior developer :) > CS(Computer Science)지식' 카테고리의 다른 글
JWT(Json Web Token)에 대해서 (3) | 2023.07.21 |
---|---|
graphQL(github explorer) & RESTAPI (0) | 2022.12.01 |
쿠키(Cookie)와 세션(Session) (0) | 2022.11.11 |
WAI-ARIA 란? (웹 접근성 향상) (0) | 2022.11.07 |
네트워크 기초 2. SSR과 CSR_웹페이지 동작 방식 (0) | 2022.10.11 |