728x90
728x90
도입
이번에는 www.google.com을 검색하면 어떻게 우리에게 구글 웹 브라우저를 보여주게 되는지 알아보도록 하겠다.
웹 페이지를 가져오는 과정
- URL 주소를 검색한다.
- www.google.com을 입력한다.
- 호스트명을 DNS 서버에서 검색한다.
- DNS 서버에서 해당 호스트명에 대한 IP 주소를 찾아 전달한다.
- HTTP Request를 생성하고 TCP 프로토콜을 사용하여 인터넷을 거쳐 해당 IP 주소로로(웹 서버) 전송한다.
- 전송받은 HTTP Request 메시지를 받는다.
- 사용자로부터 받은 HTTP Request 메시지를 웹서버가 처리하며 필요한 데이터가 없는지 확인한다
- HTTP Request에서 요구한 데이터를 전달한다.
- 해당 데이터를 활용해 HTTP Response를 생성하고 사용자 IP로 응답을 보내준다.
- 웹서버가 전송한 HTTP Response를 받는다.
- 웹 페이지에 데이터를 추가하여 사용자에게 보여준다.
URL이란?
URL은 Uniform Resouse Location의 약자로 Location으로 Resouse를 구분하는 것이다. URL은 아래와 같이 사용한다.
protocol://host[:port][/] path[?query][#fragment]
- protocol - 브라우저가 어떤 규약을 사용해야하는 지를 나타낸다. 웹에서는 http와 https가 있으며 https는 보안이 http에서 보안이 추가된 것이라고 보면 된다.
- host - 도메인의 이름이다. 어느 웹서버로 요구를 하는지 구분하기 위해 사용된다. DNS를 활용해 ip로 변경된다.
- port - 포트는 ip를 통해 찾아간 컴퓨터에서 어느 문으로 데이터를 전송할지에 대한 정보이다. http는 80번 포트, https는 443 포트를 사용하며 위 두 관문을 사용할 경우에는 생략이 가능하다.
- path - path는 웹서버에서 리소스가 있는 위치를 의미한다.
- query - 쿼리파라미터는 웹서버로 전달되는 데이터로 ? 뒤에 명시하여준다. &를 활용하여 추가로 데이터를 전달할 수 있다.
- fragment - 부분 식별자라고 하며 북마크라고 생각하면 편하다. 웹서버로 넘어가지는 않는다.
http://www.google.com:80/search?q=hi
DNS의 역할
Domain Name System라고 부른다.
원래 host를 ip로 사용해야하는데 이를 외우는 일은 사람한테 너무 힘든 일이다. 따라서 이를 위해 www.google.com과 같은 domain name을 사용할 수 있도록 하였다. 그렇게 하기 위해 ip와 domain name을 맵핑을 해 주어야 하는데 이 역할을 DNS가 수행한다.
DNS는 domain name에 대해 1:1로 ip를 맵핑해주는 역할을 수행한다.
요약 정리
Q) www.google.com을 검색하면 무슨일이 일어날까요?
더보기
A) URL을 검색하면 DNS를 활용해 host에 맞는 ip주소를 할당받게 되고, 해당 ip 주소로 HTTP Request 메시지를 전송하게 된다. 이때 전송하는 방법은 HTTP/2는 TCP, HTTP/3부터는 UDP로 인터넷을 통하여 웹 서버로 전송이 된다. 그러면 웹 서버에서는 받아온 데이터를 활용해 HTTP Response 메시지를 생성하여 동일하게 UDP 혹은 TCP로 전송하게 되고 웹 서버로 부터 받은 데이터를 활용해 웹 페이지를 보여주게 된다.
글에서 틀린 부분이나 문제되는 점이 있다면 댓글 남겨주시면 매우 감사하겠습니다.
728x90
728x90
'Etc > odds and ends' 카테고리의 다른 글
DNS(Domain Name Service)란 무엇인가? (0) | 2021.12.11 |
---|---|
URI? URL? URN? (0) | 2021.12.07 |
Tistory 블로그 글 쓰면 자동으로 GitHub에 올리기 (0) | 2021.11.06 |
마크다운(Markdown) 문법 정리 (0) | 2021.07.15 |
Git Blog에 이미지 업로드 Tip (1) | 2021.07.15 |