Кіріспе
TCP/IP желілері арқылы файлдарды берудің стандартты протоколы
Файл беру протоколы (FTP) – компьютерлік файлдарды серверден компьютерлік желідегі клиентке беруге арналған стандартты байланыс протоколы. FTP клиент-серверлік архитектураға негізделген, клиент пен сервер арасында жеке басқару және деректер байланыстарын пайдаланады. FTP пайдаланушылары әдетте пайдаланушы аты мен пароль түрінде жай мәтіндік кіру арқылы өзін растай алады, бірақ серверге рұқсат берілген жағдайда анонимді түрде қосылуға да болады. Пайдаланушы атын және парольді қорғау үшін, ал мазмұнды шифрлеу үшін FTP көбінесе SSL/TLS (FTPS) арқылы қорғалады немесе SSH файлдарды беру протоколымен (SFTP) алмастырылады. FTP клиенттік бағдарламаларының алғашқы нұсқалары операциялық жүйелерде графикалық интерфейстер пайда болмас бұрын жасалған командалық жол бағдарламалары болды және олар әлі де көптеген Windows, Unix және Linux операциялық жүйелерімен бірге келеді. Қауіпсіздігі жақсырақ SFTP және FTPS протоколдарымен алмастырылғандықтан екі ірі веб-браузер өндірушісі енді оны қолдамайды, бірақ олардың ешқайсысы жаңа протоколдарды іске аспады.
FTP серверлер тарихы
Файл беру протоколының бастапқы сипаттамасын Абхай Бушан жазды және ол 1971 жылдың 16 сәуірінде жарияланды. 1980 жылға дейін FTP, TCP/IP-ге дейінгі NCP протоколында жұмыс істеді.
Байланыс және деректерді беру
FTP белсенді немесе пассивті режимде жұмыс істей алады, бұл деректер қосылысының қалай орнатылатынын анықтайды. (Бұл "режим" түсінігі FTP протоколындағы MODE командасынан өзгеше.) Активті режимде клиент серверден M портында келетін деректер қосылысын тыңдауды бастайды. Ол серверге қай портта тыңдап жатқанын хабарлау үшін PORT M FTP командасын жібереді. Сервер кейін клиентке өзінің 20 портынан, яғни FTP серверінің дерек портынан дерек арнасын ашады. Клиент өрт қабырғасының артында болып, кіріс TCP қосылымдарын қабылдай алмаса, пассивті режим қолданылуы мүмкін. Бұл режимде клиент басқару қосылысын пайдаланып серверге PASV командасын жібереді, содан кейін серверден сервердің IP-адресі мен сервер портының нөмірін алады. Екі режим де 1998 жылдың қыркүйегінде IPv6 қолдау үшін жаңартылды. Сол кезде пассивті режимге қосымша өзгерістер енгізіліп, ол кеңейтілген пассивті режимге жаңартылды. Сервер басқару байланысы арқылы ASCII форматында үш таңбалы статус кодтарымен және қосымша мәтіндік хабарламамен жауап береді. Мысалы, "200" (немесе "200 OK") соңғы команда сәтті орындалғанын білдіреді. Сандар жауап кодын көрсетеді, ал қосымша мәтін адам оқи алатын түсіндірме немесе сұранысты білдіреді (мысалы, <Файл сақтау үшін тіркелгіш жазба қажет>). FTP протоколы кері үйлесімділікті сақтау үшін бір портты ғана пайдалануға өзгертілмеді және екі портты пайдалануды жалғастырды.
Both modes were updated in September 1998 to support IPv6. Further changes were introduced to the passive mode at that time, updating it to extended passive mode. The server responds over the control connection with three digit status codes in ASCII with an optional text message. For example, "200" (or "200 OK") means that the last command was successful. The numbers represent the code for the response and the optional text represents a human readable explanation or request (e. g. <Need account for storing file>). but the FTP protocol was never altered to only use one port, and continued using two for backwards compatibility.
Файл құрылымдары
Файлдың ұйымдастырылуы STRU командасымен анықталады. Келесі файл құрылымдары RFC959 стандартының 3.1.1 бөлімінде сипатталған: F немесе FILE құрылымы (ағымға бағытталған). Файлдар байттардың, символдардың немесе сөздердің кез келген ретсіз тізбегі ретінде қарастырылады. Бұл Unix жүйелерінде және CP/M, MS DOS және Microsoft Windows сияқты басқа жүйелердегі әдеттегі файл құрылымы. (3.1.1.1-бөлім) R немесе RECORD құрылымы (жазбаға бағытталған). Файлдар ұзындығы белгілі немесе өзгермелі жазбаларға бөлінгендей қарастырылады. Бұл файлдық ұйым MVS, VM/CMS, OS/400 және VMS сияқты негізгі және орта деңгейдегі жүйелерде кең таралған, олар жазбаға бағытталған файлдық жүйелерді қолдайды. P немесе PAGE құрылымы (бетке бағытталған). Файлдар беттерге бөлінеді, олар деректерді немесе метадеректерді қамтуы мүмкін; әр беттің әртүрлі атрибуттарын көрсететін тақырыбы болуы мүмкін. Бұл файл құрылымы TENEX жүйелері үшін арнайы жасалған және әдетте басқа платформаларда қолдау көрсетілмейді. RFC1123 стандартының 4.1.2.3 бөлімінде осы құрылымды іске асыру ұсынылмайды. Көптеген қазіргі заманғы FTP клиенттері мен серверлері тек STRU F құрылымын қолдайды. STRU R әлі де негізгі компьютерлер мен миникомпьютерлерде файлдарды беру қолданбаларында қолданылады.
F or FILE structure (stream oriented). Files are viewed as an arbitrary sequence of bytes, characters or words. This is the usual file structure on Unix systems and other systems such as CP/M, MS DOS and Microsoft Windows. (Section 3.1.1.1)
R or RECORD structure (record oriented). Files are viewed as divided into records, which may be fixed or variable length. This file organization is common on mainframe and midrange systems, such as MVS, VM/CMS, OS/400 and VMS, which support record oriented filesystems. P or PAGE structure (page oriented). Files are divided into pages, which may either contain data or metadata; each page may also have a header giving various attributes. This file structure was specifically designed for TENEX systems, and is generally not supported on other platforms. RFC1123 section 4.1.2.3 recommends that this structure not be implemented. Most contemporary FTP clients and servers only support STRU F. STRU R is still in use in mainframe and minicomputer file transfer applications.
Қосымша командалар
FTP-нің жаңа нұсқалары Modify Fact: Modification Time (MFMT) командасын қолдайды, ол клиентке файлдың атрибутын қашықтан өзгертуге мүмкіндік береді, соның арқасында файлдарды жүктегенде осы атрибут сақталады. Файлдың қашықтағы уақыт белгісін алу үшін MDTM командасы қолданылады. Кейбір серверлер (және клиенттер) екі аргументі бар MDTM командасының стандартты емес синтаксисін қолдайды, ол MFMT командасымен бірдей жұмыс істейді.
Кіру
FTP жүйеге кіру үшін қалыпты пайдаланушы аты және пароль схемасы қолданылады. Егер клиент ұсынған ақпарат сервер қабылдаса, сервер клиентке сәлемдеме жібереді және сессия басталады. Ұсынылған деректерге ешқандай тексеру жасалмайды. Бағдарламалық жасақтама жаңартуларын ұсыну мақсатындағы көптеген FTP хосттары анонимді кіруге рұқсат береді. Ол SFTP-ді қолдамайды. Linux-та KDE-нің негізгі файлдық менеджерлері (Dolphin және Konqueror) FTP және SFTP-ні де қолдайды. Android-де Samsung Galaxy құрылғысындағы My Files файлдық менеджеріне FTP және SFTP клиенті енгізілген.
Веб- шолғышы
Көп уақыт бойы, көптеген таралған веб-браузерлер FTP серверлерінде сақталған файлдарды жүктеуге қабілетті болды, бірақ олардың барлығы FTPS сияқты протокол кеңейтімдерін қолдамады. Егер HTTP-URL орнына FTP-URL берілсе, қашықтағы сервердегі қолжетімді мазмұн басқа веб-мазмұн сияқты көрсетіледі. Google Chrome Chrome 88 нұсқасында FTP қолдауын толығымен жойды, бұл Microsoft Edge сияқты басқа Chromium негізделген браузерлерге де әсер етті. Firefox 88 нұсқасында FTP қолдауы әдепкі бойынша өшірілді, ал Firefox 90 нұсқасы қолдауды толығымен тоқтатты. Кейбір браузерлер, мысалы, мәтіндік Lynx, әлі де FTP-ні қолдайды.
Синтаксисі
FTP URL синтаксисі , ftp://[user[:password]@]host[:port]/[url path] нысанында сипатталған (құшақтағы бөліктер міндетті емес). Мысалы, ftp://public.ftp-серверлер.мысал.com/mydirectory/myfile.txt URL-і public.ftp-серверлер.мысал.com серверіндегі mydirectory каталогындағы myfile.txt файлына FTP ресурсы ретінде сілтеме жасайды. ftp://user001:secretpassword@private.ftp-серверлер.мысал.com/mydirectory/myfile.txt URL-і осы ресурсқа қол жеткізу үшін пайдаланушы аты мен парольді көрсетеді. Пайдаланушы аты мен парольді көрсету туралы толық ақпаратты браузерлердің нұсқаулықтарынан (мысалы, Firefox және Internet Explorer) табуға болады. Көптеген веб-браузерлер әдепкі бойынша пассивті (PASV) режимді қолданады, бұл соңғы пайдаланушының қауіпті қабырғаларын оңай басып өтуге мүмкіндік береді. Пайдаланушының түбірлік емес үй каталогы болған жағдайларда, әртүрлі браузерлер жол шешуді әртүрліше қарастырды.
Жүктеу менеджері
Көптеген жүктеу менеджерлері FTP серверінде сақталған файлдарды қабылдай алады, ал кейбіреулері FTP серверіндегі файлдарды жүктеуге арналған интерфейсті ұсынады. DownloadStudio FTP серверінен файлды жүктеу ғана емес, сонымен қатар FTP серверіндегі файлдар тізімін көруге мүмкіндік береді.
Басқа
LibreOffice 7.4 нұсқасынан бастап FTP қолдауын қолданудан шығарылғанын хабарлады, ал 24.2 нұсқасында ол толығымен жойылды.
FTPS
Explicit FTPS – бұл FTP стандартының кеңейтілген нұсқасы, ол клиенттерге FTP сеанстарын шифрлауды сұрауға мүмкіндік береді. Бұл "AUTH TLS" командасын жіберу арқылы іске асырылады. Сервер TLS сұрамайтын қосылымдарды қабылдау не қабылдамау құқығына ие. Implicit FTPS – SSL немесе TLS қосылымын міндетті түрде пайдалануды талап еткен FTP-нің ескірген стандарты. Ол қарапайым FTP-ден өзге порттарды пайдалану үшін арналған.
SSH файлдарды беру протоколы
SSH файлдарды беру протоколы (тарих бойынша SFTP деп қысқартылған екі протоколдың екіншісі) файлдарды тасымалдайды және пайдаланушылар үшін ұқсас командалар жиынтығына ие, бірақ файлдарды беру үшін Secure Shell протоколын (SSH) пайдаланады. FTP-ден айырмашылығы, ол командаларды да, деректерді де шифрлайды, осылайша парольдер мен құпия ақпараттың желі арқылы ашық түрде берілуіне жол бермейді. Ол FTP бағдарламалық қамтамасымен үйлесімді емес, алайда кейбір FTP клиенттері SSH файлдарды беру протоколын қолдайды.
Trivial файлдарды беру протоколы
Trivial File Transfer Protocol (TFTP) - клиентке файлды алыс хосттан алуға немесе оған файлды салуға мүмкіндік беретін қарапайым, қадамдық FTP. Оның басты қолданылуларының бірі – жергілікті желіден жүктелудің бастапқы кезеңдерінде, себебі TFTP-ні жүзеге асыру өте оңай. TFTP қауіпсіздіктен және File Transfer Protocol сияқты күшті файлдарды беру протоколдары ұсынатын көптеген кеңейтілген мүмкіндіктерден мүлдем құрылақан. TFTP алғаш рет 1981 жылы стандартталды, ал протоколдың қазіргі нұсқауын мына жерде табуға болады.
Қарапайым файлдарды беру протоколы
Жай файлдарды беру протоколы (алғашқы протокол SFTP деп қысқартылған), TFTP және FTP арасындағы күрделілік деңгейі орташа (қауіпсіз емес) файлдарды беру протоколы ретінде ұсынылған. Ол Интернетте кеңінен қабылданбады және қазір IETF тарапынан тарихи мәртебеге ие. Ол 115 порт арқылы жұмыс істейді және көбінесе SFTP аббревиатурасын қолданады. Онда 11 командадан тұратын командалар жиынтығы бар және үш түрлі деректерді беруді қолдайды: ASCII, бинарлық және үздіксіз. Сөз өлшемі 8 биттің еселігіне тең жүйелер үшін бинарлық және үздіксіз деректерді беруді іске асыру бірдей болады. Протокол сонымен қатар пайдаланушы идентификаторы мен парольмен кіруді, иерархиялық каталогтарды және файлдарды басқаруды (атауын өзгерту, жою, жүктеу, көшіру, үстінен жазумен көшіру және қосымшамен көшіруді қоса) қолдайды.