So sánh HTTP và FTP để truyền tệp


125

Những ưu điểm (hoặc hạn chế) của cái này so với cái kia để truyền tệp qua Internet là gì?

(Tôi biết các hình thức bảo mật của cả hai giao thức. Tôi muốn nghe so sánh thông qua trải nghiệm cá nhân về hiệu suất, độ tin cậy, giới hạn kích thước tệp, v.v.)

Câu trả lời:


99

Đây là một so sánh hiệu suất của hai. HTTP phản ứng nhanh hơn để đáp ứng yêu cầu của các tệp nhỏ, nhưng FTP có thể tốt hơn cho các tệp lớn nếu được điều chỉnh đúng. FTP thường được coi là nhanh hơn. FTP yêu cầu kênh điều khiển và trạng thái được duy trì bên cạnh trạng thái TCP nhưng HTTP thì không. Có 6 lần chuyển gói trước khi dữ liệu bắt đầu truyền trong FTP nhưng chỉ có 4 trong HTTP.

Tôi nghĩ rằng một lớp TCP được điều chỉnh đúng sẽ có ảnh hưởng nhiều hơn đến tốc độ so với sự khác biệt giữa các giao thức của lớp ứng dụng. Sun Blueprint Hiểu điều chỉnh TCP có chi tiết.

Đây là một so sánh tốt khác về các đặc điểm riêng của từng giao thức.


22
+1 câu trả lời hay. Tôi nghĩ rằng ngày của FTP đã và đang qua đi, nó không còn liên quan nữa. Đó cũng là một con lợn tuyệt đối để thực hiện.
skaffman

7
Kích thước nào có nghĩa là các tệp "nhỏ" hoặc "lớn"?
Urbycoz

Các hiệu suất so sánh điểm liên kết đến một phân tích về lợi nhuận dự kiến từ việc thực hiện P-HTTP, T / TCP, và S-TCB. Không có nơi nào đề cập đến FTP. Ngoài ra, các liên kết điều chỉnh đúng bị hỏng.
Đã xem

@Trisped bạn đã đọc liên kết so sánh hiệu suất? Có 12 tài liệu tham khảo về FTP và phần đầu tiên cho biết "Giao thức HTTP ban đầu được phát triển để giảm tính không hiệu quả của FTP ..." và sau đó tiếp tục giải thích. Tôi cũng đã cập nhật liên kết "Hiểu điều chỉnh TCP" ... có vẻ như Oracle đã vứt bỏ tất cả các trang trắng của Sun Blueprints cũ.
John Ellinwood

2
Ngày 16 tháng 8 năm 1996 ... thật sao? Ngay cả trong câu trả lời năm 2009 của bạn, bạn không thể hy vọng đây là đại diện cho tình trạng hiện tại. -1
dùng541686

29

Tôi vừa chấm điểm chuyển tập tin qua cả FTP và HTTP:

  • qua hai kết nối máy chủ rất tốt
  • sử dụng cùng tệp 1GB .zip
  • trong cùng điều kiện mạng (được kiểm tra lần lượt)

Kết quả:

  • sử dụng FTP: 6 phút
  • sử dụng HTTP: 4 phút
  • sử dụng phần mềm tải xuống http đồng thời ( fdm): 1 phút

Vì vậy, về cơ bản trong tình huống "đời thực":

1) HTTP nhanh hơn FTP khi tải xuống một tệp lớn.

2) HTTP có thể sử dụng tải xuống chunk song song, giúp nó nhanh hơn 6 lần so với FTP tùy thuộc vào điều kiện mạng.


18
Điều này có vẻ rất giai thoại.
spenibus 21/07/2015

5
@anecdotal ông đã cung cấp những con số (sự thật từ nghiên cứu) ít có giai thoại hơn bất kỳ câu trả lời nào khác cho đến nay.
dùng1133275

Là thời gian tái sản xuất, ít nhất là khoảng?
masterxilo

Vài ngày trước tôi đã cố tải xuống các tệp 90MB bằng http, mạng không thành công ở mức 2 MB. Nhưng với ftp (cùng một máy chủ, cùng một tệp, cùng một mạng thông qua điểm truy cập di động), việc tải xuống thành công. Tôi không biết tại sao.
Rahmat Ihsan

1
ftp nhanh hơn cho các tệp đơn do chi phí thấp hơn. Nếu thử nghiệm của bạn có câu trả lời khác, hãy thử một ứng dụng khách khác (hoặc ít có khả năng hơn, một máy chủ khác). http không thể tải xuống nhanh hơn tốc độ bit tối đa và bất kỳ tùy chọn song song nào được sử dụng để vượt quá mức sẽ giới thiệu chi phí giao thức. Vs Nhiều tệp có thể được chuyển ngược lại ở tốc độ đường truyền qua FTP mà không cần giao thức. Tùy chọn song song của FTP sử dụng nhiều kết nối TCP thường vượt qua các kết nối một điểm (ví dụ: SMB3.1 vSMB2.1, 3.x có thể sử dụng đa kết nối).
Astara

27

Nhiều tường lửa thả các kết nối ra ngoài mà không đến cổng 80 hoặc 443 (http & https); một số thậm chí bỏ kết nối đến các cổng không phải là HTTP (S). FTP có thể hoặc không được phép, không được nói về các chế độ hoạt động / PASV.

Ngoài ra, HTTP / 1.1 cho phép yêu cầu một phần tốt hơn nhiều ("chỉ gửi từ byte 123456 đến cuối tệp"), yêu cầu có điều kiện và bộ đệm ("chỉ gửi nếu nội dung thay đổi / nếu thay đổi ngày cuối cùng") và nén nội dung (gzip).

HTTP dễ sử dụng hơn thông qua proxy.

Từ bằng chứng giai thoại của tôi, HTTP dễ dàng thực hiện công việc hơn với các kết nối bị rớt / chậm / không ổn định; ví dụ: không cần thiết (tái) thiết lập phiên đăng nhập trước khi (bắt đầu lại) chuyển khoản.

OTOH, HTTP là không trạng thái, vì vậy bạn phải xác thực và xây dựng một dấu vết "ai đã làm gì khi".

Sự khác biệt duy nhất về tốc độ mà tôi nhận thấy là chuyển nhiều tệp nhỏ: HTTP với đường ống nhanh hơn (giảm các chuyến đi khứ hồi, đặc biệt đáng chú ý trên các mạng có độ trễ cao).

Lưu ý rằng HTTP / 2 cung cấp nhiều tối ưu hóa hơn nữa, trong khi giao thức FTP đã không thấy bất kỳ bản cập nhật nào trong nhiều thập kỷ (và ngay cả các tiện ích mở rộng cho FTP cũng có sự hấp thụ không đáng kể của người dùng). Vì vậy, trừ khi bạn chuyển tập tin qua một cỗ máy thời gian, HTTP dường như đã chiến thắng.

(Tiếp theo: có các giao thức phù hợp hơn cho việc truyền tệp, chẳng hạn như rsynchoặc BitTorrent, nhưng các giao thức đó không có nhiều suy nghĩ, trong khi HTTP là Everywhere ™)


13

Một lưu ý là FTP có thể sử dụng các cổng không chuẩn, điều này có thể khiến việc truy cập tường lửa trở nên khó khăn (đặc biệt nếu bạn đang sử dụng SSL). HTTP thường trên một cổng đã biết, vì vậy điều này hiếm khi xảy ra sự cố.

Nếu bạn quyết định sử dụng FTP, hãy đảm bảo bạn đã đọc về FTP chủ động và thụ động .

Về mặt hiệu suất, vào cuối ngày, cả hai đều đưa các tệp trực tiếp xuống các kết nối TCP nên giống nhau.


-5

Cả hai đều sử dụng TCP làm giao thức vận chuyển, nhưng HTTP sử dụng kết nối liên tục, giúp hiệu suất của TCP tốt hơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.