1 분 소요

✔ 웹 서비스가 작동하기 위한 수 많은 약속들

  • 데이터를 주고받는 약속은 2가지로 구분이 된다
  • TCP / UDP

TCP/UDP

TCP (전화기)

  • 1 : 1 연결만 가능
  • 데이터가 손실되면 재전송 요청을 하므로, 신뢰성 높음
  • 데이터의 순서와 무결성 보장
  • 속도가 상대적으로 느림
  • 높은 신뢰도를 요한 서비스에 적합

UDP (라디오)

  • 1: N 연결 가능
  • 정보를 받았는지 확인치 않고 일방적으로 전송
  • 데이터의 순서와 무결성 보장하지 않음
  • 속도가 상대적으로 빠름
  • IPTV, 실시간 스트리밍에 적합

✔ 브라우저 요청 흐름

https://www.google.com:443/생략 입력 시 어떻게 페이지를 반환하는 것인가?

웹 브라우저 서버 요청 과정

  • 웹 브라우저는 DNS 서버 조회를 통해 200.200.200.2(구글 서버) 결과를 받는다
  • 위 조회를 통해 IP정보, PORT정보를 얻은 후 웹 브라우저는 HTTP 메시지를 생성

HTTP 메시지 생성

GET /search?q=hello&hl=ko HTTP/1.1
Host: www.google.com

HTTP 요청 분류

  • GET(POST, PUT, DELTE)
    • 서버에 요청하는 방식
  • Path
    • 리소스의 위치 정보
  • Query
    • 서버에 전달하는 쿼리 파리미터 정보
  • Version
    • HTTP 버전 상태
  • HOST
    • 요청을 받는 서버쪽 정보

HTTP 메시지 전송

  • 웹 브라우저가 HTTP 메시지 생성
  • 소켓 라이브러리를 통해 OS계층에 전달
    • TCP/IP 연결(IP, PORT)
    • 데이터 전달
  • LAN 장비를 통해 인터넷으로 전달
  • TCP/IP 패킷 생성, HTTP 메시지 포함
  • 전송 데이터가 HTTP 메시지를 의미 한다

인터넷 망에 해당 HTTP 메시지 전달

  • 요청 패킷을 인터넷망에 던지면 수 많은 노드를 거쳐 구글 서버에 도착한다.

구글 서버에 요청 패킷 도착

  • 요청 패킷이 도착하면 구글 서버는 TCP/IP 패킷을 버린후 HTTP 메시지만 꺼낸다
  • 후에 해당 HTTP 메시지를 해석한 결과를 검색 엔진을 통해 데이터를 찾는다

구글 서버 HTTP 응답 메시지 생성

HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 3423

<html>
  <body>...</body>
<html>

구글 서버에서 나오는 HTTP 응답 메시지 분류

  • HTTP 버전 및 응답 결과
    • HTTP/1.1 200 OK
  • Content-Type
    • 응답하는 데이터가 HTML형식이고, 언어는 UTF-8로 되있다.
  • Content-Lengh
    • 실제 HTML의 길이를 의미
  • 클라이언트의 요청 타입에 따라 응답 결과(프로그램, HTML, 정적파일)이 달라진다.

HTTP 응답 메시지 Client에 도착

  • 구글 서버도 똑같이 응답 패킷을 만들고 Client에게 응답 패킷을 전달 한다.
  • 또한 TCP/IP 패킷으로 데이터를 감싼 후에 데이터를 전달 해준다.

클라이언트의 브라우저에서 응답 HTTP 메시지를 오픈

HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 3423

<html>
  <body>...</body>
<html>
  • 위 정보는 구글 서버의 응답 HTTP 메시지다.
  • 클라이언트에서는 해당 HTTP 메시지를 읽은 후 웹 브라우저에서 랜더링을 수행한다.

참고 자료

댓글남기기