`
bzhang
  • 浏览: 253563 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

FTP传输的两种模式:binary vs ascii

阅读更多

What is ASCII?

ASCII: the American Standard Code for Information Interchange. It's the code by which computers have stored and exchanged text for the last 40 or more years.

ASCII has been the mainstay of information interchange for four decades, but it has limitations. Designed during a time when computer memory (RAM) was very expensive, it used only the low 7 of the 8 bits in a standard byte. This was adequate, and allowed the leftover bit to be used (occasionally) for other purposes.

What is Binary?


Binary is the number system based on 2. In this context, though, it refers to numeric, as opposed to text, information. While ASCII text uses only 7 of the 8 bits in a byte, numbers use all 8.

Not only do numbers themselves use all 8 bits, but so do most other types of computerized information (all of which use numbers to represent information), including:

  • programs
  • images
  • databases
  • music
  • video
  • word processing documents
  • compressed files

It comes as a surprise to many people that word processing documents, such as Microsoft Word and Word Perfect files, are binary rather than ASCII. That's because they store a great deal of information besides just the letters: they contain font and formatting information, images, user preferences, and many other "bells and whistles".


ASCII and Binary in FTP

Why Does FTP Have Both?


FTP was developed at a time when typical modem speeds were 110 to 300 bits per second (as compared with 28,000 to 56,000 today). Since ASCII only used 7 bits, long files could be transmitted more quickly by not sending all the unused bits.

The big drawback is that if a file that uses all 8 bits in each byte is accidentally sent using ASCII transfer, it will lose 1/8 of its information content. In most files, even the loss of one bit is enough to make it invalid, and losing 1/8 makes them totally unreadable. So ASCII transfer can be fatal to a file's health!

With today's higher speeds, the time lost by sending all 8 bits of an ASCII file is practically unnoticeable. But FPT has incorporated features into ASCII transfer that make it useful for other reasons, so the two modes remain.

The fact that they both remain means that FTP users need to exercise great caution in transferring files!

What Extra Services Does ASCII Transfer Have?


What features are so useful that FTP retains ASCII transfer in spite of the risk of ruining files in transmission? There are two: end-of-line translation, and end-of-file translation.

Although ASCII has standardized almost all aspects of text files shared between computers, there are two areas where operating systems have "agreed to disagree". One is how you symbolize the end of a line, the other is how you mark the end of a file.

When files are transferred using ASCII mode, FTP clients and servers will translate the different symbols into the native "language" of the receiving computer. This eliminates files that appear to have "garbage" in them, or that appear to be all one long line stretching from here to the horizon. There are some programs used in making the Web interactive, that depend on having the right line-break characters.

In case you're interested or need to know the details, here they are:

  ASCII character numbers
followed by
[Character Names]
System End-of-Line End-of-File
IBM, DOS, Windows, VAX-VMS 13+10
[CR]+[LF]
26
[^Z]
Linux, Unix 10
[LF]
04
[^D]
Macintosh OS 1-9 13
[CR]
04
[^D]
Macintosh OS X Flexible: either
[LF] or [CR]
04
[^D]

 


How to Set Transfer Mode

Setting Transfer Mode in Character-Based FTP Clients


If you use a command-line FTP client: The default mode is ASCII. Every time you intend to transfer a binary file, you need to type the command,
binary
before typing in the get or put command.

FTP will stay in binary mode until you change it, so if you then transfer ASCII files, you need to type the command
ascii
before typing the get or put command.

How To Set Transfer Mode in a GUI-based FTP Client


GUI-based FTP clients are each different, but since we use WS-FTP at WCC, we'll focus on that.

WS-FTP has three controls for mode: ASCII , Binary , and Auto . Auto is a check box, and does not affect the status of the other two, while ASCII and Binary are "radio buttons", meaning you have to choose one or the other. Here's how they work:

  • If Auto is OFF (unchecked), and:
    • ASCII is ON : All transfers will be in ASCII mode.
    • Binary is ON : All transfers will be in binary mode.
  • If Automatic is ON (checked), files are transferred in binary mode unless the extension is listed in a table set up in WS-FTP. Details follow...

"Automatic" Mode


The behavior of WS-FTP in Auto mode depends on a list of file extensions it keeps.You can access that list by clicking the Options button at the bottom of the WS-FTP LE window (or the top of the WS-FTP Pro window).

In the Options dialog, click the Extensions button. This brings you to the list of extensions. The illustration at left shows the default list of ASCII extensions - only .TXT. (This is not case-sensitive.)

If you're transferring Web files, HTML files could also be in this list.In addition, there are a number of other file type used on the Web that are text files and should be transferred using ASCII mode. These are listed in the table in the next section.


Summary: Practical Advice

WS-FTP Help offers this advice:
  • A file that is text, HTML, postscript, other ASCII format (.txt, .html, .htm, .cgi), or EBCDIC should be transferred in ASCII mode. Note: Transferring a binary file in ASCII format can damage the file.
  • A file that is a bitmap, an executable, or compressed (.bmp, .jpg, .exe, .zip) should be transferred in binary mode. (Binary mode should also be used if there is no file extension or the file extension is not registered.)

Here's a quick overview of files and how they should be transferred:

ASCII Binary
.txt ASCII text .txt Unicode text - see note below
.htm
.html
HTML
Web page
.jpg
.jpeg
JPEG image
.xml Extensible Markup Language .gif CompuServe GIF image
.cgi Common Gateway Interface script .png Portable Network Graphics
.pl Perl scrips must be transferred in ASCII .bmp Windows bitmap image
.php PHP program script .doc MS Word or Word Perfect document
.cf Cold Fusion script .xls MS Excel spreadsheet
.svg Scalable Vector Graphics image .mdb Microsoft database file
.asp MS Active Server Pages script .exe
.com
.dll
Executable programs
.rtf Rich Text Format .zip Compressed files
.ps Postscript files .pdf Adobe Acrobat Portable Document Format files

Note about Unicode

Unicode is the system which ultimately will replace ASCII, because it has the potential to include all the characters of all human languages. It can do this because instead of 7 bits it can use 8, 16, or 32. It is still evolving, but more and more programs are coming to use it.

Since it uses all the bits in each byte, it must be transferred in binary mode. Unfortunately, the extension .txt is routinely used for Unicode text files, making it impossible to tell from the extension whether to transfer it in ASCII or binary.

 


 About this document...

Click here for a review of this module.

Audience:

This is for people who are familiar with the basics of FTP and need to distinguish between files appropriate for binary transfer, and those appropriate for ASCII transfer.

Objectives:

When you successfully complete this lesson, you will be able to...

  1. Explain what is meant by "binary" files
  2. Explain what is meant by "ASCII" files
  3. Identify ASCII and Binary files by their extensions
  4. Discuss the reasons for maintaining a distinction between ASCII and binary transfer
  5. Recognize the commands for switching between ASCII and binary transfer in command-line FTP clients
  6. Recognize the commands for switching between ASCII and binary transfer a GUI FTP client such as WS-FTP
  7. Discuss the uses and proper setup of "automatic" mode in WS-FTP

Module NA36c:

This document is part of a modular instruction series in Computer Instruction. For more information, see the overview or the list of modules in this series, NA: Network Applications. This document has been used in the following classes: INP 150, INP 152, INP 220.

Author:

Laurence J. Krieg

Institution:

Department of Computer Information Systems , Washtenaw Community College
History: Original: 16 Oct 2002
This version posted  Thursday, 01-Jun-2006 09:37:40 EDT
Copyright: Copyright © 2002, Laurence J. Krieg, Washtenaw Community College
Instructors: You may point to this file in your Web-based materials.

Students: you may make a copy for your personal use.

分享到:
评论

相关推荐

    ftp的ASCII模式和Binary模式的区别

    在传输过程中,FTP提供了两种主要的数据传输模式:ASCII模式和Binary模式,这两种模式的选择直接影响了文件传输的质量和完整性。 #### ASCII模式 ASCII模式主要用于传输文本文件。在这种模式下,FTP会将文本文件中...

    ftp传输文件模式详解

    在FTP传输过程中,有两种主要的文件传输模式:ASCII(文本)模式和二进制(Binary)模式,这两种模式有着不同的特性和适用场景。 1. ASCII(文本)模式: ASCII模式主要用于传输文本文件,如文本编辑器创建的文档...

    FTP数据传输类

    FTP有两种模式:ASCII模式(文本模式)和二进制模式(Binary模式)。ASCII模式适用于纯文本文件,会自动进行换行符转换。二进制模式适合所有类型文件,如图片、音频、视频和二进制程序。 5. 被动与主动模式: ...

    FTP 文件传输 基于JAVA的网络编程

    FTP支持两种传输模式:ASCII(文本)模式和二进制(Binary)模式。在ASCII模式下,字符数据在传输前会进行转换,适合文本文件。二进制模式则适用于图片、音频、视频等非文本文件,数据按原样传输。 安全性与SSL/TLS...

    关于FTP传输

    FTP支持两种传输类型:ASCII和BINARY。ASCII模式适用于文本文件,因为它会进行字符转换以适应不同系统的行结束符。然而,对于二进制文件如图片、压缩包等,应使用BINARY模式,以确保数据的完整性。 ```java // 使用...

    ftp一句话下载payload(第四十课)1

    在本文中,我们将深入探讨FTP的一句话下载payload,并重点分析两种主要的传输模式:ASCII和二进制(Binary)。 FTP的一句话下载payload通常是指在批处理文件(如BAT脚本)中编写的一系列命令,这些命令可以简洁地...

    java源码:ftp文件传输.zip

    FTP传输有两种模式:ASCII(文本)和BINARY(二进制)。根据文件类型选择合适的模式,例如图片、音频和视频文件应使用BINARY模式。 7. **设置工作目录**: `changeWorkingDirectory`方法用于切换当前工作目录,这...

    FTP 客户端程序源码

    3. **传输模式**:FTP有两种传输模式,ASCII(文本)模式和二进制(Binary)模式。ASCII模式适用于处理文本文件,自动处理行结束符转换;二进制模式则用于图像、音频、视频等所有非文本文件,保持数据原样传输。 4....

    java实现FTP服务器

    1. **数据传输模式**:FTP支持ASCII和Binary两种数据传输模式。ASCII模式适用于文本文件的传输,而Binary模式则适用于所有类型的二进制文件。 2. **目录管理**:FTP提供了对远程目录的查看(ls)、切换(cd)等功能...

    FTP:文件传输协议(指令及响应代码)

    4. **传输模式指令**:`ASCII`模式和`BINARY`模式,用于指定数据传输格式。 FTP协议中的响应代码是三位数字,分为三部分: - 第一位数字表示响应类别: - `1xx`:临时响应,表示服务器已接收到命令,但还需要更多...

    JAVA FTP 文件传输 服务端 客户端

    3. **数据传输**: FTP协议分为控制连接和数据连接,服务端需要处理这两种连接的建立与关闭。数据传输可以是主动模式(服务器主动打开数据连接)或被动模式(客户端打开数据连接)。 4. **命令解析**: FTP命令如`...

    FTP基本命令的JAVA实现

    FTP支持两种传输模式:ASCII(文本)和BINARY(二进制)。在JAVA实现中,你需要确保根据用户选择的模式正确地转换文件。ASCII模式适用于纯文本文件,而BINARY模式适用于所有类型的文件,包括图像、文档等。 3. **...

    XP中简单FTP

    4. **FTP传输模式**:FTP有两种传输模式,ASCII(文本)模式和二进制(Binary)模式。ASCII模式用于传输文本文件,如HTML、TXT等,而二进制模式用于传输所有其他类型的文件,如图片、音频、视频或可执行文件。根据...

    FTP客户端程序设计

    FTP支持ASCII(文本)和二进制(binary)两种传输类型。ASCII模式适用于纯文本文件,会自动处理换行符转换;二进制模式适用于所有其他文件,如图片、音频、视频等,不作任何转换。 6. 断点续传: FTP客户端可以...

    FTP 实现远程上传下载

    FTP的工作基于TCP协议,分为两种模式:主动模式和被动模式。主动模式下,客户端首先建立一个控制连接,然后服务器发起数据连接。而在被动模式中,服务器开启一个新的端口等待数据连接,由客户端发起连接。这种模式...

    我写的FTP上传工具

    4. 选择传输模式:FTP支持ASCII和二进制两种模式,二进制模式(BINARY)通常用于文件上传,以避免因文本转换而引发的问题。 5. 上传文件:使用`STOR`命令指定要上传的文件名,FTP服务器会打开一个数据连接来接收文件...

    unix的ftp使用详解

    FTP支持两种主要的传输模式:ASCII模式和Binary模式。这两种模式决定了数据如何被传输: - **ASCII模式**:主要用于文本文件的传输。在这种模式下,FTP会尝试对文本文件进行转换,比如将换行符等特殊字符转换为标准...

    FTP图片上传

    4. **FTP传输模式**:FTP有两种传输模式,ASCII模式和二进制模式(Binary)。ASCII模式适合文本文件,而图片、音频、视频等二进制文件应使用二进制模式。如果误用ASCII模式上传图片,可能会导致图片损坏。 5. **...

    FTP 文件管理模块

    4. 二进制和文本模式:FTP支持两种传输模式,二进制(BINARY)模式用于所有类型的文件,包括图像、程序等;文本(ASCII)模式适用于纯文本文件,会进行一些字符转换以适应不同系统的文本编码。 5. 多线程与并发:...

    ftp一句话下载payload(第四十课).docx

    FTP支持两种主要的文件传输模式:ASCII模式和Binary模式。 1. **Binary模式**:此模式适用于所有类型的文件传输,包括文本文件和非文本文件,如执行文件、图片文件等。在Binary模式下,FTP服务器不会对文件内容进行...

Global site tag (gtag.js) - Google Analytics