Coba jelasin Perbedaan dari HTTP dari Protokol Transfer Berkas dong

HTTP pada dasarnya memperbaiki bug di FTP yang membuatnya tidak nyaman digunakan untuk banyak transfer singkat seperti biasanya di halaman peramban.

FTP memiliki koneksi kontrol tetap yang memelihara direktori kerja saat ini dan flag lainnya, dan setiap transfer membutuhkan koneksi sekunder melalui data yang ditransfer. Dalam mode "pasif", koneksi sekunder ini dari klien ke server, dimana mode sedangkan pada mode "aktif" default koneksi ini adalah dari peladen ke klien. Pembalikan peran yang nyata ini saat dalam mode aktif, dan nomor port acak untuk semua transfer, itulah mengapa tembok api dan gateway NAT mengalami kesulitan dengan FTP. HTTP adalah kontrol tidak tetap dan multipleks data melalui koneksi tunggal dari klien ke peladen pada nomor port yang dikenal, yang dengan mudah melewati gateway NAT dan mudah dikelola oleh tembok api.

Mengatur sebuah koneksi kontrol FTP  cukup lambat karena keterlambatan bolak-balik pengiriman semua perintah yang diperlukan dan menunggu tanggapan, jadi sudah biasa untuk memunculkan koneksi kontrol dan menahannya terbuka untuk beberapa transfer berkas daripada mematikan dan membuat kembali sesi lagi setiap kali. Sebaliknya, HTTP awalnya memutuskan sambungan setelah setiap transfer karena melakukan hal itu sangat murah. Sementara HTTP kemudian memperoleh kemampuan untuk menggunakan kembali koneksi TCP untuk banyak transfer, model konseptual masih permintaan independen daripada sebuah sesi.

Saat FTP mentransfer melalui koneksi data, koneksi kontrol diam. Jika transfer terlalu lama, tembok api atau NAT dapat memutuskan bahwa koneksi kontrol mati dan berhenti melacaknya, memutuskan koneksi secara efektif dan membingungkan unduhan. Koneksi HTTP tunggal hanya diam di antara permintaan dan merupakan hal yang normal dan koneksi semacam itu diperkirakan akan terputus setelah waktu habis.