본문 바로가기

네트워크

[HTTP] 웹 통신 흐름

웹 브라우저에 11st.co.kr 를 입력 했을 때 어떤 일이 일어날까?

 

IP 주소란?

IP 주소란 쉽게 말해서 서버에 접근하기 위해 필요한 주소로 0.0.0.0부터 255.255.255.255로 이루어진 최대 12자리 숫자인데 서버에 접근 하기 위해 이 주소를 외우고 다니는 것은 쉬운 일이 아니다. 그래서 필요한것이 DNS이다.

DNS 란?

DNS란 Domain Name System을 지칭 하는 약어로 외우기 힘든 IP 주소를 비교적 외우기 쉬운 도메인 네임으로 변환해 주거나 반대의 변환을 수행해 주는 시스템이다.

웹 브라우저에 11st.co.kr를 입력 했을 때 일어나는 일

  1. 웹 브라우저에서 도메인 네임(11st.co.kr)을 입력한다. (1)
  2. DNS 서버에서 브라우저가 입력한 URL에 포함된 도메인 네임과 매핑되는 IP 주소를 찾아 사용자가 입력한 URL 정보와 함께 전달한다. (2) ~ (4)
  3. DNS 서버에서 전달받은 IP 주소는 HTTP를 이용하여 HTTP 요청 메세지를 생성하고 생성된 메세지는 TCP 프로토콜을 사용하여 웹 서버로 전달된다. (5) ~ (7)
  4. 서버는 요청 URL에 포함된 데이터를 조회하고 다시 HTTP 프로토콜을 사용하여 웹 페이지 데이터가 포함된 HTTP 응답 메세지를 생성한다. (8) ~ (9)
  5. 생성된 응답 메세지를 TCP 프로토콜을 사용하여 브라우저로 전달한다. (9) ~ (10)
  6. 브라우저에 도착한 응답 메세지는 웹 페이지 데이터로 변환되고 브라우저에 의해 사용자의 화면에 출력된다. (11) ~ (12)

DHCP & ARP

  • DHCP는 호스트의 IP주소 및 TCP/IP 설정을 클라이언트에 자동으로 제공하는 프로토콜이다. 만약 고정된 IP를 할당한다면 중복되는 IP 주소를 할당하여 통신 기기간 충돌이 일어날수도 있고 사용하지 않는 통신 기기에도 IP 주소를 할당해 줘야 하기 때문에 IP 주소가 부족한 문제가 발생할수 있다. 그래서 DHCP가 IP를 할당해 주지만 통신 기기를 사용하지 않을때는 해당 IP를 반환받아 다른 통신 기기에 동적으로 재할당 해줌으로써 문제를 해결해준다. 사용자의 PC는 DHCP서버에서 사용자 자신의 IP주소, 가장 가까운 라우터의 IP주소, 가장 가까운 DNS서버의 IP주소를 받는다.
  • ARP는 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응시키기 위해 사용되는 프로토콜이다. 앞서 DHCP에 의해 IP 주소는 끊임없이 변화하기 때문에 논리적 주소인 IP 만으로는 원활한 네트워크 통신이 불가능한데 ARP가 IP 주소를 물리적 주소인 MAC 주소로 바꿔줌으로써 통신이 가능하게 한다. ARP 프로토콜을 이용하여 DHCP에서 받은 IP주소를 기반으로 가장 가까운 라우터의 MAC주소를 알아낸다. 

IP 정보 수신

위의 과정이 끝나면 DNS Query를 DNS 서버에 전송한다. 

전송 과정

  1. Local DNS에 해당 URL 주소의 IP주소를 요청한다.
  2. Local DNS에 해당 URL과 매핑되는 IP주소가 없다면 다른 DNS 서버에 DNS Query를 전송한다.
  3. 지정된 DNS 서버에서 Root DNS 서버에 www.11st.co.kr을 질의하면 .kr 네임서버의 ip 주소를 알려준다.
  4. .kr 네임 서버에 www.11st.co.kr을 질의하면 11st.co.kr 네임서버의 ip 주소를 알려준다.
  5. 11st.co.kr 네임서버에 다시 www.11st.co.kr을 질의 하면 www.11st.co.kr의 IP 주소를 얻을 수 있다.

웹 서버 접속

웹 서버의 IP 주소까지 알게 되면 가상의 연결을 수립하기 위한 3-way handshake 과정이 일어난다. TCP 연결에 성공하면 Http Request가 TCP Socket을 통해 보내지고 웹 페이지의 정보가 사용자의 PC로 들어온다.

'네트워크' 카테고리의 다른 글

OSI 7계층, TCP/IP 4계층  (0) 2023.05.24
[HTTP] HTTP, HTTPS, SSL Handshake  (0) 2022.11.28
[HTTP] TCP와 UDP의 특징 (TCP 3-way, 4-way handshake)  (0) 2022.11.27
[HTTP] 쿠키와 세션  (0) 2022.09.30
[HTTP] 세션과 토큰  (0) 2022.03.14