네트워크의 비주얼을 담당하는 애플리케이션 계층

애플리케이션 계층의 프로토콜들은 웹이나 이메일, 파일 공유와 같이 사용자가 실제로 사용하면서 체감할 수 있는 서비스를 제공한다.

-> 사용자에게 직접 노출되는 부분이다.

웹 서비스화라는 트렌드

오래 사용된 애플리케이션으로는 웹, 이메일, VoIP(인터넷 전화)와 같은 서비스들이 있는데

이런 서비스들은 자신만의 독자적인 프로토콜을 자체적으로 정의하고 있다.

 

그러나 최근에는 신규 서비스를 만들 때 별도의 프로토콜을 새로 만들지 않고 웹페이지를 다룰 때 사용하는

HTTP 프로토콜을 활용하고 있다. 이런 유형의 서비스들을 웹 서비스라고 한다.

 

기존의 프로토콜을 사용하기 때문에 보다 짧은 시간과 적은 노력으로 서비스를 개발하고 개선할 수 있어서 편리하기 때문에 웹 서비스 형태로 만드는 것이 일반적이다.

 

 

01 - 애플리케이션 계층의 역할

- 애플리케이션 계층은 사용자가 직접 사용하며 체감하는 계층이다.

애플리케이션 프로그램 간의 통신을 정의하고 있음.

 

- 사용자가 직접 사용하는 프로토콜

인터넷이나 LAN에서 쉽게 접할 수 있는 서비스들로,

웹 페이지 데이터를 주고 받는 HTTP, 메일을 송수신하고 보관하는 SMTP, 서버를 통해 파일을 주고받는 FTP 등이 있다.

 

- 사용자가 간접적으로 사용하는 프로토콜

사용자가 체감하지는 못하지만 보이지 않는 곳에서 중요한 역할을 하는 프로토콜.

 

도메인명과 IP어드레서의 정보를 서로 변환할 때 사용하는 DNS, 통신 데이터를 암호화하여 주요 정보를 안전하게 주고받을 때 사용하는 SSL/TLS 등이 있다.

 

02 - 웹 페이지를 전송하는 HTTP

웹 브라우저가 웹 서버로 특정 웹페이지를 요청하는 경우 일어나는 과정)

1. 보고 싶은 웹 페이지의 URL을 요청한다.

2. 서버에서 웹 페이지의 HTML 파일을 응답한다.

3. 추가로 CSS나 JPEG등 파일이 필요하면 해당 파일들을 받기 위해 새로운 요청을 보낸다.

4. 응답으로 받은 파일들을 조합해서 웹 페이지를 표시한다.

 

즉, URL로 페이지를 요청하면 파일을 응답으로 되돌려주는 방식이다.

 

클라이언트 PC의 웹 브라우저와 웹 서버는 HTTP(HyperText Transfer Protocol)라는 애플리케이션 계층의 프로토콜을 사용한다. 통신 과정에서 주고받은 정보들은 HTTP 메세지라고 부르고, 크게 요청(request)응답(response)의 두가지 형태로 구분된다.

 

HTTP는 통신 시 정보를 한 번씩 주고받은 후 바로 끊는 형태로 처리된다.

이렇게 상태 정보를 저장하지 않는 통신 형태를 stateless라고 한다.

HTTP는 대표적인 무상태 프로토콜이다.

 

  • HTTP 요청과 URL
    특정 웹 페이지를 받아보기 위해서는 HTTP 요청을 보내야 하는데, 이 때 URL(Uniform REsource Locator)이라는 문자열을 사용한다.
    GET 요청인 경우 별도의 요청 내용인 메세지 바디가 없다.
  • HTTP 응답과 상태코드
    HTTP 응답 데이터의 첫 번째 행에는 상태 코드가 들어간다.
    응답이 정상이라면 메세지 바디에 요청한 웹 페이지의 내용이 들어간다.

    상태 코드의 의미)
    100번대는 정보를, 200번대는 성공을, 300번대는 경로 전환을, 400번대는 에러를 의미한다.

03 - 웹 서비스와 웹 어플리케이션

요청에 대한 응답결과를 동적으로 만들어 주는 것이 웹 서비스웹 애플리케이션이다.

웹 서비스도 HTTP 메세지로 정보를 교환한다.

 

'웹 페이지'와 '웹 서비스'의 차이는 미리 만들어 둔 정적인 HTML 파일로 응답을 하느냐, 아니면 서버 프로그램이 요청 내용에 따라 동적으로 HTML 데이터를 만들어 응답을 하느냐의 차이이다.

 

최근의 웹 애플리케이션 환경은 정적 처리를 하는 웹 서버와 동적 처리를 하는 웹 애플리케이션 서버를 둔다.

간단한 애플리케이션인 경우 웹 애플리케이션 서버만으로 요청을 처리하기도 한다.

 

HTML 요청을 보낼 때 주로 GET 방식POST 방식의 요청을 많이 사용한다.

GET 방식은 입력 폼의 내용이 요청에 포함된다.

POST 방식은 입력 폼의 내용이 메세지 바디에 포함된다.

GET은 정보를 요청할 때 쓰고, POST 방식은 정보를 저장하거나 변경할 때 사용하며 상대적으로 더 많은 데이터를 전송할 수 있다.

 

 

- 웹 서비스의 사용성을 높여주는 AJAX(Asynchronous JavaScript and XML)

일반적인 요청과 마찬가지로 HTTP 메세지로 통신하지만, 요청을 보내는 주체가 브라우저가 아닌 자바스크립트이다.

즉, 자바스크립트에서 요청을 보내고 응답을 받아서 웹 페이지의 특정 부분에만 응답받은 내용이 갱신되도록 처리한다.

사용자는 전체 페이지를 다시 조회하지 않아도 되고, 서버의 응답을 바로 받아 상호작용 할 수 있다.

 

04 - 세션을 유지하기 위한 쿠키

여러 건의 요청 처리를 동일한 사용자 접속 세션(session)으로 인식할 수 있도록 쿠키(cookie)를 사용한다.

 

쿠키 생성 및 판단 과정)

1. 처음 접속을 하는 경우 서버에서 요청에 대한 응답에 쿠키를 함께 보낸다.

2. 쿠키가 클라이언트 PC에 저장된다.

3. 다음 요청부터 메세지를 보낼 때 쿠키를 함께 보낸다.

4. 쿠키를 보고 같은 사용자의 요청인지 판단한다.

 

기본적으로 각종 정보는 서버 쪽에 저장하는 것이 원칙이고, 동일한 사용자인지 확인하기 위한 세션 ID등의 식별정보만 클라이언트에 쿠키로 저장하도록 제한해야 한다.

 

 

05 - 이메일

발신할 때 사용하는 SMTP(Simple Mail Transfer Protocol)와 수신할 때 사용하는 POP(Post Office Protocol)가 있다.

SMTP를 사용하여 메일서버로 메일을 보내고, 수신자는 POP를 사용해서 메일서버로부터 자신의 메일을 받아 온다.

 

- SMTP의 동작 방식

접속 요청 -> 송신자 정보 전송 -> 수신자 정보 전송 -> 메일 데이터 전송 -> 종료

상태를 유지하는 프로토콜이기 때문에 종료 명령이 전달되기 전까지는 통신이 계속 유지된다.

 

메일 서버간의 메일 중계에도 SMTP가 사용된다.

 

- 이메일을 수신하는 POP

메일 수신, 수신한 메일 건수나 용량 확인, 메일 삭제와 같은 처리에도 POP 프로토콜을 사용한다.

POP은 사용자 인증을 먼저 한 후에 메일과 관련된 통신을 시작한다.

 

- SMTP에 사용자 인증 기능을 추가한 것이 SMTP Auth 프로토콜이다.

 

- IMAP 프로토콜

POP 프로토콜은 기본적으로 클라이언트가 메일을 수신하면 메일 서버에 보관된 메일을 삭제하게 되어 있다.

이에 반해 IMAP 프로토콜은 메일 서버에서 수신한 메일을 지우지 않고 보관하게 되어 있다. 이런 방식은 메일 저장공간이 충분하지 않은 스마트폰 등의 휴대기기에서 많이 활용된다. 

 

06 - PC끼리 파일 공유하기

파일 공유는 P2P(Peer to Peer) 방식을 사용한다.

 

새로 네트워크에 연결되는 컴퓨터는 다른 모든 컴퓨터에게 자신의 존재를 알린다.

이 때 통보를 받은 다른 컴퓨터는 자신의 정보를 응답으로 알려주게 되고, 결과적으로 네트워크 전체에서 공유 가능한 컴퓨터들을 서로 식별할 수 있게 된다.

 

07 - 파일을 전송하는 FTP

FTP는 파일 전송 프로토콜이다. 주로 인터넷에 연결된 서버에 파일을 전송할 때 사용된다.

명령어를 사용해서 파일을 업로드하거나 다운로드하고, 디렉토리를 만들거나 파일을 삭제하기도 한다.

 

FTP에는 크게 파일을 주고받기 위한 데이터 커넥션과 명령어를 보내기 위한 컨트롤 커넥션의 두가지 접속 형태를 사용한다.

 

08 - 원격지의 컴퓨터 제어하기

Telnet이나 SSH(Secure SHell)는 원격지의 컴퓨터를 명령어로 제어하기 위한 프로토콜이다.

 

09 - Voice over IP와 영상 스트리밍

실시간으로 음성과 동영상을 보내기 위한 기술.

음성 송신측에서는 녹음하면서 바로 전송, 수신측은 데이터가 들어오는 대로 바로 재생.

동영상이나 음성을 통신할 때는 속도가 빠른 UDP가 사용된다. 전송중 일부 데이터가 누락되더라도 신경 쓰지 않음.

 

처음에는 디렉터리 서버를 통해 접속할 상대를 찾고 그 후에 직접 피어투 피어 방식으로 통신하게 된다.

 

동영상 공유에는 보편적인 HTTP 프로토콜을 사용함.

 

 

'TCP, IP' 카테고리의 다른 글

Chapter 4. 라우팅과 인터넷 계층  (0) 2022.10.17
Chapter 3. 트랜스포트 계층  (0) 2022.10.17
Chapter 1. 컴퓨터 네트워크  (1) 2022.10.07

+ Recent posts