Re: Version 5 of URL draft

Mark P. McCahill (mpm@boombox.micro.umn.edu)
Wed, 27 Jul 1994 09:50:07 -0500

Date: Wed, 27 Jul 1994 09:50:07 -0500
Message-Id: <199407271450.JAA03356@boombox.micro.umn.edu>
From: "Mark P. McCahill" <mpm@boombox.micro.umn.edu>
To: masinter@parc.xerox.com, mitra@pandora.sf.ca.us, uri@bunyip.com
Subject: Re: Version 5 of URL draft

In message <94Jul26.133457pdt.2760@golden.parc.xerox.com> Larry Masinter writes:
> ...[deleted text...]
> ***********************
> Open issue:
>
> Mitra has pointed out that there is an ambiguity of how a gopher: URL
> should be interpreted in the case where there is a gopher+ string and
> there is not a search: should the client send to the server one or two
> tabs, and on what basis should it determine this?
>

I'm really sorry I couldn't make it to what Peter Deutsch described as
"swinging" Toronto (I guess Peter would know), but (like Peter) I had to
stay home and work this time :-(.

Anyway, down to business.

If the Gopher+ URL doesn't refer to a search, the client should send
the server a single tab, and if it does refer to a Gopher+ search, the
client gets to send two tabs.

At the end of this message is a slightly revised version of the gopher
section that should make this more clear.

> Does it need to
> look at the gophertype to determine whether this URL denotes a search?
>

Yes. You need to parse the URL before you can send the right
thing to a gopher server. A base gopher client sends this to
a gopher server:

selector string [<tab> search string]

So in the original gopher protocol, <tab> is used to seperate the search
terms from the gopher selector string. The design goal for Gopher+ was
to be upward compatible with the original gopher. So... the gopher+ info
is seperated from the original gopher info by a tab:

selector string [<tab> search string] [<tab> gopher+ info]

So, there are two cases. In the case where a gopher+ item is not a search,
the client sends this to the server:

selector string <tab> gopher+ info

In the case where a gopher+ item is a search, the client send this to the
server:

selector string <tab> search string <tab> gopher+ info

See below for a slightly revised gopher section making this more explicit.

-----------------------------------------------------------------------

3.4.3 URL syntax for Gopher+ items

URLs for Gopher+ items are have a second encoded tab and a
gopher+ string. Note for Gopher+ URLs, the %09<search> string must
be supplied, although the <search> element may be an empty string.

The <gopher+_string> is used to represent information required for
retrieval of the Gopher+ item. Gopher+ items may have alternate
views, arbitrary sets of attributes, and may have electronic forms
associated with them.

When a gopher client retrieves an item from a Gopher+ server, the
client send Gopher+ commands to the gopher server by appending
a <tab> and the gopher+ commands after the gopher selector (and the
<tab> and search string in the case of a gopher search item). If a
Gopher+ URL does not refer to a Gopher search type, the Gopher
client sends to the server the gopher selector string, followed by a
tab, followed by the gopher+ commands. If the Gopher+ URL refers to
a Gopher search type, the client sends to the gopher server the gopher
selector string, followed by a tab, followed the search string,
followed by a tab, followed by the gopher+ commands.

----------------------------------------------------------------

Mark P. McCahill gopherspace engineer
mpm@boombox.micro.umn.edu University of Minnesota
612 625 1300 612 625 6817 (fax)