호우동의 개발일지

Today :

article thumbnail
  • 여기서의 응용계층은 5 계층의 세션 계층과 6 계층의 표현 계층을 포함하는 것을 생각

 

 

응용 계층의 역할

  • 애플리케이션(응용 계층에서 동작)은 클라이언트와 서버로 나눌 수 있음
    • 클라이언트 : 서비스를 요청하는 측(사용자 측)
    • 서버 : 서비스를 제공하는 측

  • 사용자 측의 요청을 전달하기 위해 통신 대상이 이해할 수 있는 메시지로 변환하고
    전송 계층에 전달하는 역할


  • 클라이언트 애플리케이션과 서버 애플리케이션이 통신하기 위해선 응용 계층의 프로토콜이 필요
    • 응용 계층에서 사용하는 대표적인 프로토콜

      • HTTP - 웹사이트 접속
      • FTP - 파일 전송
      • SMTP - 메일 송신
      • POP3 - 메일 수신
      • DNS - 이름 해석
        • 이름 해석 : 네트워크에서 컴퓨터나 네트워크 장비 이름으로 IP 주소를 알아내는 것

  • 응용 계층은 각각의 애플리케이션에 대응되는 데이터를 전송하는 역할
    • 응용 계층에서 보내려는 데이터는 전송 → 네트워크 → 데이터 링크 → 물리 계층 순으로 처리
    • 각 계층의 프로토콜과 기술

각 계층의 프로토콜과 기술
각 계층의 프로토콜과 관련된 기술

 

 

 

웹 서버의 구조(웹사이트 접속)

www란?

  • www는 HTML, URL, HTTP 3가지 기술로 사용
    • HTML : 웹 페이지에서 문장 구조나 문자를 꾸미는 태그를 사용하여 작성하는 마크업 언어
      • 하이퍼텍스트(hypertext)를 작성하는 마크업 언어라고도 불림
        • 하이퍼 텍스트 : 문자와 이미지를 표시하거나 하이퍼링크를 사용할 수 있음
          • 링크를 통해 이동한 사이트에서는 html 파일이나 이미지 파일이 웹 서버에서 전송
            • 문서와 이미지를 각각 별도로 요청

 

 

 

HTTP란?

  • 클라이언트는 웹 사이트를 보기 위해 서버의 80번 포트를 사용하여 HTTP 통신을 함
  • 클라이언트에서 HTTP 요청(request)을 보내고 서버에서 HTTP 응답(response)을 반환
    HTTP 흐름
    • 데이터를 요청할 때 “GET”이라고 하는 요청 정보, 파일 이름, 버전 등을 서버에 전송
    • 서버는 응답으로 요청을 처리했다는 “OK”라는 정보를 반환하고 데이터를 보냄

 

 

예전 버전 - HTTP/1.0

  • 해당 버전에는 요청을 보낼 때마다 연결했다 끊는 작업을 반복
    → 웹 페이지가 느려 보임

HTTP 1
HTTP 1.0

 

 

 

HTTP/1.1 버전

  • HTTP/1.0의 단점을 보안하고자 HTTP/1.1 버전에서는 keepalive 기능 추가
    • keepalive
      • 연결을 한번 수립하면 데이터 교환을 마칠 때까지 유지
      • 데이터 교환을 모두 끝내면 연결을 끊는 구조
      • 요청을 순서대로 처리하는 특징이 있음

HTTP 1.1
HTTP 1.1

 

  • 빠르게 콘텐츠를 표시할 수 있음


  • 단점
    • 순서대로 응답을 반환한다. → 이전 요청을 처리하는데 시간이 길어지면 지연된다.

 

 

 

HTTP/2 버전

  • HTTP/1.1 버전의 단점을 보완한 버전 → 요청을 보낸 순서대로 응답을 반환하지 않아도 됨

HTTP 2
HTTP/2 버전

  • 1번 요청이 먼저 들어왔음에도 2번 응답이 먼저 도착했다.
    → 요청을 보낸 순서대로 응답하지 않는다.
    → 이전 처리에 대한 지연이 발생하지 않는다.

 

 

 

 

DNS 서버의 구조(이름 해석)

도메인 이름이란?

  • 기본적으로 서버에는 IP 주소가 있어야 접속할 수 있다.


  • 도메인 이름 : 컴퓨터나 네트워크를 식별하기 위해 붙여진 이름
  • DNS는 URL을 IP로 변환하는 서비스(시스템)
    • www.google.co.kr에 접속하면 DNS 서버가 해당 웹 사이트의 IP 주소를 알려줌
      이름 해석

 

 

 

컴퓨터가 도메인 이름으로 웹 브라우저에 접속하는 과정

도메인으로 웹브라우저에 접속하는 과정
도메인의 웹브라우저에 접속하는 과정

  1. 컴퓨터에서 www.google.co.kr을 입력하여 접속한다.
  2. DNS 서버에 www.google.co.kr의 주소를 요청한다.
  3. 해당 URL의 IP 주소를 컴퓨터에 반환한다.
  4. 전달받은 IP 주소로 웹 서버에 접속한다.
  • DNS 서버가 요청받은 도메인의 IP 주소를 모를 수도 있다.
    • 이럴 경우, 해당 DNS 서버가 다른 DNS 서버에 요청을 하여 IP주소를 받아,
      이를 다시 컴퓨터에게 넘김

 

 

 

 

메일 서버의 구조(SMTP와 POP3)

메일 서버의 통신 흐름
메일 서버의 통신 흐름

 

 

메일의 송수신 구조

  • 메일을 송수신하기 위해선 클라이언트 측과 서버 측의 메일 서버 프로그램 간에 통신이 필요
    → 그때 2개의 프로토콜이 사용(SMTP, POP)

  • SMTP : 메일을 보내는 데 사용되는 프로토콜
    • 포트 번호로 25번 사용
    • 메일 서버 간의 메일 전송에도 이용

  • POP3 : 메일을 받는 데 사용되는 프로토콜
    • 포트 번호로 110번 사용

 

 

 

메일을 주고받는 흐름

  1. SMTP를 사용하여 A에서 메일 서버 1로 메일을 보낸다.
  2. SMTP를 사용하여 메일 서버 1에서 메일 서버 2로 메일을 보낸다.
  3. POP3를 사용하여 메일 서버 2에서 컴퓨터 2로 메일 데이터를 보낸다.

 

 

 

 

 

SMTP에 의한 메일 송신과 메일 전송

  1. 우선 컴퓨터의 메일 프로그램은 SMTP를 이용하여 메일 서버로 메일을 보냄
    • 동작 흐름
      1. 세션 시작을 통지
      2. 송신자의 메일 주소를 통지
      3. 목적지 메일 주소를 통지
      4. 메일 본문 전송을 통지
      5. 메일 본문을 송신
      6. 세션 종료를 통지

  2. SMTP을 사용하여 메일 서버에서 다른 메일 서버로 메일을 전송

 

 

 

 

 

POP3에 의한 메일 수신

  • 메일 서버는 POP3를 사용하여 메일 서버의 메일 박스에서 메일을 가져와서 수신 컴퓨터에 전송
    • 메일 박스 : 메일 서버에 존재하는 메일을 보관하는 기능을 가진 공간


 

사용자 인증이 필요한 경우

  1. 세션을 시작한다.


  2. 수신 컴퓨터에서 받는 사람의 사용자 이름을 통지하고 메일 서버에 ‘OK’라는
    확인 응답을 반환한다.


  3. 수신 컴퓨터에는 수신자의 비밀번호를 통지하고 메일 서버에 ‘비밀번호 확인’이라는
    확인 응답을 반환한다.


  4. 수신 컴퓨터에서 자신의 메일이 있는지 확인하고 메일 서버는 ‘있음’이라는 확인 응답을 반환


  5. 수신 컴퓨터에서 메일 박스에 보관된 이메일을 전송받는다


  6. 세션을 종료한다.