WWWWW Notes

Tony Sanders (sanders@bsdi.com)
Tue, 10 Aug 1993 16:56:28 -0500


Looks like I'm going to be the first to put my foot in my mouth and offend
a bunch of people by posting my WWWWW notes. Hopefully, these will give
people who weren't there and idea about what went on, spur those who took
better notes to publish, and refresh some attendees memories about what
we did (esp those of you who took off Thursday night to the bar :-).

These are available online at:
<http://www.bsdi.com/HTTP:TNG/WWWWW-notes.etx>
I'll be making corrections to the online version as time passes.

Enjoy,

--sanders

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Notes from WWWWW
================

July 28, 29, 30
---------------

The overall workshop was very positive. There was clearly a lot of stuff
that can be done to enhance the functionality of the Web. In fact,
there was so much to talk about we couldn't even begin to cover it all
(the official note takers should have a complete list). The overall
consensus was to stick to talking about problems we could solve during
the three days of the workshop, this task alone was probably too big
a scope for three days.

There were several "tracks" of discussion going on simultaneously so
my notes only cover topics I attended. These are not complete notes
but I wanted to post this to give everyone an idea about what went on
until the official note takers have time to compile their notes (which
are no doubt more extensive and correct than mine).

The ultimate goal was to define HTML and HTTP/1.0 at a fine enough
level that we could issue RFC's and have a stable base to build on.

Other goals were to study the HTML+ proposed RFC and define what could
be done and what could not (it was agreed that we should define
implementation levels and outline what features must be supported at
each level). I cleverly avoid much of this discussion as it was
probably the most frustrating part of the workshop (so many features,
so little time).

Also, Tim Berners-Lee used a few well spent moments on his soap-box
about how to do things like ISMAP and ISINDEX correctly (which I will
cover in these notes). We also talked about how to define Style Guides
so authors could provide hints to browsers about how to render their
documents best. A new annotation protocol was also designed.

Finally, we discussed the eventuality of having a Consortium take over
certain management functions and overseeing WWW development.

Accomplishments
---------------

* A base Level 0 HTML and HTTP/1.0 was defined
* Consortium goals/responsibilities were outlined
* New Annotation Protocol defined
* Some consensus about Style Guides was reached
* Lots of bugs worked about HTML+
* How to do client profile was defined (a mini-proposal is included)
* Scanned images of all attendees (except marca) online :-)

Remaining Issues
----------------

These are the issues still unresolved in this document (some because
they aren't resolved and some because I don't understand what was
really agreed upon due to poor notes).

* Accept-Encoding:, It's not clear to me that this is the best
solution. See MIME Proposal_
* How Boundary for PUT and POST are going to be implemented.
* Exact syntax for WWW-Link and mappings from all the things
in <HEAD>...</HEAD> to HTTP/1.0 headers. Also, it's not clear
which takes precedence in case of conflict. I think TimBL
will address these issues in the official spec.
* The <LINK REL="Style" HREF="..."> for style guides (in my print-out
it has <LINK STYLE="...">).

Probably others. Please open discussions on www-talk@info.cern.ch.

Details
-------

First, there seemed to be a lot of confusion over the names of various things.

* HTTP/0.9, this is the protocol that only implements GET.
* HTTP/1.0 is also known as HTTP2. This is the HTTP spec that defines
RFC822/MIME headers for HTTP objects.
* HTML is the simple, existing HTML spec
* HTML+ is the new and under development extended spec.

Also, I would like to point out that when I say something like
"it was agreed", this means I agreed and that I thought everyone
else agreed also. Feel free to post corrections.

Defined Implementation Levels -- HTML: Level 0
----------------------------------------------

It was decided to add the following items to the HTML spec before it
goes out for RFC. Browser writers should be implementing these features
RSN. This is not the definitive list, I don't know who owns the problem
for sure. Whoever is going to own this should speak up so people doing
implementations can ask questions.

<BR>
I forget what this was supposed to be, I think it means force a line
break.

<HR>
Horizontal rule, replaces use of ---------------------

&nbsp
Other entities will added also, wait for the spec for details
nbsp means non-breakable white space

allow nested lists (DL NL DL)
ala NCSA Mosaic

<IMG ALT="text to display if you can't display the image" SRC="" ISMAP>
(ISMAP is depreciate, see below about "Accepted: SPACEJUMP")

Allow <DT>'s without <DD>'s
e.g., <DL><DT>one<DT>two<DT>three</DL>

White Space is to be folded
This means "foo bar" should render the same as "foo bar".

<OPINION>
Browsers should also implement at least "Made", "Precedes", "UseIndex",
"Annotation", "Subdocument", "Supersedes", "History" REL and REV
values for use in <LINK>. Support for <BASE> would be real nice also.
</OPINION>

ISMAP
-----

ISMAP is being depreciated (though it's still the only way to make this
work for HTTP/0.9) in favor of using "Accepted: SPACEJUMP" in the HTTP/1.0
headers. Tim Berners-Lee suggested this in one of his soap-box talks.
Several arguments ensued (though I was already converted) but it was
finally agreed that the attributes of an object should not be specified
in the link to that object if at all possible.

Also, a new HTTP/1.0 header WWW-Link: was proposed to allow Index search
redirection in the Object header. For example, to specify an index
redirect for an image that is searchable:

HTTP/1.0 200 Document follows
Date: Tuesday, 10-Aug-93 19:33:11 GMT
Server: plexus/2.2.1
WWW-Link: REL="UseIndex" HREF="http://www.bsdi.com/image-decoder/"
Public: SPACEJUMP, GET
Allowed: SPACEJUMP, GET
MIME-version: 1.0
Last-modified: Saturday, 07-Aug-93 21:14:42 GMT
Content-type: image/gif

Tim will hopefully make this clearer in the HTTP spec.

Defined Implementation Levels -- HTTP/1.0: Level 0
--------------------------------------------------

Browsers/servers should support at least the following HTTP/1.0 object
headers:

Accept:
Accept-Encoding: ** See MIME Proposal_
User-Agent:
Allowed: [SPACEJUMP, GET, PUT, TEXTSEARCH, ...]
Public: [SPACEJUMP, GET, PUT, TEXTSEARCH, ...]
WWW-Link: REL="..." HREF="..."
Content-Type:

Where possible support:

From: [email address]

Most of this should eventually be handled by libwww.

Consortium
----------

The basic idea was that TimBL and CERN can't own the problem of
developing hypertext for the rest of the world so he proposed
setting up a Consortium to own the problem. Here are some of the
items that were discussed.

Issues:

* What do you get for being a member?
o Representation
o Training
o Workshops/Conferences
* How do vendors contribute?
o Funding (money)
o Provide Technical Expertise (time)

What the Consortium might do:

* Manage funds (this was a point of argument)
* Publicity/PR for the Web
* Run conferences
* Sets future development directions
* Coordinates information exchange (I want to know about XYX, who's
working on stuff like this)
* Provides a Stamp of Approval
o Reference Implementation
o Guidelines
o Testing (ugh)
o Defines Implementation Levels
* Isolate funding from the design process

Proposed Annotation Protocol
----------------------------

It was decided that annotations could be implemented using the existing
defined HTTP/1.0 methods (GET/PUT/POST/DELETE). The only thing that
really needed to be worked out was how PUT and POST should work.

The spec will be changed to reflect the following (again, until
the spec is updated this information is FYI only).

PUT and POST will support using Length: and MIME boundary's.

I don't understand how we are going to implement boundary's for sure.
I propose we stick with MIME and make it part of the content-type, e.g.:

Content-Type: www/annotation; boundary="string"

TEXT ... TEXT
--string--

Any comments?

Style Guides (Rendering Guides?)
--------------------------------

Rob Raisch had a proposal for Style Guides. The basic idea is
to define a format for specifying rendering hints to the browser
external to the document (so you can easily swap them around).

Issues discussed included details of cacheing the style guide.

Sorry, I don't have a pointer to the proposal. Perhaps someone
can post one that knows where it is.

I think everyone pretty much agreed that this would be a good thing
to do and that in reality it wasn't going to be to hard to implement.

<LINK REL="Style" HREF="..."> was proposed to point to the style guide.

I think code to deal with style guides is supposed to end up in libwww
at some point.

This feature can be introduced at anything without breaking anything
so it was not part of the Level 0 Implementation Goals.

Client Profiles
---------------

The idea of the client profile is to allow the server to send back
data in the most appropriate format. This is part of format
negotiation. The general idea is to send more hints along with the
request in the Accept: field. For example:

Accept: image/gif; class=color; depth=8;
width=1024; height=768; xdpi=85; ydpi=85

This tells the server that you have a color display with 256 unique colors
and it's 1024x768 at 85dpi (aspect ratio is 1:1). The problem this
solves is rendering 24 bit images on mono displays is pretty ugly
so it would be nice if the server happens to have the image data
in mono then it could just send it.

I have a proposal for HTTP defined MIME types and associated client
profile information online_ at:
<http://www.bsdi.com/HTTP:TNG/MIME-ClientProfile.html>

HTML+
-----

Oh boy, what I can say about this. I'll just say that lots of
changes were proposed and you will have to wait for details from
the official note takers. To be fair, most of the changes are
really needed and a lot of work was done to make the spec most
consistent.

I think the only way to resolve some of the problems (short of
endless arguments) is to do a prototype implementation to play
around with.

Misc Issues
===========

Authoring Tools
---------------

The general impression I got was that doing Authoring Tools right
was going to be difficult in practice and nobody jumped on the
opportunity to write one. It's a massive User Interface nightmare.
Given that there isn't a consensus on the perfect text based editor
I feel sorry for the poor guy that first publishes one of these :-)

I think we all agreed that authoring tools are needed, it was just
that nobody wanted to do it. Oh well.

libwww2 ownership
-----------------

TimBL wanted to setup something so that people that want to do
development on libwww2 could have access to something like a CVS
tree over the net. I signed up to add support for PUT to Plexus
and back-end it with CVS. Should be trivial as soon as I get
some free time.

Z39.50
------

There was a discussion about the overlap of Z39.50 and HTTP/1.0.
I got the impression that we wanted to keep HTTP/1.0 but that it should
be possible (some claimed trivial) for browsers to support Z39.50 as
well for talking to Z39.50 servers.

The best argument for HTTP is the 0.9 protocol can be trivially implemented,
even using simple shell scripts.

It was claimed that Z39.50 was trivial also, but attempts to write down
a request on the white board failed (though we did get a better
understanding of the protocol).

It does seem pretty clear that the two protocols are getting closer
in functionality.

Arguments for Z39.50 is it already has billing and authentication
support (though it wasn't clear to me that there were really any
working Z39.50 implementations that did this). At any rate, HTTP
should be able to use nearly identical authentication protocols if
anyone cares to implement them.

--sanders_

.. _online http://www.bsdi.com/HTTP:TNG/MIME-ClientProfile.html
.. _sanders http://www.bsdi.com/hyplan/sanders.html
.. _Proposal http://www.bsdi.com/HTTP:TNG/MIME-ClientProfile.html