Câu trả lời:
Đâ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.
Tôi vừa chấm điểm chuyển tập tin qua cả FTP và HTTP:
Kết quả:
fdm
): 1 phútVì 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.
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ư rsync
hoặc BitTorrent, nhưng các giao thức đó không có nhiều suy nghĩ, trong khi HTTP là Everywhere ™)
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.