웹 통신의 흐름?

woonie·2022년 3월 11일
0

TIL

목록 보기
49/64

주소창에 URL(www.google.com)을 입력했을때 통신의 흐름을 알아보자.

월드 와이드 웹의 약자로 인터넷을 통해 접근할 수 있는 정보 공간. URL로 문서 등 리소스를 식별하고 리소스 간 하이퍼링크로 연결될 수 있다.

웹 통신

HTTP를 통해 리소스를 전송한다.

  • 웹에 연결된 컴퓨터는 클라이언트와 서버로 구분할 수 있다.

  • 서버 : 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템

  • 클라이언트 : 사용자가 서버에 접속하기 위해 사용하는 프로그램 또는 서비스, 웹 브라우저, 모바일 앱 등

웹 통신 과정

  • IP 주소 : 컴퓨터 네트워크에서 장치들이 서로 인식하고 통신을 하기 위해서 사용하는 특수한 번호
    (128.0.0.1 과 같은 32비트로 구성되어 있다.)
  • DNS : IP주소와 도메인 이름의 매핑 정보를 담는 데이터베이스
  1. 사용자가 브라우저에 도메인 이름을 입력한다.
  2. DNS서버에서 사용자가 입력한 Domain name을 검색하고, 매핑되는 IP주소를 찾는다. 사용자가 입력한 URL 정보와 함께 리턴한다.
  3. IP주소는 HTTP 프로토콜을 이용해서 HTTP 요청 메세지를 생성한다.
  4. 생성된 HTTP 요청 메세지는 TCP 프로토콜을 사용해서 인터넷을 거쳐 해당 IP 주소의 컴퓨터(서버)로 전송된다.
  5. 서버는 클라이언트의 요청을 승인하고, 응답 메세지를 전송한다.
  6. 도착한 HTTP 응답 메세지는 HTTP 프로토콜을 사용하여 웹페이지 데이터로 변환되고, 웹 브라우저의 출력에 의해 사용자가 볼 수 있다.

DNS의 웹/앱 라우팅 과정

  1. DNS 서버에 DNS Query(www.example.com)를 전송한다
    : 우리나라의 경우에는 통신사별로 지정된 DNS 서버가 있다.

  2. DNS 서버는 루트 네임 서버에 DNS Query를 질의한다.
    : 루트 네임 서버는 .com의 ip주소를 반환한다.

  3. .com 네임 서버에 DNS 쿼리를 질의한다.
    : .com 네임 서버는 example.com의 ip주소를 반환한다.

  4. example.com 네임 서버에 DNS 쿼리를 질의한다.
    : www.example.com의 IP 주소를 반환한다.

DNS 서버는 계층화 구조를 이루는데, 최상단 계층인 가장 뒷쪽(.com, .kr 등등)을 담당하는 DNS 서버는 전세계에 13개 뿐이다.

웹 서버 접속

접속하려는 서버의 IP주소를 알았고 접속을 해보자.

  1. HTTP Request를 위해 TCP socket을 개방하고 연결한다.
  2. TCP 연결에 성공하면, HTTP Request가 TCP socket을 통해 보내진다.
  3. 웹 페이지의 정보가 응답으로 돌아온다.

참고
https://github.com/WooVictory/Ready-For-Tech-Interview/blob/master/Network/%EC%A3%BC%EC%86%8C%EC%B0%BD%EC%97%90%20naver.com%EC%9D%84%20%EC%B9%98%EB%A9%B4%20%EC%9D%BC%EC%96%B4%EB%82%98%EB%8A%94%20%EC%9D%BC.md

http://tcpschool.com/webbasic/works

profile
동료들과 함께하는 개발의 중요성에 관심이 많습니다. 언제나 호기심을 갖고 꾸준히 노력하는 개발자로서 성장하고 있습니다.

0개의 댓글