응용 계층

웹 페이지를 볼 때는 chrome과 같은 웹 브라우저를 이용하고, 메일을 보내고 받을 때는 Outlook과 같은 메일 프로그램을 사용할 것이다. 이렇게 애플리케이션은 사용자가 하고 싶은 일을 할 수 있도록 도와준다.

물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층에 의해서 상대방에게 데이터를 정확하게 전달할 수 있게 되었다. 응응 계층에서는 전달받은 데이터를 애플리케이션과 주고 받기 위한 역할을 맡고 있다.

Application Layer


  • 클라이언트
    서비스를 요철하는 측 ex) 사용자가 사용하는 애플리케이션인 웹 브라우저, 메일 프로그램

  • 서버
    서비스를 제공하는 측 ex) 서비스를 제공하는 측인 웹 서버 프로그램과 메일 서버 프로그램이 있다.
    이러한 애플리케이션은 응용 계층에서 동작한다.

응용계층의 프로토콜

아래의 사진처럼 클라이언트 측 애플리케이션이 서버 측 애플리케이션과 통신하려면 응용 계층의 프로토콜을 사용해야 한다.

Application Layer Protocol


  • 응용 계층에서 사용하는 대표적인 프로토콜 5가지
Application Layer


응용 계층은 각각의 애플리케이션에 대응되는 데이터를 전송하는 역할을 한다. 응용 계층에서 보내려는 데이터는 하위 계층인 전송 계층 -> 네트워크 계층 -> 데이터 링크 계층 -> 물리 계층 순서로 처리된다.
각 계층의 프로토콜과 기술을 아래의 사진을 보고 이해하자.

Layer Protocol&Technology


웹 서버의 구조

  • WWW(World Wide Web)
    웹이라고 부르고 HTML, URL, HTTP라는 세 가지 기술이 사용된다.

  • HTML
    웹 페이지에서 문장 구조나 문자를 꾸미는 태그를 사용하는 마크업 언어이다. 웹 페이지를 HTML로 작성한다.

클라이언트가 처음 웹 브라우저를 접속했을 때 웹 브라우저는 웹 서버에게 HTML과 이미지 파일을 요청하고 웹 서버는 HTML과 이미지 파일을 전송한다.
문서와 이미지를 별도로 요청하기에 가끔 글이 먼저 보이고 이미지가 나중에 보일 때가 있는 것이다.

웹 서버와 웹 브라우저 통신


  • HTTP
    클라이언트(웹 브라우저)는 웹 사이트를 보기 위해 서버(웹 서버 프로그램)의 80번 포트를 사용하여 HTTP 통신을 한다. 아래의 그림과 같이 클라이언트가 HTTP 요청(request)를 보내고, 서버는 HTTP 응답(response)을 반환한다.
    웹 서버와 웹 브라우저 통신


  • HTTP/1.0 버전
    요청을 보낼 때마다 연결했다 끊는 작업을 반복했다. 이를 보완하기 위해 HTTP/1.1의 keepalive 기능 추가
    웹 서버와 웹 브라우저 통신


  • HTTP/1.1 버전
    HTTP/1.1 버전에는 keepalive 기능이 있다. keepalive는 연결을 한번 수립하면 데이터 교환을 마칠 때까지 유지하고, 데이터 교환을 모두 끝내면 연결을 끊는 구조이다. keepalive는 순서대로 처리하는 특성이 있어서 1️⃣요청에 1️⃣의 응답으로 반환, 2️⃣의 요청에 2️⃣의 응답을 반환한다.
    웹 서버와 웹 브라우저 통신


  • HTTP/2.0 버전
    HTTP/1.1 버전에서 요처ㅓㅇ을 보낸 순서대로 응답을 반환하면 이전 요청을 처리하는 데 시간이 길어져 다음 요청에 대한 처리가 늦어진다는 단점이 있다.
    그래서 나온 것이 HTTP/2.0 버전이다. HTTP/2.0 버전은 요청을 보낸 순서대로 응답을 반환하지 않아도 된다. 그래서 content를 빠르게 표시할 수 있다.
    웹 서버와 웹 브라우저 통신


DNS

기본적으로 컴퓨터(서버)에는 IP주소가 있어서 인터넷을 통해 웹 서버에 접속하여 웹 사이트를 볼 수 있다. 근데 우리는 영어로 된 URL을 입력한다. 약간 이상한 점을 느꼈을 것이다.

DNS는 URL을 IP주소로 변환하는 서비스이다. IP주소로 인터넷 접속을 요청하면 사람들은 도메인 이름보다 기억을 하기 어려울 것이다.
www.gilbut.co.kr과 같이 컴퓨터나 네트워크를 식별하기 위해 붙여진 이름을 도메인 이름이라고 한다.

웹 서버와 웹 브라우저 통신


웹 브라우저가 도메인 이름으로 접속했을 때 DNS 서버와의 통신 흐름을 아래의 그림을 보고 이해하자.

웹 서버와 웹 브라우저 통신


웹 브라이트가 DNS 서버로부터 IP를 확인하고 서버에 접속하게 된다. 만약 요청한 첫 번째 DNS 서버가 도메인의 IP 주소를 모르는 경우가 있다면 첫 번째 DNS 서버가 다른 DNS 서버에 요청을 하게 된다.

웹 서버와 웹 브라우저 통신


DNS 서버는 전 세계에 흩어져 있고 모두 계층적으로 연결되어 있다.