04 애플리케이션 계층

  • 애플리케이션 계층의 역할

    • TCP/IP 5계층 중 가장 위에 위치한 것

    • 컴퓨터끼리의 주고받기를 사용자가 이용할 수 있는 '통신 서비스' 형태로 만드는 역할

    • 통신 서비스 실현

    • application protoccol: 서버와 클라이언트가 주고 받기로 정한 프로토콜

  • 애플리케이션 헤더

    • 어플리케이션 계층에서 추가된 헤더

    • 서비스를 실현하기 위한 '요청과 응답'에 대한 정보를 담고 있음.

    • 아래 계층으로 가면 헤더와 데이터가 하나로 묶이기 때문에 사용자가 해석할 수 있는 형태로 되어있는 계층은 application 계층밖에 없음.

    • 애플리케이션 헤더에 무엇을 어떻게 쓸지는 프로토콜마다 다름.

      • 텍스트 기반, 바이너리 기반 ..

    • 클라이언트가 서버에 서비스를 요청할 때, 구체적인 데이터를 주고받지 않고 연락만 취할때는 데이터는 빈채로 보낸다.

  • HTTP 프로토콜

    • WWW 서비스 지탱하는 프로토콜

    • 하나의 요청에 대해 하나의 응답을 반환하는 간단한 프로토콜

    • '요청', '응답' 두종류의 패킷을 사용하여 텍스트 형식으로 주고받음.

      • 요청패킷

        • 메소드(GET, POST, PUT, DELETE, ...)

        • 요청헤더(Accept, 문자코드, 처리가능한파일종류, 언어 등)

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

        • 본문: 요청에 필요한 데이터가 들어간다. (메소드가 GET이면 비어있음.)

      • 응답패킷

        • 상태줄: 클라이언트 요청에 대한 결과 (정상처리되면 200번대 숫자)

        • 응답헤더: 클라이언트에게 전달할 데이터와 관련된 정보

        • 공백줄: 헤더와 본문 경계

        • 본문: 클라이언트에게 전달할 데이터 들어있음

  • 통신을 유지하는 구조

    • 상태 비보존형 프로토콜: 한번 수행으로 끝

      • HTTP 프로토콜은 1회 완결 [통신연결-요청-응답-통신해제]

      • 요청 데이터를 반환하는 것만 주 목적으로 만들어짐.

      • 과거 수행한 통신과는 관련 없음.

    • 쿠키

      • 클라이언트 측에 HTTP 프로토콜의 주고받기 정보를 저장해두면,

        다음 통신때, 해당 정보를 서버에 제시하여 사용자를 지정해서 이전 회에 이어진 통신으로 취급.

      • HTTP의 정규 장치는 아님

      • CGI(Common Gateway Interface)등 클라이언트로부터 요청에 맞게 웹 페이지 작성하는 장치와 사용

        • 처음 사이트 방문했을 때

          • [클라이언트] =>요청 =>[서버] => [CGI프로그램] =>(응답패킷의 응답헤더에 쿠키 저장의뢰 명령을 넣어서 보냄) =>[서버]=>응답 => [클라이언트: 쿠키저장]

        • 다시 동일한 웹사이트 요청시

          • 요청패킷의 요청 헤더에 이전 서버에 부여받은 쿠키정보를 넣음

          • CGI프로그램에서 쿠키를 보고 사용자 지정하여 처리한 웹페이지 작성

          • 이전 통신을 근거로 웹페이지 표시

          • 쿠키에는 유효기간이 있음.(기간이 지난 쿠키는 자동 삭제됨, 유효기간 설정은 쿠키제작사가 하지만, 설정이 없는 경우 브라우저가 닫힐때까지로 제한)

  • SSL/TLS

    • 인터넷 상에 주고받는 데이터 안정성을 높임.

    • SSL(secure sockets layer)

      • 인터넷상에서 데이터 통신을 암호화하는 프로토콜

    • TLS(Transport Layer Security)

      • SSL을 바탕으로 표준화한 것

    • 확인방법: 주소창에 열쇠마크와 url의 https로 시작 시, SSL/TLS로 보호받는 것 확인 가능

  • 전자메일 주고받기

    • 메일러를 사용해 작성한 메일은 텍스트 데이터로 만들어져 보내짐

      • 엔벨롭: 보내는 이와 받는이의 주소(SMTP에서 사용)

      • 메일헤더: 서버로 전달되는 클라이언트의 정보 (메일, 제목, 날짜 등)

      • 공백(빈줄): 헤더와 메세지 경계

      • 메일본문

    • 명령(command)과 응답 (response)

      • [헤더+데이터] 형태를 취하지 않고 단독으로 트랜스포트계층에 전달.

      • 주로 사용되는 프로토콜종류 : SMTP, POP, APOP, IMAP4

        • APOP: POP 사용자 인증시 암호화

        • IMAP4: SMTP+POP의 기능합친 프로토콜, 어디서든 읽고, 메일크기가 커도 클라이언트에 부담가지 않음.

  • 문자코드

    • '문자'그 자체를 통신서비스에서 주고받는 것은 아님

    • 문자 그 자체가 아닌, 문자 코드를 주고받는다.

    • 일반적으로 인코딩(컴퓨터가 이해하는 언어로 변환), 디코딩(사람이 이해하는 언어로 바꾸는 것)을 거친다.

    • 대부분의 통신서비스에서 문자코드로 US-ASCII문자표를 사용.

    • 한국어 문자코드, 한글 완성형코드(EUC-KR)

  • MIME

    • Multipurpos Internet Mail Extension

    • 전자메일의 제약사항을 보완하는 장치

      • 제약사항1: 제목에 한글 사용이 불가능 했음

      • 제약사항2: 텍스트(문자)만 보낼 수 있었음

    • MIME중에서도 BASE64 방식이 많이 사용됨.

      -

Last updated