HTMLGoodies
The ultimate html resource
Earthweb.com


About the Double-Underlined Links


Become a Partner




Search Clipart.com:



internet.commerce















HTML Goodies : Beyond HTML : Webmaster Tips: So You Want To FTP/Download, Huh?

HTML GOODIES TO GO NEWSLETTER


Other Related Newsletters

So You Want To FTP/Download, Huh?


By Joe Burns

...use these to jump around or read it all
[How FTP Works][ASCII][Binary][An Example]
[Rule of Thumb][Why Not Send Everything as Binary?]
[Finally]


     FTP stands for File Transfer Protocol. It's the concept of moving a file from your storage space to your server so others can look at it. This is one of the basics of HTML, and most people know how to do it, but are confused why items can sometimes be corrupted when transferring. I put this together to try and explain some of the statements I make.

How FTP Works

     FTP is actually very basic. There are about a million different FTP programs you can take off the Internet as shareware or purchase, heck even Netscape and Explorer will allow you to take files, often called "downloading." Obviously then, placing a file from your storage space to the server is called "uploading."

     My guess if that you have your own FTP program already, but if not, you can download one. They come in freeware and shareware. If you want free, try FTP Explorer or the free (limited) version of WSFTP.

If you don't mind spending a couple of bucks after a 30-day trial, click on one of these. I've tried them all and can vouch that they are all good programs. Try either WSFTP full version, CuteFTP or my personal favorite, FTP2000.

     Below, in Table form, is the general interface for a basic FTP program. Yours is something like this. By the way, "interface" is the thing between you and the computer, mainly the graphics. In fact, an interface is anything that acts as a go-between for two items. You and your computer are as good as any two.

ASCII   BINARY

     Files      
     On     
     Your     
      Hard     
      Drive     
<- COPY ->      Files      
     On      
     Your     
     Server     
     
<- VIEW ->
<- DELETE ->
<- RENAME ->

Let Me Explain It...

  • The Bold "ASCII" and "BINARY" at the top are buttons that change the transfer type.
  • The center column of three buttons allows you to click either side of the command to transfer the file from or to the server. See the arrows?

ASCII vs. Binary

     This is the main reason for this tutorial. I get letters all the time asking why images, or Applets, or JavaScripts, don't work. My answer is usually that the person corrupted it in the FTP. That usually confounds the problem further. Here's a more in-depth explanation:
  • ASCII Sometimes called "TEXT" or "TEXT DOS".

     ASCII stands for American Standard Code for Information Interchange. It is text, short and simple. But it is text that is standardized so all computers everywhere understand it. Look at your keyboard. See all those things, those letters and characters? There are actually 128 of them in all. (Count upper and lower case as two).

Now it gets loopy -

     Computers deal with numbers. Period. Yes, you see little letters, but the computer doesn't. It sees numbers--ones and zeros to be exact. Each one or zero is called a "bit." That's short for "binary digit." ASCII is a series of seven one and zero number combinations representing letters and characters. (Some computers now use an "Extended ASCII" that uses eight numbers) An extra digit is often added as a check to see if the other seven are correct. It's called a "parity digit" or "check bit" and through a mathematical equation involving the other seven numbers, it checks to see if the numbers are correct. Here's what some ASCII code looks like:

Symbol ASCII Code Symbol ASCII Code
A 01000000 a 01100001
! 00100001 $ 00100100
Z 01011010 z 01111010
...etc, etc, etc up to 128

     Notice that there are only two numbers involved, one and zero. This is what's known as "binary", two items. THEN WHAT'S THE DIFFERENCE BETWEEN THE TWO?!?!--you ask. I told you this gets loopy. ASCII code is code for text alone. Those 128 groupings of ones and zeros represent text, period.

In terms of FTP: If you are FTPing something that only has text, like an HTML document, use the ASCII mode of your application. More on why in a moment.

  • Binary Sometimes called "Raw Data" or "All Files"

     Binary is best explained in comparison to ASCII. Binary also uses the seven (sometimes eight) digit ones and zeros combinations, but sees the characters in a different light.

    Let's say you are FTPing an applet. Yes, it uses only the 128 characters on the keyboard, but with one major exception...all characters are not equal. If you look at a GIF, or a JPEG, or an image (in an editor) - yes, it looks like text. Remember, the computer sees numbers only, and characters are a good representation of those numbers. You see, the computer doesn't require that you see what happens to work. Text is just so you can get a representation of what it is doing.

     Where a binary transfer differs from ASCII is how it treats the characters used. An Applet needs to not only retain the same characters when it transfers, but also needs to retain the same form. It has to be equally as wide and tall when it arrives at its destination as it was when it left. If it is not - it's corrupted and won't work.

An Example:

     When you create an HTML Document - you may have noticed that adding a ton of spaces between words did not translate into a ton of spaces in the browser window. In addition, where you hit "enter" to jump to the next line didn't mean didley when you posted it. The line broke when it wanted (unless you put in a <BR> command).

     The reason for this is because you saved the document as "TEXT" of one form or another. That only saved the letters, nothing else. Where you hit return didn't mater. Your margin settings weren't saved - only the text. This is why you have to put in tags to make the text do what you want. When you transfer the file over as ASCII, only the text goes, because that's all that is required. Its form is immaterial. You could write your HTML Document as one really, really long line. The computer doesn't care. It changes the text off of the tags, not by the form it was sent. How pretty you make your HTML document doesn't matter.

     Now, imagine you just finished writing an Applet. Yes, it's in text, but the text is more than just a bunch of words. The text is in a certain format. Some of the text represents commands for the computer, and some represents text that will appear on the screen. Still other text represents a jump to the next line. That format of text must be retained. If you send the Applet as ASCII, the transfer literally changes the Applet into a long line of characters - basically it makes it text alone. The different types of commands have lost their meaning. All is now equal. It is corrupted. It will not work.

     If you send (or download) an image as "TEXT" - same thing. The ASCII transfer changes the code into straight text with no special meaning. It is no longer an image but rather a long line of unrelated characters - it is corrupted and it won't work.


Rule of Thumb

This goes for both FTP and downloading!

  • Use ASCII only for transferring HTML Documents.
  • Everything else - goes Binary (or raw data or all files depending on your program)
  • Additional rule - if your HTML Document contains a JavaScript that you know is correct, but doesn't work when you post it, send the HTML Document as Binary. The text might need some minor adjusting, but will probably be fine. The Script is the concern here.


Why Not Send and Save Everything as Binary?

     You can. It's just that sending an HTML document as Binary, tends to mess it up a bit. More than just text is being sent - form is now involved, and it may alter up what you want. Make a point of sending in two forms, binary and ASCII.


Finally!

     The things I said above go for both FTP and downloading!!! Text is text. Applets, images, CGI's and Scripts, are quite different.

     If you download or transfer something and it fails to work - the smart money is that you corrupted it through one or many of your transfers.

    Thanks for stopping by...now go FTP something.

[How FTP Works][ASCII][Binary][An Example]
[Rule of Thumb][Why Not Send Everything as Binary?]
[Finally]

Tools:
Add htmlgoodies.com to your favorites
Add htmlgoodies.com to your browser search box
IE 7 | Firefox 2.0 | Firefox 1.5.x
Receive news via our XML/RSS feed

IT Management Networking & Communications Web Development Hardware & Systems Software Development Earthwebnews.com



JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

Solutions
Whitepapers and eBooks
IBM Whitepaper: Innovative Collaboration to Advance Your Business
Internet.com eBook: Real Life Rails
Avaya Article: Call Control XML - Powerful, Standards-Based Call Control
Internet.com eBook: The Pros and Cons of Outsourcing
Go Parallel Article: Scalable Parallelism with Intel(R) Threading Building Blocks
Internet.com eBook: Best Practices for Developing a Web Site
IBM CXO Whitepaper: The 2008 Global CEO Study "The Enterprise of the Future"
Avaya Article: Call Control XML in Action - A CCXML Auto Attendant
Go Parallel Article: James Reinders on the Intel Parallel Studio Beta Program
IBM CXO Whitepaper: Unlocking the DNA of the Adaptable Workforce--The Global Human Capital Study 2008
Adobe Acrobat Connect Pro: Web Conferencing and eLearning Whitepapers
Go Parallel Article: Getting Started with TBB on Windows
HP eBook: Storage Networking , Part 1
MORE WHITEPAPERS, EBOOKS, AND ARTICLES
Webcasts
Go Parallel Video: Intel(R) Threading Building Blocks: A New Method for Threading in C++
HP Video: Is Your Data Center Ready for a Real World Disaster?
Microsoft Partner Portal Video: Microsoft Gold Certified Partners Build Successful Practices
HP On Demand Webcast: Virtualization in Action
Go Parallel Video: Performance and Threading Tools for Game Developers
Rackspace Hosting Center: Customer Videos
Intel vPro Developer Virtual Bootcamp
HP Disaster-Proof Solutions eSeminar
HP On Demand Webcast: Discover the Benefits of Virtualization
MORE WEBCASTS, PODCASTS, AND VIDEOS
Downloads and eKits
Microsoft Download: Silverlight 2 Software Development Kit Beta 2
30-Day Trial: SPAMfighter Exchange Module
Red Gate Download: SQL Toolbelt
Iron Speed Designer Application Generator
Microsoft Download: Silverlight 2 Beta 2 Runtime
MORE DOWNLOADS, EKITS, AND FREE TRIALS
Tutorials and Demos
IBM IT Innovation Article: Green Servers Provide a Competitive Advantage
Microsoft Article: Expression Web 2 for PHP Developers--Simplify Your PHP Applications
Featured Algorithm: Intel Threading Building Blocks - parallel_reduce
MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES