본문 바로가기

TCP.IP

제 3장 애플리케이션층

TCP/IP가 보이는 그림책이라는 책을 통해서 정리한 내용



애플리케이션층의 역할


애플리케이션층의 위치

- TCP/IP의 5계층 중에서 가장 위에 위치한 것이 애플리케이션층이다. 이 계층의 역할은 컴퓨터끼리의 통신을 주고받기를 사용자가 이용할 수 있는 '통신 서비스'라는 형태를 만드는 것이다.


※ 트랜스포트층, 네트워크층, 데이터 링크층, 물리층 = 컴퓨터끼리의 통신을 실현하기 위해 작동한다.


애플리케이션 프로토콜은 '서비스를 실현할 때 어떻게 주고받으면 효율적일까'를 고려하여 만들어졌다.


애플리케이션 헤더 - 서비스를 실현하기 위해 가장 중요한 '요청과 응답'에 관한 정보가 들어있다.


애플리케이션 헤더는 텍스트 기반으로 쓰여지거나 바이너리 기반으로 쓰여질 수 있다. 


-텍스트 기반 : 사용자도 정보를 얻을 수 있다.


- 바이너리 기반 : 사용자는 읽을 수 없지만, 컴퓨터가 처리하는 속도는 빨라진다.


※ 클라이언트가 서버에 서비스를 요청할 때 구체적인 데이터를 주고받지 않고 데이터 부분을 비워서 보낸다.


HTTP 프로토콜


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

(실제로 페이지를 구성하고 있는 파일 수만큼 이 요청에 대한 응답 반환을 반복한다.)






HTTP 프로토콜에서는 '요청(Request)'과 '응답(Response)'이라는 두 종류의 패킷을 사용하여 텍스트 형식으로 통신(주고받기)를 수행한다.


클라이언트가 서버에게 보내는 패킷

-메소드 : 요청의 종류, GET 이외에도 PUT등이 있따.

- 요청 헤더 : 서버에 전달하는 클라이언트의 정보(처리 가능한 파일의 종류와 문자 코드, 언어 등)이다. 항목명과 정보는 콜론(;)으로 구분한다.

- 공백 줄 : 헤더와 본문의 경계

- 본문 : 요청 시 필요한 데이터가 들어간다. (메소드가 GET인 경우 비어 있다.)


서버가 클라이언트에게 보내는 패킷

- 상태 줄 : 클라이언트의 요청에 대한 처리결과이다. 정상적으로 처리한 경우에는 200번대의 숫자가 된다.

- 응답 헤더 : 클라이언트에게 전달할 데이터에 관한 정보이다.

- 공백 줄 : 헤더와 본문의 경계를 나타낸다.

- 본문 : 클라이언트에게 전달할 데이터가 들어간다.


통신을 유지하는 장치


HTTP 프로토콜은 원래 '요청된 데이터를 반환하는 것'만을 목적으로 만들어졌다. 그래서 한 번의 요청과 응답으로 통신은 완결된다. 이렇게 한 번으로 끝나는 프로토콜을 무상태 프로토콜이라고 한다. 최근에는 온라인 쇼핑 등 무상태로는 완전히 처리할 수 없는 서비스도 증가하고 있다.


이러한 문제를 극복하고자 나온 것이 바로 '쿠키'이다.


쿠키(Cookie)

- HTTP 프로토콜의 통신에 관한 정보를 클라이언트측에 저장한 것으로 다음 통신 때 그 정보를 서버에게 제시하면 서버는 사용자를 지정하고 이전 회에서 이어진 통신으로 취급할 수 있다. 

- 쿠키는 HTTP 프로토콜의 정규 장치가 아니다.

- 쿠키는 보통은 CGI(Common Gateway Interface)등 클라이언트로부터의 요청에 맞게 웹 페이지를 작성하는 장치와 함께 사용된다.



쿠키의 통신(주고받기)






※ 쿠키에는 유효기간이 있으며, 기간이 지난 쿠키는 클라이언트에 의해 자동적으로 삭제된다. 유효기간 설정은 쿠키 제작자가 하지만 설정하지 않은 경우에는 브라우저가 닫힐 때로 제한된다.





오타가 많이 있을 수도 있고 잘못된 정보가 있을 수 있으므로 날카로운 지적을 해주신다면 달게 받겠습니다.



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

제 5장 네트워크층  (0) 2017.01.02
제 4장 트랜스포트층  (0) 2017.01.02
제 2장 통신 서비스와 프로토콜  (0) 2016.12.27
제 1장 TCP/IP 개요  (0) 2016.12.27
제0장 TCP/IP 맛보기  (0) 2016.12.25