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?

zildjohn01
źródło

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.

Sinan Ünür
źródło
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

użytkownik14456
źródło
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!

David Markle
źródło
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.

bumerang
źródło
-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”).

Matthew Scharley
źródło
„w tych trybach nie ma różnicy”. - To nie jest prawda. Wysłanie pliku binarnego w trybie ascii może go uszkodzić. Źle.
Beefster,