เอฟทีพี

ประวัติ

เอฟทีพีมีการกำหนดลักษณะเฉพาะครั้งแรกใน RFC 114 เมื่อ 16 เมษายน พ.ศ. 2514 จากนั้นถูกเปลี่ยนโดย RFC 765 เมื่อเดือนมิถุนายน พ.ศ. 2523 และต่อมาก็ถูกเปลี่ยนอีกครั้งหนึ่งโดย RFC 959 เมื่อเดือนตุลาคม พ.ศ. 2528 ซึ่งเป็นรุ่นที่ใช้กันอยู่ในปัจจุบัน มีมาตรฐานอีกจำนวนหนึ่งที่พยายามเสริมคุณลักษณะเข้าไปในเอกสารขอความเห็นรุ่นดังกล่าว ตัวอย่างเช่น RFC 2228 เมื่อเดือนมิถุนายน พ.ศ. 2540 เสนอให้เพิ่มส่วนขยายสำหรับความปลอดภัย และ RFC 2428 เมื่อเดือนกันยายน พ.ศ. 2541 เพิ่มการรองรับสำหรับไอพีวี6 และกำหนดวิธีการส่งผ่านไฟล์แบบวิธีรับการร้องขอชนิดใหม่

ความปลอดภัย

ลักษณะเฉพาะเริ่มแรกของเอฟทีพีใช้วิธีการส่งผ่านไฟล์ที่ไม่มีการรักษาความปลอดภัย เพราะไม่มีวิธีการใดที่ระบุการส่งผ่านแบบเข้ารหัสข้อมูล หมายความว่าภายใต้การกำหนดค่าเครือข่ายส่วนใหญ่ ชื่อผู้ใช้ รหัสผ่าน คำสั่งเอฟทีพี และไฟล์ที่ส่งผ่าน สามารถถูกดักจับได้โดยใครก็ตามที่อยู่บนเครือข่ายเดียวกันด้วยตัวดักจับกลุ่มข้อมูล (packet sniffer) สิ่งนี้เป็นปัญหาหนึ่งของโพรโทคอลอินเทอร์เน็ตโดยทั่วไปเช่น เอชทีทีพี เอสเอ็มทีพี เทลเน็ต เป็นต้น จึงเกิดการคิดค้นเอสเอสแอลเพื่อการเข้ารหัสขึ้นมาใช้ การแก้ปัญหาความปลอดภัยนี้คือใช้ เอสเอฟทีพี (SSH File Transfer Protocol) หรือ เอฟทีพีเอส (FTP over SSL) ซึ่งเพิ่มการเข้ารหัสด้วยเอสเอสแอล (หรือทีแอลเอส) ไปบนเอฟทีพีธรรมดา ตามที่ระบุไว้ใน RFC 4217

เอฟทีพีนิรนาม

เครื่องแม่ข่ายที่ให้บริการเอฟทีพีอาจมีการเพิ่มระดับการเข้าถึงโดยผู้ใช้นิรนาม (anonymous FTP) นั่นคือไม่ต้องระบุตัวตนกับเครื่องแม่ข่าย โดยทั่วไปผู้ใช้ต้องล็อกอินเข้าสู่บริการด้วยชื่อบัญชี anonymous และเครื่องแม่ข่ายมักจะร้องขอให้ใส่รหัสผ่านเป็นที่อยู่อีเมลแทน ถึงกระนั้นก็ตาม บริการเอฟทีพีไม่สามารถตรวจสอบว่าที่อยู่อีเมลนั้นมีตัวตนอยู่จริงหรือเป็นของผู้ใช้จริงหรือไม่
โปรแกรมลูกข่ายเอฟทีพีสมัยใหม่มักจะซ่อนกระบวนการล็อกอินแบบนิรนามจากผู้ใช้ และป้อนข้อมูลหลอก ๆ เป็นรหัสผ่าน (เนื่องจากโปรแกรมอาจไม่สามารถรับรู้ที่อยู่อีเมลของผู้ใช้ได้)
โพรโทคอลโกเฟอร์ (Gopher) เป็นทางเลือกอีกทางหนึ่งเพื่อการเข้าถึงเอฟทีพีของผู้ใช้นิรนาม เช่นเดียวกับทีเอฟทีพีและเอฟเอสพี (File Service Protocol)

เอฟทีพีระยะไกล (เอฟทีพีเมล)

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

เอฟทีพีกับเว็บเบราว์เซอร์

เว็บเบราว์เซอร์และตัวจัดการไฟล์รุ่นใหม่ ๆ ส่วนใหญ่สามารถติดต่อกับเครื่องให้บริการเอฟทีพีได้ แม้ว่าอาจไม่มีการรองรับส่วนขยายโพรโทคอลเช่นเอฟทีพีเอส การใช้เว็บเบราว์เซอร์และตัวจัดการไฟล์สามารถจัดดำเนินการไฟล์ระยะไกลบนเอฟทีพี ด้วยส่วนติดต่อที่คล้ายกับระบบไฟล์เฉพาะที่ สามารถกระทำได้โดยป้อนยูอาร์แอลของเอฟทีพีในรูปแบบนี้
ftp(s)://<ftpserveraddress>
(ตัวอย่างเช่น ftp://ftp.gimp.org/)
สำหรับชื่อผู้ใช้และรหัสผ่านสำหรับการล็อกอิน สามารถใส่ได้พร้อมกันในยูอาร์แอลด้วยรูปแบบนี้ (ถ้าไม่ใส่ในตอนแรก ระบบจะถามทีหลัง)
ftp(s)://<login>:<password>@<ftpserveraddress>:<port>
เว็บเบราว์เซอร์ส่วนมากจำเป็นต้องใช้วิธีรับการร้องขอ (passive mode) ซึ่งเครื่องให้บริการไม่ได้รองรับคุณลักษณะนี้ทุกเครื่อง เว็บเบราว์เซอร์บางโปรแกรมอนุญาตให้ดาวน์โหลดไฟล์ได้อย่างเดียว ไม่มีวิธีอัปโหลดไฟล์ไปยังเครื่องแม่ข่าย