HTTP·HTTPS와 FTP·TFTP
쉽게 말하면
HTTP는 웹페이지를 주고받는 약속이에요. 브라우저가 "이 페이지 주세요"(GET) 하면 서버가 "여기 있어요"(200) 또는 "없어요"(404)로 답해요. 자물쇠가 달린 HTTPS는 그 대화를 암호화한 거예요. FTP는 파일을 올리고 내려받는 약속인데, 명령용 통로와 파일용 통로를 따로 써요.
시험용 정의
HTTP는 웹에서 요청·응답으로 문서를 주고받는 응용 계층 프로토콜이다(TCP 80). 상태를 기억하지 않는(stateless) 방식이라 쿠키·세션으로 사용자를 구분한다. HTTPS는 HTTP를 TLS(SSL)로 암호화한 것이다(TCP 443). FTP는 파일 전송 프로토콜로 제어 연결(21)과 데이터 연결(20 또는 임의 포트)을 따로 쓰고, TFTP는 인증 없이 UDP 69로 간단히 파일을 옮긴다.
비유로 이해하기
HTTP는 식당 주문이다. 메뉴를 달라(GET), 이 주문서를 접수해 달라(POST)고 하면 직원이 결과 번호(상태 코드)와 함께 가져온다. 한 번 주문이 끝나면 직원은 손님을 기억하지 않아, 번호표(쿠키)를 준다.
자세히
먼저 알아 둘 말
| 말 | 뜻 |
|---|---|
| URL | 자원의 주소. 프로토콜://호스트:포트/경로 |
| 메서드 | 요청의 종류. GET, POST 등 |
| stateless | 이전 요청을 기억하지 않는 성질 |
| 능동·수동 모드 | FTP에서 데이터 연결을 서버가 거느냐 클라이언트가 거느냐 |
HTTP 메서드와 상태 코드
| 구분 | 내용 |
|---|---|
| GET / POST | 자원 요청 / 데이터 제출(로그인·글쓰기) |
| PUT / DELETE | 자원 저장·수정 / 삭제 |
| HEAD / OPTIONS | 헤더만 요청 / 가능한 메서드 확인 |
| 2xx | 성공 (200 OK) |
| 3xx | 리다이렉션 (301 영구 이동, 302 임시 이동, 304 수정 안 됨) |
| 4xx | 클라이언트 오류 (400 잘못된 요청, 401 인증 필요, 403 금지, 404 없음) |
| 5xx | 서버 오류 (500 내부 오류, 503 서비스 불가) |
FTP 능동·수동 모드
| 모드 | 데이터 연결 | 특징 |
|---|---|---|
| 능동(Active) | 서버가 자신의 20번 포트에서 클라이언트로 연결을 건다 | 클라이언트 방화벽이 막으면 실패 |
| 수동(Passive) | 클라이언트가 서버가 알려 준 임의 포트로 연결을 건다 | 방화벽·NAT 환경에서 잘 된다 |
FTP 관련 정리
- FTP는 아이디·비밀번호와 데이터를 평문으로 보낸다. 안전하게는 SFTP(SSH 기반, 22)나 FTPS(TLS)
- 익명 FTP: anonymous 계정으로 공개 파일 제공
- TFTP: UDP 69, 인증·목록 기능 없음. 라우터 설정·이미지 백업, 네트워크 부팅에 쓴다
- 전송 모드: ASCII(텍스트)와 Binary(그 외 파일)
기출에서 더 나온 것
| 말 | 뜻 |
|---|---|
| SFTP | SSH 위에서 동작하는 안전한 파일 전송 |
| HTTP/2 | SPDY를 바탕으로 한 TCP 기반 HTTP, 하나의 연결로 여러 요청을 동시에 |
| HTTP/3 · QUIC | UDP 위에 만든 QUIC 프로토콜을 쓰는 HTTP. 연결 지연이 짧다 |
| 403 Forbidden | 요청은 이해했지만 접근 권한이 없어 거부 |
시험에 이렇게 나와요
- HTTP 80 / HTTPS 443, HTTPS는 TLS로 암호화
- FTP → 제어 21·데이터 20 포트를 나눠 쓴다, TCP 사용 / TFTP → UDP 69, 인증 없음, 손실 가능
- FTP 수동(Passive) 모드 → 서버가 정한 임의 포트로 클라이언트가 데이터 연결
- HTTP 상태 코드 → 200 성공, 403 접근 금지, 404 없음
- HTTP/3 → UDP 기반 QUIC 사용 (TCP가 아님)
확인 문제
Q1. 웹 서버가 "요청한 페이지를 찾을 수 없다"고 답할 때의 HTTP 상태 코드는?
- 200
- 301
- 404
- 500
정답 보기
3번 404
404 Not Found. 2xx 성공, 3xx 다른 곳으로 이동, 4xx 클라이언트 잘못, 5xx 서버 잘못.
Q2. FTP 수동(Passive) 모드에서 데이터 연결을 거는 쪽은?
- 클라이언트
- 라우터
- 서버
- DNS 서버
정답 보기
1번 클라이언트
클라이언트가 서버의 임의 포트로 연결한다.
Q3. 권한이 없어 접근이 거부될 때의 HTTP 상태 코드는?
- 200
- 301
- 403
- 503
정답 보기
3번 403
403 Forbidden이다. 200은 성공, 301은 영구 이동, 404는 찾을 수 없음, 503은 서비스 사용 불가다.
Q4. 인증 기능 없이 UDP로 간단히 파일을 전송하는 프로토콜은?
- HTTP
- TFTP
- SFTP
- FTP
정답 보기
2번 TFTP
TFTP다. UDP 69번을 쓰고 인증이 없다. FTP는 TCP 20·21번, SFTP는 SSH 위에서 암호화해 전송한다.
Q5. FTP가 쓰는 포트로 옳은 것은?
- UDP 69
- 제어 21, 데이터 20
- 제어 20, 데이터 21
- 제어·데이터 모두 80
정답 보기
2번 제어 21, 데이터 20
명령은 21, 데이터는 20(능동 모드). UDP 69는 TFTP.
Q6. HTTP/3에 대한 설명으로 옳은 것은?
- 포트 21을 쓴다
- TCP 위에서만 동작한다
- UDP 기반의 QUIC를 쓴다
- 암호화를 지원하지 않는다
정답 보기
3번 UDP 기반의 QUIC를 쓴다
HTTP/3는 UDP 위에 만든 QUIC로 연결 지연을 줄인다.
헷갈리기 쉬운 O·X
HTTP는 이전 요청 상태를 기억하는 stateful 프로토콜이다.
정답 보기
X stateless. 쿠키·세션으로 보완한다.
FTP 제어 연결은 21번 포트를 쓴다.
정답 보기
O 데이터는 20번(능동) 또는 임의 포트(수동).
HTTPS는 HTTP를 TLS로 암호화한 것이다.
정답 보기
O 443번 포트.