การเปรียบเทียบ HTTP และ FTP สำหรับการถ่ายโอนไฟล์


125

ข้อดี (หรือข้อ จำกัด ) ของอีกข้อหนึ่งสำหรับการถ่ายโอนไฟล์ทางอินเทอร์เน็ตคืออะไร?

(ฉันทราบถึงรูปแบบที่ปลอดภัยของโปรโตคอลทั้งสองฉันต้องการฟังการเปรียบเทียบผ่านประสบการณ์ส่วนตัวในแง่ของประสิทธิภาพความน่าเชื่อถือข้อ จำกัด ขนาดไฟล์เป็นต้น)

คำตอบ:


99

นี่คือการเปรียบเทียบประสิทธิภาพของทั้งสอง HTTP ตอบสนองได้ดีกว่าสำหรับการร้องขอการตอบสนองของไฟล์ขนาดเล็ก แต่ FTP อาจดีกว่าสำหรับไฟล์ขนาดใหญ่หากได้รับการปรับแต่งอย่างเหมาะสม FTP ที่ใช้โดยทั่วไปถือว่าเร็วกว่า FTP ต้องการช่องสัญญาณควบคุมและรักษาสถานะนอกเหนือจากสถานะ TCP แต่ HTTP ไม่ได้ มีการถ่ายโอนข้อมูล 6 แพ็กเก็ตก่อนที่ข้อมูลจะเริ่มถ่ายโอนใน FTP แต่มีเพียง 4 ใน HTTP เท่านั้น

ฉันคิดว่าเลเยอร์ TCP ที่ปรับแต่งอย่างเหมาะสมจะมีผลต่อความเร็วมากกว่าความแตกต่างระหว่างโปรโตคอลเลเยอร์แอปพลิเคชัน Sun Blueprint การทำความเข้าใจเกี่ยวกับ Tuning TCPมีรายละเอียด

นี่เป็นการเปรียบเทียบที่ดีอีกประการหนึ่งของลักษณะเฉพาะของแต่ละโปรโตคอล


22
+1 คำตอบที่ดี ฉันคิดว่าวันของ FTP ได้ผ่านไปแล้วและไม่มีความเกี่ยวข้องอีกต่อไป นอกจากนี้ยังเป็นหมูที่ต้องใช้
skaffman

7
ไฟล์ "เล็ก" หรือ "ใหญ่" หมายถึงขนาดใด
Urbycoz

การเปรียบเทียบประสิทธิภาพของจุดเชื่อมโยงไปยังการวิเคราะห์ของกำไรที่คาดหวังจากการใช้ P-HTTP, T / TCP และ S-TCB ไม่มีที่ไหนกล่าวถึง FTP นอกจากนี้ลิงก์ที่ปรับแต่งอย่างถูกต้องก็เสีย
Trisped

@Trisped คุณอ่านลิงค์เปรียบเทียบประสิทธิภาพหรือไม่? มีการอ้างอิงถึง FTP 12 รายการและส่วนแรกระบุว่า "เดิมทีโปรโตคอล HTTP ได้รับการพัฒนาเพื่อลดความไร้ประสิทธิภาพของ FTP ... " จากนั้นจะอธิบายต่อไป ฉันยังอัปเดตลิงก์ "การทำความเข้าใจเกี่ยวกับการปรับแต่ง TCP" ... ดูเหมือนว่า Oracle จะทิ้งเอกสารไวท์เปเปอร์ Sun Blueprints แบบเก่าทั้งหมด
John Ellinwood

2
16 สิงหาคม 2539 ... จริงหรือ? แม้ในคำตอบของคุณในปี 2009 คุณไม่สามารถคาดหวังได้ว่าสิ่งนี้จะเป็นตัวแทนของสถานการณ์ปัจจุบัน -1
user541686

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

ไม่กี่วันที่ผ่านมาฉันพยายามดาวน์โหลดไฟล์ 90MB ด้วย http เครือข่ายล้มเหลวที่ 2MB แต่ด้วย ftp (เซิร์ฟเวอร์เดียวกันไฟล์เดียวกันเครือข่ายเดียวกันผ่านฮอตสปอตมือถือ) การดาวน์โหลดจะประสบความสำเร็จ ฉันไม่รู้ว่าทำไม
Rahmat Ihsan

1
ftp เร็วกว่าสำหรับไฟล์เดี่ยวเนื่องจากค่าใช้จ่ายที่ต่ำกว่า หากการทดสอบของคุณมีคำตอบที่แตกต่างออกไปให้ลองไคลเอนต์อื่น (หรือเซิร์ฟเวอร์อื่นมีโอกาสน้อยกว่า) http ไม่สามารถดาวน์โหลดได้เร็วกว่าอัตราบิตสูงสุดและตัวเลือกคู่ขนานใด ๆ ที่ใช้ในการพยายามเกินจะทำให้เกิดค่าใช้จ่ายของโปรโตคอล เมื่อเทียบกับ สามารถโอนไฟล์หลายไฟล์กลับไปกลับมาด้วยความเร็วสายผ่าน FTP โดยไม่มีค่าใช้จ่ายของโปรโตคอล ตัวเลือกแบบขนานของ FTP ใช้การเชื่อมต่อ TCP หลายรายการซึ่งโดยปกติจะเกินการเชื่อมต่อแบบจุดเดียว (เช่น SMB3.1 vSMB2.1, 3.x สามารถใช้การเชื่อมต่อแบบมัลติ)
Astara

27

ไฟร์วอลล์จำนวนมากยกเลิกการเชื่อมต่อขาออกซึ่งไม่ใช่พอร์ต 80 หรือ 443 (http & https); บางคนถึงกับทิ้งการเชื่อมต่อไปยังพอร์ตที่ไม่ใช่ HTTP (S) FTP อาจได้รับอนุญาตหรือไม่ก็ได้ไม่ต้องพูดถึงโหมดที่ใช้งานอยู่ / PASV

นอกจากนี้ HTTP / 1.1 ยังช่วยให้สามารถร้องขอบางส่วนได้ดีขึ้นมาก ("ส่งจากไบต์ 123456 ไปยังจุดสิ้นสุดของไฟล์เท่านั้น") คำขอแบบมีเงื่อนไขและการแคช ("ส่งเฉพาะเมื่อเนื้อหามีการเปลี่ยนแปลง / หากวันที่แก้ไขล่าสุดเปลี่ยนแปลง") และการบีบอัดเนื้อหา (gzip)

HTTP ใช้งานง่ายกว่ามากผ่านพร็อกซี

จากหลักฐานประวัติของฉัน HTTP นั้นง่ายกว่าในการทำงานกับการเชื่อมต่อที่หลุด / ช้า / ไม่สม่ำเสมอ เช่นไม่จำเป็นต้อง (อีกครั้ง) สร้างเซสชันการเข้าสู่ระบบก่อน (อีกครั้ง) เริ่มการถ่ายโอน

OTOH, HTTP ไม่มีสถานะดังนั้นคุณต้องทำการตรวจสอบสิทธิ์และสร้างเส้นทางว่า "ใครทำอะไรเมื่อไหร่" ด้วยตัวเอง

ความแตกต่างเพียงอย่างเดียวของความเร็วที่ฉันสังเกตเห็นคือการถ่ายโอนไฟล์ขนาดเล็กจำนวนมาก: HTTP ที่มีการไปป์ไลน์นั้นเร็วกว่า (ลดการเดินทางไปกลับโดยเฉพาะอย่างยิ่งสังเกตได้ในเครือข่ายที่มีเวลาแฝงสูง)

โปรดทราบว่าHTTP / 2มีการเพิ่มประสิทธิภาพมากยิ่งขึ้นในขณะที่โปรโตคอล FTP ไม่เห็นการอัปเดตใด ๆ มานานหลายทศวรรษ (และแม้แต่ส่วนขยายไปยัง FTP ก็ยังไม่ได้รับความสนใจจากผู้ใช้) ดังนั้นหากคุณไม่โอนไฟล์ผ่านไทม์แมชชีนดูเหมือนว่า HTTP จะชนะ

(แทนใจ: มีโปรโตคอลที่เหมาะกว่าสำหรับการถ่ายโอนไฟล์เช่นrsyncหรือ BitTorrent แต่สิ่งเหล่านี้ไม่มีส่วนแบ่งในใจมากนักในขณะที่ HTTP คือ Everywhere ™)


13

ข้อควรพิจารณาประการหนึ่งคือ FTP สามารถใช้พอร์ตที่ไม่ได้มาตรฐานซึ่งอาจทำให้การเข้าถึงไฟร์วอลล์ทำได้ยาก (โดยเฉพาะอย่างยิ่งหากคุณใช้ SSL) โดยปกติ HTTP จะอยู่บนพอร์ตที่รู้จักดังนั้นจึงไม่ค่อยมีปัญหา

ถ้าคุณตัดสินใจที่จะใช้ FTP ให้แน่ใจว่าคุณอ่านเกี่ยวกับการใช้งานและ passive FTP

ในแง่ของประสิทธิภาพในตอนท้ายของวันพวกเขาทั้งสองกำลังพ่นไฟล์ลงการเชื่อมต่อ TCP โดยตรงดังนั้นควรจะเหมือนกัน


-5

ทั้งสองใช้ TCP เป็นโปรโตคอลการขนส่ง แต่ HTTP ใช้การเชื่อมต่อแบบต่อเนื่องซึ่งทำให้ประสิทธิภาพของ TCP ดีขึ้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.