공부/TCP IP

[ TCP/IP ] 애플리케이션층

haena02 2023. 2. 11. 11:52
반응형

애플리케이션층

 

애플리케이션 픙은 TCP/IP의 5계층 중에서 가장 위에 위치한다.

컴퓨터끼리 주고받는 것들은 사용자가 이용할 수 있는 통신서비스로 만드는 역할을한다. 

 

애플리케이션층에서는 통신서비스를 실현하기 때문에 송수신측이라는 말보다는 클라이언트와 서버의 개념을 갖는다.

어플리케이션층에서의 프로토콜은 어떻게 하면 효율적일까를 고려하여 만들어졌다.

 

 

에플리케이션 헤더

 

에플리케이션 층에서 추가되는 헤더를 애플리케이션 헤더라고 한다.

여기에는 '요청과 응답'에 관한 정보가 들어있다.

 

아래층으로 가면 데이터가 하나로 묶여버리기 때문에 애플리케이션층끼리만 해석할 수 있다.

프로토콜에 따라 텍스트 기반(영어, 숫자)으로 작성되기도 하고, 바이너리 기반으로 작성되기도 한다.

 

클라이언트가 서버에 서비스를 요청할 때는 데이터부분이 비어있는 상태로 헤더만 보낸다. 

 

 

HTTP 프로토콜

 

HTTP프로토콜은 하나의 요청에 대해 하나의 응답을 반환하는 아주 간단한 프로토콜이다.

실제로 페이지를 구성하고 있는 파일 수만큼 이 작업을 반복한다. 

 

이 프로토콜은 요청 패킷과 응답패킷을 사용하여 텍스트 형식으로 주고받기를 수행한다.

요청패킷의 헤더는 메소드와 요청해더로 이루어져있고 메소드에는 GET, PUT과 같은 요청의 종류를 표시한다.

요청헤더에는 처리가능한 파일의 종류나 문자코드 같은 클라이언트의 정보들이 적혀있다.

응답패킷은 상태 줄과 응답헤더로 이루어져 있다.

상태 줄에는 요청에대한 처리결과가 명시되고 정상적으로 처리했다면 200번대의 숫자가 된다.

응답헤더에는 클라이언트에게 전달할 데이터에 관한 정보가 들어있다. 

 

 

HTTP로 통신을 유지하는 법

 

HTTP는 접속상태를 유지한 상태로 주고받기를 계속 할 수가 없다.

오로지 한번의 요청과 응답으로 통신이 완결된다. 이러한 통신을 하는 프로토콜을 stateless protocol이라고한다. 

따라서 이전 통신에 대한 정보가 없다.

 

하지만 이상태로는 제공할 수 있는 서비스가 제한적이다. 

이를 극복하기 위해 나온 것이 쿠키이다. 

HTTP프로토콜의 주고받기 정보를 클라이언트 측에 쿠키라는 이름으로 저장해 놓고

다음 통신때 서버에게 쿠키를 보여주며 이전에 통신하던 것과 이어 통신할 수 있다. 

쿠키는 HTTP의 정규장치가 아니다. 다른 외부 장치와 함께 사용한다. 

 

CGI는 그런 외부장치 중 하나이다.

이를 사용할 경우 CGI는 서버로부터 요청받아서 응답패킷을 준비한다.

이때 쿠키를 사용하는 경우에 헤더 부분에 쿠키와 클라이언트가 쿠키를 저장하기 위한 명령어를 저장한다. 

 

전자메일 주고받기

 

메일은 메일러를 통해 작성한다.

메일을 작성하게 되면 엔벨롭, 메일해더, 메일본문으로 이루어진 텍스트 데이터로 만들어진다. 

엔벨롭에는 보대는이와 받는이의 주소가 들어가고, SMTP에서 사용한다.

메일헤더에는 클라이언트의 정보가 들어간다.

 

 

SMTP프로토콜

 

SMTP프로토콜은 메일을 보내는 역할을 한다

SMTP프로토콜에서 명령은 '4문자 알파벳'으로. 응답은 '3자리 숫자'로 나타낸다.

클라이언트는 명령을 서버로 보내고, 서버는 명령을 수행한 뒤 결과를 클라이언트에게 보낸다.

 

POP프로토콜

 

POP프로토콜은 메일을 사용자에게 보여주는 역할을한다.

이는 명령은 '4문자의 알파벳'으로, 응답은 '+OK' 또는 '-ERR'로 나타낸다.

서버를 클라이언트의 사용자 인증을 진행하고 메일박스의 내용을 보여준다. '

 

 

문자코드

 

컴퓨터들은 컴퓨터가 알아들을 수 있는 문자코드로 통신한다.

인간이 인해하는 언어를 컴퓨터 언어로 버꾸는 것을 인코딩, 그의 반대를 디코딩이라고 한다

 

대부분의 통신 서비스에서는 아스키코드가 쓰인다.

7비트를 사용하여 로마자, 기호, 숫자 등을 나타낼 수 있다.

한국어 문자코드로는 EUC-KR이라고 한다. 이는 16비트로 이루어져 있다 

 

MIME

 

전자메일에서는 제목은 아스키코드로밖에 쓸 수 없다. 

또, 첨부파일 조차 사용할 수 없다.

하지만 우리는 현재 메일로 한국어도 쓰고 첨부파일도 쓰고있다.

이를 가능하게 해준것이 MIME이다.

 

MIME는 원칙에 따라 파일을 아스키 문자열로 인코딩하고 인코딩방법을 첨부함으로써 수신측이 디코딩할 수 있게 한다.

 

반응형

'공부 > TCP IP' 카테고리의 다른 글

[ TCP/IP ] 네트워크층  (0) 2023.02.14
[ TCP/IP ] 트랜스포트층  (0) 2023.02.13
[ TCP/IP ] 통신 서비스와 프로토콜  (0) 2023.02.09
[ TCP/IP ] TCP/IP 개요  (0) 2023.02.06
[ TCP/IP ] TCP/IP의 기본  (1) 2023.01.30