Application Layer | 응용 계층
응용 계층의 역할
응용 계층의 역할
서비스를 요청하는 측을 클라이언트, 서비스를 제공하는 측을 서버라고 한다.
애플리케이션은 응용 계층에서 동작한다.
물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층에 의해 상대방에게 데이터를 정확하게 전달할 수 있다.
응용 계층에서는 클라이언트의 요청을 전달하기 위해 서버가 이해할 수 있는 데이터로 변환하고 전송 계층으로 전달하는 역할을 한다.
클라이언트 측 애플리케이션에서 서버 측 애플리케이션과 통신하려면 응용 계층의 프로토콜을 사용해야 한다.
웹사이트를 볼때는 HTTP, 파일을 전송할 때는 FTP, 메일을 보낼 때는 SMTP, 메일을 받을 때는 POP3라는 프로토콜을 사용한다.
네트워크에서 컴퓨터나 네트워크 장비에 붙혀진 이름을 기반으로 IP 주소를 알아내는 것을 이름 해석(name resolution)이라고 하는데 이를 위한 DNS를 사용한다
웹 서버의 구조
WWW란?
WWW는 HTML, URL, HTTP 라는 세 가지 기술이 사용된다.
HTML은 웹페이지에서 문장 구조나 문자를 꾸미는 태그를 사용하여 작성하는 마크업 언어이다.
HTML은 하이퍼텍스트를 작성하는 마크업 언어라고도 한다.
문서와 이미지는 각각 별도로 요청한다.
HTTP란?
클라이언트는 웹 사이트를 보기 위해 서버의 80번 포트를 사용하여 HTTP 통신을 한다.
클라이언트에서 HTTP 요청을 보내고 서버에서 HTTP 응답을 반환한다.
클라이언트가 데이터를 요청할 때는 GET 이라는 요청 정보, 파일 이름, 버전 등을 서버에 전송한다.
그러면 서버는 응답으로 요청을 정상적을 처리했다는 OK라는 정보를 반환하고 index.html을 클라이언트에 보낸다.
지금은 HTTP/2 나 HTTP/1.1 버전을 사용하지만 HTTP/1.0 버전에서는 요청을 보낼 때마다 연결했다 끊는 작업을 반복했다.
그러다가 HTTP/1.1 버전에서는 keepalive라는 기능이 추가되었다.
keepalive는 연결을 한번 수립하면 데이터 교환을 마칠 때까지 유지하고 데이터 교환을 모두 끝내면 연결을 끊는 구조이다.
keepalive는 요청도 순서대로 처리하는 특징이 있어서 순서대로 요청에 대해 응답을 반환한다.
HTTP/1.1 버전은 요청을 보낸 순서대로 응답을 반환하는데 요청을 처리하는데 시간이 길어지면 다음 요청에 대한 처리가 늦어진다.
그러면 콘텐츠 표시가 늦어진다.
HTTP/2 버전은 요청을 보낸 순서대로 응답을 반환하지 않아도 된다.
DNS 서버의 구조
도메인 이름이란?
기본적으로 서버에는 IP주소가 있어서 인터넷을 통해 웹 서버에 접속하여 웹사이트를 볼 수 있다.
DNS는 URL을 IP주소로 변환하는 서비스이다.
IP 주소가 아닌 http://www.naver.com
과 같은 주소를 사용하여 접속하도록 돕는 것을 DNS의 이름 해석이라고 한다.
http://www.naver.com
에 접속하면 DNS 서버가 이 웹 사이트 서버의 IP주소를 알려준다.
www.naver.com
와 같이 컴퓨터나 네트워크를 식별하기 위해 붙여진 이름을 도메인 이름이라고 하고, 도메인 이름 앞에 있는 www는 호스트 이름이라고 한다.
컴퓨터와 DNS 서버 사이에는 다음과 같은 통신 교환이 일어난다.
http://www.naver.com
의 IP 주소 요청해당 URL의 IP주소는 222.235.64.222 응답
IP 주소로 접속한다.
처음에는 웹 사이트의 IP주소를 모르기 떄문에 먼저 DNS 서버에 요청하야 IP주소를 확인하고 웹 서버에 접속한다.
그러나 요청한 첫 번째 DNS 서버가 도메인의 IP 주소를 모르는 경우 다른 DNS 서버에 요청을 한다.
메일 서버의 구조
메일의 송수신 구조
메일을 송수신하려면 클라이언트 측의 메일 프로그램과 서버 측의 메일 서버 프로그램 간에 통신을 해야한다.
그떄 사용되는 프로토콜이 두 가지 있다.
메일을 보내는데 사용되는 프로토콜을 SMTP이고 메일을 받는데 사용하는 프로토콜을 POP3이다.
SMTP는 포트 번호 25번이고 POP3는 110번을 사용한다.
SMTP는 메일 서버 간의 메일 전송에도 이용된다.
SMTP를 사용하여 컴퓨터 1에서 메일 서버 1로 보낸다
SMTP를 사용하여 메일 서버 1에서 메일 서버 2로 보낸다
POP3를 사용하여 메일 서버 2에서 컴퓨터 2로 메일 데이터를 보낸다.
메일을 보낼 때는 메일 서비스를 제공하는 포털사이트나 회사의 메일 서버에 메일을 보내는 것이다.
컴퓨터 1에서 사용하는 메일 프로그램에 메일 서비스를 제공하는 메일 서버의 호스트 이름을 설정하면 된다.
SMTP에 의한 메일 송신과 메일 전송
컴퓨터 1의 메일 프로그램은 SMTP를 사용하여 메일 서버 1로 메일을 보낸다.
세션 시작을 통지한다.
송신자의 메일 주소를 통지한다.
목적지메일 주소를 통지한다.
메일 본문 전송을 통지한다.
메일 본몬을 송신한다.
세션 종료를 통지한다.
POP3에 의한 메일 수신
SMTP로 메일 서버 1이 메일 서버 2로 메일을 전송할 수 있다.
메일 서버에는 메일 박스라는 메일을 보관해주는 기능이 있다.
메일 서버 2에 컴퓨터 1의 메일이 도착하면 컴퓨터 2는 메일 서버 2의 메일 박스에 있는 메일을 받아가야 하지만 메일을 수신할 때는 사용자 이름과 비밀번호를 이용한 사용자 인증이 필요하다.
세션 시작을 통지한다.
컴퓨터 2에서 받는 사람의 사용자 이름을 통지하고 메일 서버 2에서 OK라는 확인 응답을 반환한다.
컴퓨터 2에서 수신자의 비밀번호를 통지하고 메일 서버 2에서 비밀번호 확인 응답을 반환한다.
컴퓨터 2에서 자신의 메일이 있는지 확인하고 메일 서버 2는 있음이라는 확인 응답을 반환한다.
컴퓨터 2에서 메일 박스에 보관된 이메일 전송받는다.
세션 종료한다.