응용 계층의 역할    

 

 우리는 웹 사이트를 보거나 메일을 보내거나 받을 때 애플리케이션을 사용한다. 웹 브라우저나 메일 프로그램 등과 같은 애플리케이션은 사용자가 하고 싶은 일을 할 수 있도록 도와준다. 애플리케이션은 서비스와 요청하는 측과 서비스를 제공하는 측으로 나뉘는데 서비스를 요청하는 측은 클라이언트(Client), 제공하는 측을 서버(Server)라고 한다. 

 

 웹 브라우저나 메일 프로그램은 클라이언트, 웹 서버 프로그램과 메일 서버 프로그램은 서버가 된다. 이러한 애플리케이션은 응용 계층에서 동작한다.  응용 계층에서는 클라이언트의 요청을 전달하기 위해 서버가 이해할 수 있는 메세지(데이터)로 변환하고 전송 계층으로 전달하는 역할을 한다. 

 

 웹 브라우저나 메일 프로그램은 클라이언트, 웹 서버 프로그램과 메일 서버 프로그램은 서버가 된다. 이러한 애플리케이션은 응용 계층에서 동작한다.  응용 계층에서는 클라이언트의 요청을 전달하기 위해 서버가 이해할 수 있는 메세지(데이터)로 변환하고 전송 계층으로 전달하는 역할을 한다. 

 

 

 

 이처럼 클라이언트와 서버가 통신하려면 응용 계층의 프로토콜을 사용해야 한다. 프로토콜에는 웹 사이트를 볼 때는 HTTP, 파일을 전송할 때는 FTP, 메일을 보낼 때는 SMTP, 메일을 받을 때는 POP3 등이 있다. 또한, 네트워크에서 컴퓨터나 네트워크에 붙여진 이름을 기반으로 IP 주소를 알아내는 것을 이름 해석(Name resolution)이라고 하는데, 이를 위해 DNS를 사용한다. 

 

 결국, 응용 계층각각의 애플리케이션에 대응되는 데이터를 전송하는 역할을 한다. 

 

 

 


 

    웹 서버의 구조    

 

 인터넷에서 핵심적인 역할을 하고 있는 WWW(World Wide Web)은 줄여서 웹(Web)이라고 불린다. WWW는 HTML, URL, HTTP라는 세 가지 기술이 사용된다. 

 

 HTML(Hyper Text MarkUp Language)은 웹 페이지에서 문장 구조나 문자를 꾸미는 태그를 사용하여 작성하는 마크업(MarkUp)언어 이다. 제목이나 목록같은 문장 구조를 지정하거나 이미지, 동영상 파일을 보여 줄 때도 태그를 사용한다. 또한, 하이퍼텍스트(Hypertext)는 하이퍼링크(Hyperlink)를 사용해 아이콘이나 버튼 등에 있는 링크를 클릭하면 다른 사이트로 이동할 수 있다. 이동한 사이트에서는 html 파일이나 이미지 파일이 웹 서버에서 전송된다. 

 

 

 

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

 

 

 클라이언트가 데이터를 요청할 때는 요청 정보(GET 등), 파일 이름, 버전 등을 서버에 전송한다. 그러면 서버는 응답으로 요청을 정상적으로 처이했다는 메세지(OK 등) 정보를 반환하고 payment.html을 클라이언트로 보낸다. 

 

 HTTP 버전에 대해 잠시 살펴보면

 

  • HTTP 1.0 버전: 요청을 보낼 때마다 연결했다가 끊는 작업을 반복
  • HTTP 1.1 버전: Keepalive라는 기능이 추가되어서 연결을 한 번 수립하면 데이터 교환을 마칠 때까지 유지하고, 데이터 교환을 모두 끝내면 연결을 끊는 구조이다. 또한, 요청도 순서대로 처리하는 특징이 있다. 
  • HTTP 2.0 버전: HTTP 1.1 버전은 요청을 순서대로 응답을 반환하는 특징을 보완(이전 요청이 길어지면 다음 요청의 처리가 느려짐)

 

 

 


 

    DNS 서버 구조    

 

 기본적으로 컴퓨터(서버)에는 IP주소가 있어서 인터넷을 통해 웹 서버에 접속하여 웹 사이트를 볼 수 있다. 하지만, 우리는 웹 브라우저 주소 창에 URL(Uniform Resource Locator)를 통해 웹 사이트에 접속한다. 

 

 컴퓨터(서버)에 접속하려면 IP 주소를 입력해야 하는데 사람들은 www.github.com를 입력해서 들어간다. 이처럼 URL을 IP주소로 변환해서 해당 웹 사이트에 들어갈 수 있게 해주는 서비스(시스템)가 DNS 이다. 따라서, IP 주소인 222.235.255.255와 같이 기억하기 어려운 숫자들보다는 URL을 사용하면 더 쉽게 기억할 수 있을 것이다. DNS 서버의 이름해석(Name Resolution) 기능을 사용하면 가능하다. 

 

 www.github.com에서 www는 호스트 이름(서버 이름)을 나타내고 github.com은 컴퓨터나 네트워크를 식별하기 위해 사용하는 도메인 이름이다. 

 

 

 DNS 서버는 전 세계에 흩어져 있고 모두 계층적으로 연결되어 있다. 그래서 첫 번째 DNS 서버가 도멘인의 IP 주소를 모르르 경우 연결되어 있는 다른 DNS 서버에 요청을 해서 IP 주소를 알아낸다. 

 

 


 

    메일 서버 구조    

 

 메일을 송수신 하기 위해서 사용해야 하는 포로토콜은 두 가지가 존재한다. 메일을 보내는 데 사용되는 프로토콜은 SMTP(Simple Mail Transfer Protocol)고, 메일을 받는 데 사용되는 프로토콜은 POP3이다. STMP는 25번, POP3는 110번 포트를 사용한다. 

 

 

  1. 클라이언트1은 포털사이트나 회사의 메일 프로그램을 이용해서 메일 서버1로 메일을 보낸다.(STMP)
  2. STMP를 사용하여 메일 서버 1에서 메일 서버 2로 메일을 전송한다.
  3. 메일 서버 2는 POP3를 사용하여 메일 서버2의 메일 박스에서 메일을 가져와 컴퓨터 2로 전송한다.