W3C home > Mailing lists > Public > www-talk@w3.org > March to April 1996

Re: PUT and FTP?

From: Gregory Holmberg <holmberg@frame.com>
Date: Fri, 26 Apr 1996 12:58:32 -0700
Message-Id: <9604261258.ZM13761@lotus>
To: Blake Sobiloff <bsobilof@inet.ed.gov>
Cc: mwexler@frame.com, www-talk@w3.org
Blake,


On Apr 26,  2:29pm, Blake Sobiloff wrote:
> >I want this in case the Web server the user is connected to
> >doesn't support HTTP PUT (as the two most popular servers currently,
> >NCSA and Apache, don't).
>
> Huh? I've been using HTTP PUT with my SunOS copy of HTTPd v1.5 without
> problem. Of course you have to have a CGI script write the data out to
> disk, but that's not a big deal.

Are you referring to NCSA?  I'm guessing from the "v1.5".  Other
servers also call their executable "httpd", so it's confusing.

OK, so apparently NCSA works.  I didn't know.  It's certainly
not documented.  NCSA's response to the recent WebCompare survey
(http://www.webcompare.com) indicated that they didn't.  Both they
and Apache indicated support for it in the future.  Yes, I noticed code
for PUT in their code, but given the above, I assumed it was a
prototype, and didn't really work.  I'm glad to hear it does.

The only server I could find any documentation on doing PUT
for was the old CERN server at www.w3.org.  These instructions
for a "writable server" are available at http://symposia.inria.fr/
symposia/userdoc/put. I did get this to work.  I have attached
the CGI shell script from these instructions.  Does your CGI
script look much different?



#!/bin/ksh
#
#	Script to handle PUT
#

SYS=`uname`
CGIPARSE=$CGIPARSE

# $PATH_TRANSLATED contains the absolute path of the file being accessed

LOGFILE=/lotus/pkg/src/web/CERN/server_root/logs/put.log
> $LOGFILE
/bin/date >> $LOGFILE
/usr/bin/id >> $LOGFILE
echo "***************************" >> $LOGFILE
echo "
SERVER_SOFTWARE=$SERVER_SOFTWARE
SERVER_NAME=$SERVER_NAME
GATEWAY_INTERFACE=$GATEWAY_INTERFACE
SERVER_PROTOCOL=$SERVER_PROTOCOL
SERVER_PORT=$SERVER_PORT
REQUEST_METHOD=$REQUEST_METHOD
HTTP_ACCEPT=$HTTP_ACCEPT
PATH_INFO=$PATH_INFO
PATH_TRANSLATED=$PATH_TRANSLATED
SCRIPT_NAME=$SCRIPT_NAME
QUERY_STRING=$QUERY_STRING
REMOTE_HOST=$REMOTE_HOST
REMOTE_ADDR=$REMOTE_ADDR
AUTH_TYPE=$AUTH_TYPE
REMOTE_USER=$REMOTE_USER
REMOTE_IDENT=$REMOTE_IDENT
CONTENT_TYPE=$CONTENT_TYPE
CONTENT_LENGTH=$CONTENT_LENGTH
LOG_FILE=$LOG_FILE/tmp/your.gen.log
" >> $LOGFILE
echo "***************************" >> $LOGFILE

# Answering ...
cat<<_EOT_
Content-Type: text/html

<!DOCTYPE HTML SYSTEM "HTML.dcl" [
<!NOTATION GrifImg SYSTEM "GrifImg">
<!NOTATION GrifIDoc SYSTEM "GrifIncludeDoc">
]>
<HTML>
<?GrifModel "htmlp">
<HEAD>
<TITLE>PUT script reply</TITLE>
</HEAD>
<BODY>
<P>
_EOT_

# Arhiving ...
mv -f $PATH_TRANSLATED.4 $PATH_TRANSLATED.5 2>/dev/null
mv -f $PATH_TRANSLATED.3 $PATH_TRANSLATED.4 2>/dev/null
mv -f $PATH_TRANSLATED.2 $PATH_TRANSLATED.3 2>/dev/null
mv -f $PATH_TRANSLATED.1 $PATH_TRANSLATED.2 2>/dev/null
cp    $PATH_TRANSLATED   $PATH_TRANSLATED.1

# Writing ...
$CGIPARSE -read > $PATH_TRANSLATED

# Answering ...
cat<<_EOT_
<B>
Ok, document stored successfully.
</B>
</BODY>
</HTML>

_EOT_
Received on Friday, 26 April 1996 15:54:11 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 27 October 2010 18:14:19 GMT