Methods for transferring unspecified data files, may be usable for various kinds of video applications. When transferring data using a method for general data transfer, the server has no knowledge of the format of the files transferred; there is for instance no way to tell the server to skip a few frames ahead. Possible uses are thus video on demand systems with one of the following playback schemes:
A widely used protocol for transferring files on the Internet, is File Transfer Protocol (FTP) [33]. An FTP client program, normally operated by a human user, connects to a server using TCP. The user may send, receive and delete files, create and remove directories, and perform other file operations across the network. Unrestricted use of FTP normally requires the user to have an account on the server host. The FTP session is then initiated by the user providing a user name and a password. A popular way of distributing publicly available files on the Internet, is using anonymous FTP services, where the user may log in to a public area without having an account on the server host. Users logging in anonymously, are normally restricted to doing downloads only.
Even though the WWW is designed to envelope existing protocols, a new
protocol was defined for it. The Hypertext Transfer Protocol (HTTP)
[35] allows the Web to surmount the problems of different
data types using negotiation of data representation
[50]. In contrast to FTP, which operates directly on the
server file system using file- and directory names, HTTP identifies
documents using Uniform Resource Locators (URLs, described in
section 4.1 on page ).
HTTP is a ``one-shot'' protocol: The client opens a TCP-connection to the server, normally on port 80, and sends it's request. The server in turn sends it's response, and closes the connection. Several requests to the same server, requires establishing new connections. The repeated reconnectioning that frequently occurs when fetching Web pages, puts an unnecessary load on both the client and the server host, along with the network itself. New versions of HTTP will probably allow a connection to be kept open as long as needed.
The data type negotiation is done using MIME-like headers in both the
request and the response (MIME [51] is briefly described in
section 4.2 on page ).
Although mainly being used for transferring data from the server to the client by request, the HTTP standard also defines methods for sending data to the server, used for instance in fill-out forms embedded in HTML-documents. Fill-out forms are handled by special programs running on the server side, communicating with the HTTP-server using the Common Gateway Interface (CGI) protocol [52].