The goal of the present HTTPFS project is to enable access to remote files, directories, and other containers (e.g., structured text documents, OS tables) through an HTTP pipe. HTTPFS system permits retrieval, creation and modification of these resources as if they were regular files and directories on a local filesystem. The remote host can be any UNIX or Win9x/WinNT box that is capable of running a Perl CGI script, and accessible either directly or via a web proxy or a gateway. HTTPFS runs entirely in user space. The current implementation fully supports reading as well as creating, writing, appending, and truncating of files on a remote HTTP host. HTTPFS provides an isolation level for concurrent file access stronger than the one mandated by POSIX file system semantics, closer to that of AFS. Both a programmatic interface with familiar open()
, read()
, write()
, close()
, etc. calls, and an interactive interface, via the popular Midnight Commander file browser, are provided.
HTTPFS offers a glimpse of one of Plan9's jewels -- a uniform file-centric naming of disparate resources -- but without Plan9. This file system showcases HTTP, which is capable of far more than merely carrying web pages. HTTP can aspire to be the kingpin protocol that glues computing, storage, etc. resources together to form a distributed system -- the role 9P plays in Plan9.
HTTPFS articles argue that unlike a popular catch phrase, it is the OS itself that is the browser.
The client framework has been tested on GNU/Linux 2.0.36, HP-UX 10.xx, Sun Ultra-2/Solaris 2.6
An HTTPFS server will run on anything that can execute a Perl CGI script -- and this really means anything. The server has been tested on HP-UX B10.xx with a Netscape Server/1.12, Sun/Solaris 2.6 and Linux with an Apache/1.3.x server, and with Microsoft-IIS on WinNT 4.0.
Complete source code archive off this site [.tar.gz
, 155K]
A network file system over HTTP:
remote access and modification of files and files [a separate site]
A USENIX'99 Freenix track paper
Plan 9 from Bell Labs: Rob Pike, Dave Presotto, Sean Dorward, Bob Flandrena, Ken Thompson, Howard Trickey, Phil Winterbottom
GNU Midnight Commander
Bridging HTTP FS and a Network File System MCFS [plain text file],
A USENET article posted on comp.os.linux.development.system, comp.infosystems.www.misc, comp.os.linux.misc, comp.client-server, comp.os.misc newsgroups on Fri, 21 Aug 1998 19:59:18 GMT.
HTTP Virtual File System for Midnight Commander [collection of .html
pages]
Work-In-Progress Report, USENIX 1998 Annual Technical Conference.
New Orleans, Louisiana, June 15-19, 1998.
"Announce: HTTP VFS: Midnight Commanding remote *WinNT* files",
A USENET article posted on comp.os.linux.development.system, comp.infosystems.www.misc, comp.os.linux.misc, comp.client-server, comp.os.misc, comp.os.ms-windows.networking.misc newsgroups on Sun, 17 May 1998 19:55:18 GMT.
"Announce: HTTP file system. Browser := OS; Midnight Commanding remote files" [.html
document],
A USENET article posted on comp.os.linux.development.system, comp.infosystems.www.misc, comp.os.linux.misc, comp.os.research
newsgroups on Mon, 02 Feb 1998 11:11:09.
oleg-at-okmij.org