Reference articles on history, science, culture and more
Encyclopedia

Upload

Computer file operation

Uploading refers to transmitting data from one computer system to another through means of a network. Common methods of uploading include: uploading via web browsers, FTP clients, and terminals (SCP/SFTP). Uploading can be used in the context of (potentially many) clients that send files to a central server. While uploading can also be defined in the context of sending files between distributed clients, such as with a peer-to-peer (P2P) file-sharing protocol like BitTorrent, the term file sharing is more often used in this case. Moving files within a computer system, as opposed to over a network, is called file copying.

Uploading directly contrasts with downloading, where data is received over a network. In the case of users uploading files over the internet, uploading is often slower than downloading as many internet service providers (ISPs) offer asymmetric connections, which offer more network bandwidth for downloading than uploading.

01Definition

Uploading is defined as the act of transferring something (such as data or files), from a computer or other digital device to the memory of another device (such as a larger or remote computer) especially via the internet.

02Historical development

Remote file sharing first came into fruition in January 1978, when Ward Christensen and Randy Suess, who were members of the Chicago Area Computer Hobbyists' Exchange (CACHE), created the Computerized Bulletin Board System (CBBS). This used an early file transfer protocol (MODEM, later XMODEM) to send binary files via a hardware modem, accessible by another modem via a telephone number.

In the following years, new protocols such as Kermit were released, until the File Transfer Protocol (FTP) was standardized 1985 (RFC 959). FTP is based on TCP/IP and gave rise to many FTP clients, which, in turn, gave users all around the world access to the same standard network protocol to transfer data between devices.

The transfer of data saw a significant increase in popularity after the release of the World Wide Web in 1991, which, for the first time, allowed users who were not computer hobbyists to easily share files, directly from their web browser over HTTP.

Resumability of file transfers

Transfers became more reliable with the launch of HTTP/1.1 in 1997 (RFC 2068), which gave users the option to resume downloads that were interrupted, for instance due to unreliable connections. Before web browsers widely rolled out support, software programs like GetRight could be used to resume downloads. Resuming uploads is not currently supported by HTTP, but can be added with the Tus open protocol for resumable file uploads, which layers resumability of uploads on top of existing HTTP connections.

03Types of uploading

Client-to-server uploading

Transmitting a local file to a remote system following the client-server model, e.g., a web browser transferring a video to a website, is called client-to-server uploading.

Remote uploading

Transferring data from one remote system to another remote system under the control of a local system is called remote uploading or site-to-site transferring. This is used when a local computer has a slow connection to the remote systems, but these systems have a fast connection between them. Without remote uploading functionality, the data would have to first be downloaded to the local system and then uploaded to the remote server, both times over a slower connection. Remote uploading is used by some online file hosting services. Another example can be found in FTP clients, which often support the File eXchange Protocol (FXP) in order to instruct two FTP servers with high-speed connections to exchange files. A web-based example is the Uppy file uploader that can transfer files from a user's cloud storage such as Dropbox, directly to a website without first going to the user's device.

Peer-to-peer

Peer-to-peer (P2P) is a decentralized communications model in which each party has the same capabilities, and either party can initiate a communication session. Unlike the client-server model, in which the client makes a service request and the server fulfils the request (by sending or accepting a file transfer), the P2P network model allows each node to function as both client and server. BitTorrent is an example of this, as is the InterPlanetary File System (IPFS). Peer-to-peer allows users to both receive (download) and host (upload) content. Files are transferred directly between the users' computers. The same file transfer constitutes an upload for one party, and a download for the other party.

Watch videos about UploadExplainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article Upload, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.