Jaki jest sens trybu ASCII na FTP?


17

Dlaczego istnieje tryb ASCII na FTP, który jest powszechny w dzisiejszych programach i implementacjach FTP? Dlaczego nie zawsze używać plików binarnych niezależnie od danych?

Odpowiedzi:


24

W razie wątpliwości przeczytaj RFC :

Struktura plików jest domyślna, którą należy przyjąć, jeśli nie użyto polecenia STRUcture, ale zarówno pliki, jak i struktury rekordów muszą być akceptowane dla plików „tekstowych” (tj. Plików z TYPE ASCII lub EBCDIC) przez wszystkie implementacje FTP. Struktura pliku wpłynie zarówno na tryb przesyłania pliku (patrz rozdział o trybach transmisji), jak i na interpretację i przechowywanie pliku.

„Naturalna” struktura pliku będzie zależeć od tego, który host przechowuje plik. Plik kodu źródłowego będzie zwykle przechowywany na komputerze mainframe IBM w rekordach o stałej długości, ale na DEC TOPS-20 jako strumień znaków podzielony na linie, na przykład przez. Jeśli transfer plików między takimi różnymi stronami ma być przydatny, musi istnieć sposób, aby jedna strona rozpoznała założenia drugiej strony dotyczące pliku.

itp. itd. Krótko mówiąc, ma to zapewnić, że reprezentacje tekstowe w jednym kodowaniu zostaną poprawnie przekonwertowane po przesłaniu na hosty przy użyciu innego kodowania.


W razie wątpliwości: wyszukaj w Google i znajdź odpowiedź na StackExchange.
ke4ukz

4

Ponieważ różne systemy operacyjne (Windows, UNIX, VAX) stosują różne metody zakończenia linii dla prostych plików tekstowych.

Windows (DOS) używa pary CR / LF, UNIX używa tylko jednego z nich. Tryb ASCII konwertuje pary CRLF, a tryb BIN nie.

Ron


4
Wspominasz o czymś więcej niż o różnicach w kodowaniu końca linii, ale także o różnicach w kodowaniu samych znaków, takich jak różnica między ASCII a EBCDIC. Odpowiedź stron @Sinan, specyfikacja udokumentowana w RFC-959
Tall Jeff

1

Myślę, że to tylko dlatego, że czasami jest to wygodne. W czasach, gdy FTP było sposobem, w jaki pobierałeś pliki z jednego systemu do drugiego, było to duże oszczędzanie czasu - nie musiałeś wiedzieć, jaki system był na drugim końcu, aby mieć czytelny plik tekstowy.

Ale tak, dziś jest to po prostu uciążliwość. Po prostu zepsuta maszyna dla niewtajemniczonych!


1

Tryb ASCII miał swoje miejsce w czasach, gdy kodowanie znaków i EOL było prawdziwym problemem, ale chciałbym, aby klienci ftp usunęli, a może po prostu ukryli tę opcję dzisiaj. W dzisiejszych czasach to głównie tylko konwencje EOL, które są pomieszane między systemami, ale zauważyłem, że większość przyzwoitych edytorów tekstowych już się tym nie przejmuje. Aby uniknąć uszkodzenia plików binarnych (a nawet niektórych tekstowych), zalecam po prostu używanie trybu binarnego do wszystkiego.


-1

Tryb ASCII służy do tego, aby oprogramowanie mogło automatycznie zmieniać znaki EOL na odpowiednie wartości dla klienta / serwera, w zależności od tego, czy przesyłasz / pobierasz. Jeśli przesyłasz do tego samego typu systemu, którego używasz, nie ma różnicy w tych trybach.

Powodem tego trybu jest jednak to, że nie wszystkie programy we wszystkich systemach poprawnie obsługują EOL, które nie są dokładnie właściwym typem EOL (na przykład wiele oprogramowania Windows będzie obsługiwać tylko „\ r \ n” i będzie przeszkadzać okropne w „\ n”).


„w tych trybach nie ma różnicy”. - To nie jest prawda. Wysłanie pliku binarnego w trybie ascii może go uszkodzić. Źle.
Beefster,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.