파일 전송을위한 HTTP 및 FTP 비교


125

인터넷을 통해 파일을 전송하는 것의 장점은 무엇입니까?

(두 프로토콜의 보안 형식을 알고 있습니다. 성능, 안정성, 파일 크기 제한 등의 개인적인 경험을 통해 비교를 듣고 싶습니다.)

답변:


99

다음 은이 둘 의 성능 비교 입니다. 작은 파일의 요청-응답에 HTTP가 더 반응이 좋지만, 제대로 조정되면 큰 파일의 경우 FTP가 더 나을 수 있습니다. FTP는 일반적으로 더 빠른 것으로 간주되었습니다. FTP는 TCP 상태 외에 제어 채널과 상태를 유지해야하지만 HTTP는 그렇지 않습니다. FTP에서 데이터 전송을 시작하기 전에 6 개의 패킷 전송이 있지만 HTTP에서는 4 만 전송됩니다.

적절하게 조정 된 TCP 계층은 응용 프로그램 계층 프로토콜의 차이보다 속도에 더 큰 영향을 줄 것이라고 생각합니다. Sun Blueprint 이해 튜닝 TCP 에 자세한 내용이 있습니다.

각 프로토콜의 개별 특성에 대한 또 다른 좋은 비교 입니다.


22
+1 좋은 답변. FTP의 시대는 지났다고 생각하지만 더 이상 관련이 없습니다. 또한 구현 하는 절대 돼지 입니다.
skaffman

7
"작은"또는 "큰"파일의 크기는 무엇입니까?
Urbycoz

성능 비교 P-HTTP, T / TCP, 그리고 S-TCB를 구현에서 예상 이익의 분석에 링크를 가리 킵니다. FTP를 언급하는 곳은 없습니다. 또한 올바르게 조정 된 링크가 끊어졌습니다.
04 분에 종료

@Trisped 성능 비교 링크를 읽었습니까? FTP에 대한 12 개의 참조가 있으며 첫 번째 섹션에는 "HTTP 프로토콜이 원래 FTP의 비 효율성을 줄이기 위해 개발되었습니다 ..."라고 말한 다음 계속 설명합니다. 또한 "튜닝 TCP 이해"링크를 업데이트했습니다. 오라클이 오래된 Sun Blueprints 백서를 모두 버린 것 같습니다.
John Ellinwood

2
1996 년 8 월 16 일 ... 정말로? 2009 년 답변에서도 현재 상황을 나타내는 것으로 기대할 수 없었습니다. -1
541686

29

FTP와 HTTP를 통한 파일 전송을 벤치마킹했습니다.

  • 두 개의 아주 좋은 서버 연결
  • 동일한 1GB .zip 파일 사용
  • 동일한 네트워크 조건 하에서 (서로 테스트 됨)

결과:

  • FTP 사용 : 6 분
  • HTTP 사용 : 4 분
  • 동시 http 다운로더 소프트웨어 사용 ( fdm) : 1 분

따라서 기본적으로 "실제"상황에서 :

1) 하나의 큰 파일을 다운로드 할 때 HTTP가 FTP보다 빠릅니다.

2) HTTP는 병렬 청크 다운로드를 사용하여 네트워크 조건에 따라 FTP보다 6 배 더 빠릅니다.


18
이것은 매우 일화적인 것 같습니다.
spenibus

5
@anecdotal 그는 지금까지 다른 답변보다 덜 일화적인 숫자 (연구 결과)를 제공했습니다.
user1133275

시간은 적어도 대략 재현 할 수 있습니까?
masterxilo

며칠 전 http로 90MB 파일을 다운로드하려고했지만 2MB에서 네트워크에 장애가 발생했습니다. 그러나 ftp (동일한 서버, 동일한 파일, 모바일 핫스팟을 통한 동일한 네트워크)로 다운로드 성공. 이유를 모르겠습니다.
Rahmat Ihsan

1
ftp는 오버 헤드가 낮아 단일 파일에 더 빠릅니다. 테스트에 다른 답변이있는 경우 다른 클라이언트 (또는 다른 서버)를 사용해보십시오. http는 최대 비트 전송률보다 빠르게 다운로드 할 수 없으며이를 초과하려고 시도하는 병렬 옵션은 프로토콜 오버 헤드를 유발합니다. 대 프로토콜 오버 헤드없이 FTP를 통해 회선 속도로 다중 파일을 연속적으로 전송할 수 있습니다. FTP의 병렬 옵션은 일반적으로 단일 지점 연결을 능가하는 여러 TCP 연결을 사용합니다 (예 : SMB3.1 vSMB2.1, 3.x는 다중 연결을 사용할 수 있음).
아스 타라

27

많은 방화벽이 포트 80 또는 443 (http & https)이 아닌 아웃 바운드 연결을 끊습니다. 일부는 HTTP (S)가 아닌 포트에 대한 연결을 끊기도합니다. FTP는 활성 / PASV 모드를 말하지 않고 허용되거나 허용되지 않을 수 있습니다.

또한 HTTP / 1.1은 훨씬 더 나은 부분 요청 ( "바이트 123456에서 파일의 끝으로 전송"), 조건부 요청 및 캐싱 ( "콘텐츠가 변경된 경우 / 마지막으로 수정 한 날짜가 변경된 경우에만 보내기") 및 콘텐츠 압축을 허용합니다. (gzip).

프록시를 통해 HTTP를 사용하는 것이 훨씬 쉽습니다.

필자의 일화 적 증거에서 HTTP는 연결 끊기 / 느린 연결 / 틀린 연결로 작업하기가 더 쉽습니다. 예를 들어, 전송을 다시 시작하기 전에 로그인 세션을 다시 설정할 필요가 없습니다.

OTOH, HTTP는 상태 비 저장이므로 인증을 수행하고 "누가 언제 무엇을했는지"추적을 작성해야합니다.

내가 알아 낸 속도의 유일한 차이점은 많은 작은 파일을 전송하는 것입니다. 파이프 라이닝을 사용하는 HTTP가 더 빠릅니다 (대기 시간이 길어짐, 특히 지연 시간이 긴 네트워크에서 눈에 띄게 나타남).

참고 HTTP / 2 FTP 프로토콜은 수십 년 동안 업데이트를 보지 않은 반면 이벤트 더욱 최적화 (FTP 및도 확장 사용자가 미미 흡수가). 따라서 타임 머신을 통해 파일을 전송하지 않으면 HTTP가 승리 한 것 같습니다.

(Tantentially : rsync또는 BitTorrent 와 같은 파일 전송에 더 적합한 프로토콜이 있지만 그 정도는 많지 않지만 HTTP는 Everywhere ™입니다.)


13

FTP에서 비표준 포트를 사용할 수 있으므로 방화벽을 통과하기가 어렵습니다 (특히 SSL을 사용하는 경우). HTTP는 일반적으로 알려진 포트에 있으므로 거의 문제가되지 않습니다.

FTP를 사용하기로 결정한 경우 활성 및 수동 FTP 에 대해 읽으십시오 .

성능면에서 하루가 끝나면 TCP 연결을 통해 파일을 직접 분출하므로 거의 동일해야합니다.


-5

둘 다 TCP를 전송 프로토콜로 사용하지만 HTTP는 지속적인 연결을 사용하므로 TCP 성능이 향상됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.