이직중/기술면접

'www.google.com'을 주소창에 입력하면?

서규Dev 2022. 11. 30. 21:30

기술 면접을 준비하면서 관련한 정보를 검색하다 보면 정말 정말 정말 많이 나오는 질문입니다. 사실 네트워크 관련 문제이기 때문에 일반적인 개발 지식이라고 하기에는 뭣하기도 하지만 그래도! 이렇게나 많이 나오고 단골 질문이라고도 얘기가 나오는 만큼 한 번쯤은 짚고 넘어가야 할 거 같아 이렇게 정리해보려고 합니다. 

 

사용자가 주소창에 구글 URL을 입력했을 때 > 구글 사이트가 나옵니다.

일반적이죠?

 

사실 이 질문에 대한 의도는 웹이 어떻게 동작하느냐에 대한 웹의 동작 원리에 대해 알아보기 위한 질문입니다.

 

사실상 웹은 사용자. 즉, 클라이언트가 요청하면 서버가 그 요청에 응답하는 것입니다.

 

출처 : https://velog.io/@eassy/www.google.com을-주소창에서-입력하면-일어나는-일

 

위 그림은 클라이언트의 요청 이후 서버의 응답까지를 보여주는 그림입니다. 아래에서 상세히 알아보고자 합니다.

 

1. 사용자 입력

사용자 입력은 말그대로 클라이언트가 요청을 하는 것입니다. 이후 서비스는 이 요청에 대한 응답을 하게 됩니다.

 

2. 웹 페이지 URL

여기서는www.google.com 이  되겠습니다.

 

3. 도메인 네임

입력된 URL에 의해서 웹 브라우저는 DNS에게 특정 사이트의 주소(도메인)를 요청합니다. 

* DNS(Domain Name System) 은 도메인 이름과 IP 주소를 서로 변환하는 역할을 합니다. 웹 서버가 읽을 수 있는 IP 주소로 찾아서 변환해주는 역할을 하는 거죠.

 

4. IP 주소

DNS이 요청한 IP 주소를 찾아 응답합니다.

 

5. HTTP 요청 메시지

HTTP 요청은 말 그대로 화면에 띄울 웹 페이지를 요청하는 것입니다. 우리가 google 사이트로 들어갔을 때 보이는 화면을 요청하는 것이라고 볼 수 있습니다.

 

6. HTTP 요청 메시지

HTTP 요청 메시지에 대한 부분이 TCP 간의 통신으로 왜 한 번 더 일어나는지 궁금하실 텐데요. 서버 간의 통신이 이뤄져야 하기 때문입니다. 즉, 응답해야 하는 웹 페이지에 대한 정보가 웹 서버에 존재하는데 해당 웹 서버와 TCP 통신을 하고 있다고 보시면 되겠습니다.

 

7. 웹 페이지 URL

클라이언트가 요청한 URL이 웹 서버에 입력되면 웹 서버는 해당 URL에 관한 처리를 웹 서버 내부에서 진행하게 되고 처리된 데이터를 리턴 시키게 됩니다.

 

8. 웹 페이지 데이터

처리된 데이터는 다시 통신을 위해 이전과 같이 TCP 통신을 하게 됩니다.

 

9. HTTP 응답 메시지, 10. HTTP 응답 메세지

처리된 데이터는 HTTP 응답 메시지로 리턴하게 되겠죠.

 

11. 웹 페이지 데이터

요청 값에 대한 응답. 즉, URL에 대한 웹 페이지가 화면에 노출되면서 우리가 알고 있는 google의 사이트 화면이 보이게 됩니다.