개발학습기

FTP(File Transfer Protocol)

afkorigin 2024. 12. 29. 16:36

전체목록

프로토콜

포트

SFTP

SSH

세션

  • FTP란?

FTP는 컴퓨터간 파일을 전송하기 위해 만들어진 인터넷 표준 프로토콜이다.

사용자는 클라이언트 소프트웨어를 통해 FTP 서버에 연결하여

파일을 업로드 하거나 다운로드 할 수 있다.

 

주로 웹 서버 관리, 백업, 또는 대용량 파일 전송에 사용된다.

 

  •  FTP의 주요동작

1. 클라이언트 - 서버 구조

FTP 서버: 파일을 저장하거나 제공하는 역할

 

FTP 클라이언트: 서버와 연결하여 파일을 전송하거나 받는 역할

 

2. 연결 방식

제어 연결: 명령어 전송과 세션 관리. 21번 포트 사용

 

데이터 연결: 파일 전송 시 데이터 전송. 20번 포트 사용

 

Active Mode와 Passive Mode를 통해 방화벽 문제를 해결할 수 있다.

 

3. 전송 모드

텍스트 모드: 텍스트 파일 전송 시 사용

바이너리 모드: 이미지, 영상, 프로그램 파일과 같은 바이너리 데이터를 전송

 

4. 명령어 기반 통신

클라이언트는 서버에 명령어를 전송하고, 서버는 그에 대한 응답을 반환한다.

예: LIST(파일 목록요청), RETR(파일 다운로드), STOR(파일 업로드)

 

  • FTP의 작동원리

1. 서버 접속

클라이언트가 서버의 IP 주소와 포트(보통21번)를 통해 연결을 요청한다.

 

2. 인증 과정

사용자 이름과 비밀 번호를 통해 인증한다.

익명 사용자로 접속 할 경우, 기본적인 공용 파일만 접근 가능하다.

 

3. 파일 전송

클라이언트가 명령어를 통해 특정 디렉토리로 이동하거나 파일을 업로드/다운로드 한다.

전송할 파일의 경로와 이름을 명시해야한다.

 

4. 연결 종료

작업 완료 후 클라이언트는 서버와의 연결을 종료한다.

 

 

  • FTP의 장점과 단점

장점

1. 파일 전송 표준  프로토콜: 다양한 운영체제에서 지원한다.

2. 대량의 데이터 전송 가능

3. 디렉토리 전송: 단순 파일뿐 아니라 디렉토리를 전송 가능하다.

 

단점

1. 보안 취약점

FTP는 데이터를 암호화하지 않아 중간에 가로채기 쉽다.

이를 해결하기 위해 SFTP (SSH기반) 또는 FTPS(SSL 기반) 사용이 권장된다.

 

2. 포트 관리 어려움

Active/Passiv 모드에 따라 네트워크 방화벽 설정이 복잡하다.

 

3. HTTP 대비 유연성 부족

주로 파일 전송에만 사용되며, 웹 전송의 기능적 한계가 있다.

 

 

  • FTP의 전송방식

1. Active Mode

서버가 클라이언트에게 직접 연결을 설정

클라이언트가 방화벽을 사용할 경우 문제가 발생할 수 있다.

 

2. Passive Mode

클라이언트가 서버에 데이터 연결을 요청

방화벽 뒤의 클라이언트에서도 연결이 가능하다.

 

 

  • 정리

FTP는 파일 전송을 위한 표준 프로토콜로 대량의 파일 전송과 서버관리를 지원하지만

보안 취약점을 보완하기 위해 현대에는 SFTP와 같은 더 안전한 방식이 선호된다.

'개발학습기' 카테고리의 다른 글

쿠키(Cookie)  (1) 2024.12.29
세션(Session)  (0) 2024.12.29
포트(Port)  (0) 2024.12.29
SFTP(Secure File Transfer Protocol)  (0) 2024.12.28
SCP(Secure Copy Protocol)  (0) 2024.12.28