[모두의 네트워크] -07 애플리케이션에 데이터 전송하기
- 응용 계층의 역할
응용 계층은 애플리케이션과 데이터를 주고 받기 위해 사용한다.
여기서 애플리케이션은
- 이메일 : Microsoft Outlook, Gmail, Apple Mail
- 웹브라우저 : Google Chrome, Mozilla Firefox, Microsoft Edge
- 파일 전송 프로그램 : Dropbox, Google Drive, WeTransfer
- 채팅 프로그램 : Facebook Messenger, Slack, 카카오톡
- 비디오 콜 프로그램 : Zoom, Microsoft Teams, Skype
등이 있다.
응용 계층은 애플리케이션이 동작하는 마지막 계층이다.
해당 글 에서 응용 계층은 애플리케이션 계층(7계층), 세션 계층(6계층), 표현 계층(5계층)을 포함하고 있다.
우리가 데이터를 주고 받기 위해서는 사용자 측(클라이언트)과 통신 대상(서버)가 필요하며, 응용 계층이 통신을 위해 이해할 수 있는 메시지(데이터)로 변환하고 전송 계층으로 전달을 한다.
통신을 위해서는 클라이언트 측 애플리케이션이 서버측 애플리케이션과 통신을 해야하는데 이때 응용 계층의 프로토콜을 사용해야 한다.
- 웹 페이지 접속 구조
웹사이트와 웹 서버의 구조
인터넷에서 핵심적인 역할을 하고 있는 WWW는 World Wide Web의 약어이다. W3나 Web등으로 부른다.
WWW에서는 HTML, URL, HTTP 등의 기술등이 사용된다.
HTML(HyperText Markup Language)은 웹페이지에서 문장 구조나 문자를 꾸미는 태그를 사용하여 작성하는 마크업 언어이다.
HTML은 위사진과 같이 키보드에서 F12를 누르면 나오는 Elements탭에서 나오는 코드들이다.
HTML은 문자와 이미지를 표시하거나 하이퍼링크를 사용할 수 있다.
- 웹 서버에서의 전송
위 그림처럼 별도로 요청하기 때문에 간혹 웹 페이지에 접속할 때 글과 사진 등 서로 다르게 로딩이 되는 것이 이와 같은
이유이다.
- HTTP
클라이언트는 웹 사이트를 보기 위해 서버의 80번 포트를 사용하여 HTTP 통신을 한다.
위 사진처럼 클라이언트가 데이터를 요청할 때는 "GET"이라고 하는 요청 정보, 파일 이름, 버전 등을 서버에 전송한다.
이후 서버는 응답으로 요청을 정상적으로 처리했다는 "OK"라는 정보를 반환하고 index.html을 클라이언트에게 전송하게 되는 것이다.
우리가 자주보는 404 같은 경우는 OK가 아닌 NO다. 오류가 발생했다는 의미.
위에서는 HTTP/1.1을 사용했다 HTTP/2도 사용한다. 하지만 예전의 HTTP/1.0은 요청을 보낼때마다 연결을 했다 끊는 작업을 반복하여 웹 페이지의 전송이 느렸다.
이와 같은 문제를 해결하기 위해 1.1버전에는 keepalive라는 기능이 추가되었다.
위 그림과 같이 keepalive는 연결을 한 번 수립하면 데이터 교환을 마칠 때까지 유지하고, 데이터 교환을 모두 끝내면 연결을 끊는 구조다.
keepalive는 요청을 순서대로 처리하는 특성이 있다.
HTTP/1.1 버전의 단점을 보완하여 빠르게 콘텐츠를 표시하는 HTTP/2.0 버전도 나왔다.
책에서는 소개하지 않았지만 현재는 HTTP/3.0을 사용한다.
각자의 특징은 다음과 같다.
- DNS 서버의 구조
기본적으로 서버에는 IP 주소가 있어 인터넷을 통해 웹 서버에 접속을 하여 웹사이트를 볼 수 있다.
예를 들어 google.com을 입력하면 구글 홈페이지로 이동한다.
그러나 구글은 ip주소를 통해서도 접속할 수 있다.
CMD 창을 켜서 ping google.com 을 입력하면 IP주소가 나오며 해당 IP로 접속하면 구글이 나온다.
이러한 접속이 가능한 이유는 DNS(Domain Name System)덕분이다.
DNS 는 위와 같이 작동하며 만약 DNS 서버에서 응답을 주지 못한다면 다음 DNS 서버에서 IP 주소를 요청한다.
- 메일 서버의 구조
메일을 송수신 하기 위해서는 발신을 위한 SMTP(Simple Mail Transfer Protocol)와 수신을 위한POP3(Post Office Protocol version 3)가 있다. SMTP는 25번 포트 POP3는 110번 포트를 사용한다.