CertNote/ 출퇴근 학습 노트
로드맵
KOEN
리눅스마스터 2급 · 2급리눅스마스터 2급
  • Week 1
    • 1.운영체제와 커널: 리눅스가 하는 일
    • 2.리눅스의 탄생: 유닉스에서 리누스까지
    • 3.자유 소프트웨어와 오픈소스: 라이선스가 정하는 것
    • 4.배포판: 커널과 도구를 하나로 묶어 파는 단위
    • 5.Week 1 종합 복습: 리눅스라는 이름의 정체
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
    • 1.웹과 메일
    • 2.DNS: 이름과 주소
    • 3.원격 접속과 파일 전송
    • 4.파일 공유와 옛 인터넷 서비스
    • 5.Week 10 종합 복습: 인터넷 서비스 한 장
  • Week 11
리눅스마스터 1급 · 1급리눅스마스터 1급
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← 리눅스마스터 2급/Week 10/Day 1

기준: 리눅스마스터 2급 출제 기준·오류 제보

리눅스마스터 2급· AssociateWeek 10 · Day 1읽기 약 11분
핵심 정리
  • 웹은 HTTP(80) 로 동작하고 암호화된 것이 HTTPS(443) 다.
  • 리눅스 웹 서버는 Apache와 Nginx가 대표다.
  • 메일 프로토콜은 셋이다 — 보낼 때 SMTP(25), 받을 때 POP3(110) 또는 IMAP(143).
  • 메일 서버끼리 주고받는 것도 SMTP 다. 이 점을 묻는 문제가 있다.
  • POP3는 내려받아 지우고, IMAP은 서버에 남긴다. 여러 기기를 쓰면 IMAP이다.

Day 1 - 웹과 메일

웹

항목내용
WWWWorld Wide Web. 1989년 팀 버너스리(CERN)가 고안
HTTPHyperText Transfer Protocol. 80번 포트
HTTPSHTTP + 암호화(SSL/TLS). 443번 포트
HTML문서를 기술하는 언어
URL자원의 위치를 나타내는 주소

URL 읽기

   https :// www.example.com : 443 /docs/index.html
     │            │             │        │
     │            │             │        └── 경로
     │            │             └─────────── 포트 (생략하면 기본값)
     │            └───────────────────────── 호스트 이름
     └────────────────────────────────────── 프로토콜(스킴)
  • 포트를 생략하면 스킴의 기본값이 쓰인다. http://는 80, https://는 443이다. 그래서 https://www.example.com:443/ 과 https://www.example.com/ 은 같은 주소다.
  • 기본값이 아닌 포트를 쓰는 서버는 반드시 적어야 한다 — http://192.168.0.10:8080/.
  • 스킴 자리에는 http만 오는 것이 아니다. ftp://, mailto: 처럼 어떤 방법으로 접근할지를 적는 자리다.

HTTP가 주고받는 것

HTTP는 브라우저가 요청하고 서버가 응답하는 단순한 구조다. 요청 한 번에 응답 한 번이다.

   [요청]   GET /docs/index.html HTTP/1.1
            Host: www.example.com
 
   [응답]   HTTP/1.1 200 OK
            Content-Type: text/html
 
            <html> … </html>
요청 방식(메서드)하는 일
GET자원을 가져온다. 주소창에 URL을 치는 것이 이것
POST데이터를 보낸다. 로그인·글쓰기 양식 제출
HEAD본문 없이 머리말만 받는다
PUT / DELETE자원을 올린다 / 지운다
상태 코드뜻대표
2xx성공200 OK
3xx다른 주소로 이동301, 302
4xx요청한 쪽(클라이언트) 의 잘못403 접근 금지, 404 찾을 수 없음
5xx서버 쪽의 오류500 내부 서버 오류, 503 서비스 이용 불가
  • 첫 자리만 보면 누구 탓인지 안다. 4로 시작하면 요청이 잘못된 것이고, 5로 시작하면 서버가 고장 난 것이다. 404는 "서버는 멀쩡한데 그런 문서가 없다"는 뜻이다.
  • HTTP는 상태를 기억하지 않는다(무상태, stateless). 서버는 방금 요청한 사람과 지금 요청한 사람이 같은지 모른다. 로그인 상태를 이어 가기 위해 덧붙인 장치가 쿠키다.
  • HTTPS는 이 대화를 통째로 암호화한 것이다. 주고받는 내용의 형식은 HTTP와 같고, 그 아래에 SSL/TLS라는 암호화 층이 하나 끼어 있다.

웹 서버와 브라우저

구분이름
웹 서버Apache(가장 오래된 표준), Nginx(가볍고 빠름), lighttpd
그래픽 브라우저Firefox, Chrome, Konqueror(KDE)
텍스트 브라우저Lynx, w3m, links
  • Lynx는 텍스트 기반 브라우저다. 그래픽 환경 없이 명령줄에서 웹을 볼 때 쓴다. 이름이 보기에 나온다.
  • 명령줄에서 파일을 내려받을 때는 wget 이나 curl 을 쓴다.
wget http://www.example.com/file.tar.gz      # 현재 디렉터리에 file.tar.gz 로 저장
wget -c http://www.example.com/file.tar.gz   # 끊긴 내려받기를 이어서
curl http://www.example.com/                 # 받은 내용을 화면(표준 출력)에 뿌린다
curl -O http://www.example.com/file.tar.gz   # 원래 파일 이름으로 저장
  • wget은 기본이 "파일로 저장", curl은 기본이 "화면에 출력" 이다. curl로 저장하려면 -O(대문자) 또는 -o 파일이름을 준다.
  • Apache 웹 서버의 데몬 이름은 httpd 다(데비안 계열에서는 apache2). 제품 이름과 프로세스 이름이 달라 ps로 찾을 때 헷갈린다.

"웹 브라우저가 아닌 것"을 고르는 문항은 프로그램 이름의 분류를 묻는다. 지난주 X 윈도에서 본 응용 프로그램과 섞여 나온다.

이름무엇
Firefox · Chrome · Chromium · Opera그래픽 웹 브라우저
KonquerorKDE의 웹 브라우저 겸 파일 관리자
EpiphanyGNOME의 웹 브라우저
Lynx · w3m · links텍스트 웹 브라우저
Thunderbird · Evolution웹 브라우저가 아니라 메일 프로그램
Apache · Nginx브라우저가 아니라 웹 서버
  • Firefox와 Thunderbird는 둘 다 모질라(Mozilla) 에서 나왔지만 하나는 브라우저, 하나는 메일 프로그램이다.
  • 서버와 클라이언트를 바꿔 놓은 보기도 흔하다. Apache는 문서를 내주는 쪽, Firefox는 받아 보여 주는 쪽이다.

메일의 세 프로토콜

   [보내는 사람]                                   [받는 사람]
 
     메일 프로그램                                   메일 프로그램
          │                                              ▲
          │ SMTP                                  POP3 / IMAP
          ▼                                              │
     보내는 메일 서버 ──── SMTP ────► 받는 메일 서버 ──────┘
                        (서버 간 전달도 SMTP)
프로토콜포트하는 일
SMTP25메일을 보낸다. 서버 간 전달도 담당
POP3110메일을 내려받는다
IMAP143메일을 서버에 두고 본다

"메일 서버 사이에서 메일을 교환하는 프로토콜은?" → SMTP 다. 받는 것은 POP3·IMAP이지만, 서버끼리 주고받는 것은 SMTP 라는 점이 핵심이다.

  • 줄임말도 나온다 — SMTP는 Simple Mail Transfer Protocol, POP은 Post Office Protocol, IMAP은 Internet Message Access Protocol이다.

메일 한 통이 가는 길

alice@example.com이 bob@example.org에게 메일을 보내는 과정이다.

   1  alice 의 메일 프로그램이 example.com 메일 서버에 넘긴다          SMTP
   2  example.com 서버가 "example.org 의 메일 서버가 어디냐"를 DNS 에 묻는다
   3  알아낸 example.org 메일 서버로 전달한다                          SMTP
   4  example.org 서버가 bob 의 사서함에 넣어 둔다
   5  bob 이 메일 프로그램을 열어 사서함의 메일을 가져온다        POP3 또는 IMAP
  • 메일 주소는 사용자@도메인 이다. @ 뒤의 도메인이 어느 서버로 보낼지를, 앞의 이름이 그 서버의 누구 사서함인지를 정한다.
  • 1번과 3번이 둘 다 SMTP 다. 사용자가 서버에 넘길 때도, 서버가 다른 서버에 넘길 때도 "밀어 보내는" 일은 전부 SMTP가 한다.
  • 5번만 방향이 반대다. 메일은 bob의 컴퓨터로 저절로 오지 않는다. 서버 사서함에서 기다리고 있고, bob이 가지러 가야 한다. 이 "가져오기"가 POP3·IMAP이다.
  • 받는 사람의 컴퓨터가 꺼져 있어도 메일을 보낼 수 있는 까닭이 4번이다. 서버가 대신 받아 보관한다.
문장에 이런 말이 나오면답
메일을 보낸다, 발송, 서버 간 전송·교환SMTP
메일을 가져온다, 내려받은 뒤 서버에서 삭제POP3
서버에 보관한 채 읽는다, 여러 기기, 폴더 동기화IMAP
첨부 파일, 한글, 이미지를 메일에 담는다MIME

POP3와 IMAP

구분POP3IMAP
저장 위치내 컴퓨터로 내려받음서버에 그대로 남음
서버의 원본보통 삭제유지
여러 기기동기화가 안 된다모든 기기에서 같은 상태
오프라인읽기 좋다연결이 필요하다
포트110143
  • 휴대폰과 PC에서 같은 메일함을 보려면 IMAP이다. POP3로 PC에서 받아 버리면 휴대폰에서는 사라진다.
  • 암호화 버전은 POP3S(995), IMAPS(993)다.
  • POP3의 "삭제"는 기본 동작일 뿐이다. 메일 프로그램에서 "서버에 사본 남기기"를 켜면 남겨 둘 수 있다. 그래도 읽음 표시나 폴더 정리는 그 기기에만 남는다는 점이 IMAP과 다르다.
  • IMAP은 메일 본문뿐 아니라 상태까지 서버에 둔다. 휴대폰에서 읽은 메일이 PC에서도 읽음으로 보이고, 한쪽에서 지우면 다른 쪽에서도 사라진다.
프로토콜평문 포트암호화 포트
HTTP80443 (HTTPS)
SMTP25465 (SMTPS)
POP3110995 (POP3S)
IMAP143993 (IMAPS)
  • 이름 끝의 S는 Secure 다. 같은 프로토콜에 SSL/TLS 암호화를 씌운 것이라 포트 번호가 따로 배정되어 있다.
  • 110과 143을 바꿔 놓은 보기가 가장 흔하다. 메일 세 포트는 25 → 110 → 143 순서를 보내기 → 내려받기 → 서버에 두고 보기 순서와 한 줄로 묶어 외운다.

메일 시스템의 구성 요소

약자풀네임하는 일예
MUAMail User Agent사용자가 쓰는 프로그램Thunderbird, Outlook, mutt
MTAMail Transfer Agent서버 간 전달Sendmail, Postfix, qmail, exim
MDAMail Delivery Agent사서함에 배달procmail, Dovecot
   MUA ──► MTA ──── SMTP ────► MTA ──► MDA ──► 사서함 ──► MUA
   (작성)  (전송)              (수신)  (배달)          (읽기)
  • U는 User(사용자), T는 Transfer(전송), D는 Delivery(배달) 로 가운데 글자를 보면 구분된다.
  • Sendmail과 Postfix가 대표적인 MTA 라는 점이 출제 범위에 든다.
  • MIME(Multipurpose Internet Mail Extensions)은 메일에 한글·이미지·첨부파일을 담을 수 있게 하는 규격이다. 원래 메일은 영문 텍스트만 보낼 수 있었다.
  • MIME은 프로토콜이 아니라 메일 내용을 적는 형식이다. SMTP·POP3·IMAP과 한 줄에 놓고 "메일을 전송하는 프로토콜이 아닌 것"을 고르게 하면 답이 MIME이다.

프로그램 이름을 역할에 꽂기

역할프로그램
MUA — 사용자가 읽고 쓰는 프로그램Thunderbird · Evolution · KMail · mutt · mail 명령
MTA — 서버 간 전송 (SMTP)Sendmail · Postfix · qmail · Exim
MDA — 사서함 배달procmail
POP3·IMAP 서버 — 사용자가 가져가게 해 준다Dovecot
  • Sendmail·Postfix·qmail·Exim 넷은 전부 MTA 다. 이 사이에 Thunderbird(MUA)나 Dovecot(가져가기 쪽)을 끼워 넣고 "MTA가 아닌 것"을 고르게 한다.
  • 프로토콜과 역할을 짝지으면 MTA ↔ SMTP, POP3·IMAP 서버 ↔ POP3·IMAP 이다. MUA는 보낼 때 SMTP, 받을 때 POP3·IMAP을 둘 다 쓴다.
  • Dovecot은 책에 따라 MDA로 묶기도 하고, 사용자가 가져가게 해 주는 서버라는 뜻에서 따로 나누기도 한다. 어느 쪽이든 MTA가 아니라는 점만은 같다.
  • 사서함은 서버의 파일이다. 전통적으로 /var/spool/mail/사용자명 에 쌓이며, 배포판에 따라 /var/mail이라는 경로로도 보인다.
증상살필 곳
보내기는 되는데 받기만 안 된다POP3·IMAP 쪽 설정(받는 서버, 110·143)
받기는 되는데 보내기만 안 된다SMTP 쪽 설정(보내는 서버, 25)
PC에서 확인한 메일이 휴대폰에서 사라졌다PC가 POP3로 내려받으며 서버에서 지웠다
웹은 되는데 https://만 안 된다443번 포트가 막혔다

내일은 도메인 이름을 IP로 바꿔 주는 DNS를 다룬다.

📖 용어

  • HTTP / HTTPS : 웹 통신 프로토콜 / 암호화가 적용된 웹 통신 프로토콜. 포트는 80과 443이다.
  • URL : 프로토콜·호스트·포트·경로로 이루어진 자원의 주소.
  • Apache / Nginx : 리눅스에서 가장 널리 쓰이는 웹 서버.
  • SMTP : 메일을 보내고 서버 간에 전달하는 프로토콜. 포트는 25다.
  • POP3 : 메일을 내려받는 프로토콜. 서버의 원본은 보통 삭제된다. 포트는 110이다.
  • IMAP : 메일을 서버에 두고 열람하는 프로토콜. 포트는 143이다.
  • MUA / MTA / MDA : 사용자 프로그램 / 서버 간 전송 / 사서함 배달을 담당하는 구성 요소.
  • MIME : 메일에 한글과 첨부파일을 담을 수 있게 하는 확장 규격.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

다음 중 메일 서버 사이에서 메일을 주고받을 때 사용하는 프로토콜로 알맞은 것은?

문제 2

다음 중 메일을 서버에 그대로 두고 여러 기기에서 동일한 상태로 확인할 수 있는 프로토콜로 알맞은 것은?

문제 3

다음 중 HTTPS가 기본으로 사용하는 포트 번호로 알맞은 것은?

문제 4

다음 중 메일 시스템에서 서버 간 메일 전송을 담당하는 구성 요소로 알맞은 것은?

문제 5

다음 중 텍스트 기반으로 동작하는 웹 브라우저로 알맞은 것은?

이전Week 9 종합 복습: 네트워크 한 장Week 9 · Day 5다음 DNS: 이름과 주소Week 10 · Day 2

참고 공식 자료

  • 리눅스마스터 2급 공식 출제 기준(새 탭에서 열림)

이 페이지

  • 웹
  • URL 읽기
  • HTTP가 주고받는 것
  • 웹 서버와 브라우저
  • 메일의 세 프로토콜
  • 메일 한 통이 가는 길
  • POP3와 IMAP
  • 메일 시스템의 구성 요소
  • 프로그램 이름을 역할에 꽂기
  • 용어
  • 연습 문제