The problem is that this isn't how CGI scripts tend to work, more
importantly web browsers do'n't work this way either!
To illustrate the problem I wrote a very simple webpage
<html>
<body>
<form method="get" action="http://server/baseurl?database=olis&">
<input type="text" name="query" />
<input type="submit" />
</form>
</body>
</html>
Which is how someone might write a quick and dirty SRU 1.0 client
(especially if this is autogenerated by reading the base url from the
ZeeRex).
However when I try to use this from both Internet Explorer and Opera
(can someone verify this in Mozilla and Netscape) the URL that they both
try to go to when you hit the submit button is
http://server/baseurl?query=smith
NOT
http://server/baseurl?database=olis&query=smith
To get the required behaviour I have to write
<html>
<body>
<form method="get" action="http://server/baseurl">
<input type="hidden" name="database" value="olis" />
<input type="text" name="query" />
<input type="submit" />
</form>
</body>
</html>
So the HTML client writer has to break the SRU base URL into the CGI
base url and the database parameter, which requires both extra coding if
autogenerating from the ZeeRex (and awareness that an SRU base URL and a
CGI base URL are different).
Hence I don't agree that the ? Should be part of the base URL since it
will through up pitfalls for the unwary HTML client writer!
Matthew
P.S.
I tried
<form method="get"
action="http://server/baseurl%3fdatabase=olis%26">
To see what would happen - in this case the URL generated was the rather
ugly
http://server/baseurl?database=olis&?query=smith
> -----Original Message-----
> From: Z39.50 Next-Generation Initiative [mailto:[log in to unmask]]
> On Behalf Of Theo van Veen
> Sent: Tuesday, December 23, 2003 1:29 PM
> To: [log in to unmask]
> Subject: Re: Betr.: Re: SRU examples
>
> I am afraid that my point is not understood. It is all quite
> simple. We only have to agree
> that, when I publicise my base-url, others only have to stick
> the SRU request after it,
> without worrying about my cgi script. So it is up to
> everyone' s own implementation how
> their base-url looks like but the client should never put the
> "?" between the base-
> url and the request.
> One server might prefer http://someurl/database? as
> base-url, the other might prefer
> http://someurl?database&. The client doesn't have to be aware
> of the difference.
> It is important to realize that this is different from using
> local parameters! Local x-
> parameters are actually used and known as parameters by the
> clients. The parameters
> before the "?" are not to be USED by clients as parameters
> but are just a fixed part of
> the base-url.
>
> Theo
>
> On 23 Dec 2003 at 12:40, Matthew J. Dovey wrote:
>
> > Ah, now I see.
> >
> > I'd refrained from diving in since I wasn't sure what was
> being asked
> > for.
> >
> > I don't really like it - strictly speaking (as I understand it) CGI
> > scripts aren't sensitive (or meant to be sensitive) to the order of
> > parameters after the ? i.e.
> >
> > http://someurl?param1=stuff¶m2=stuff
> >
> > And
> >
> > http://someurl?param2=stuff¶m1=stuff
> >
> > Would normally have the same behaviour.
> >
> > I'd prefer to see a url of the form:
> >
> > http://someurl/database?version=1.1&operation=searchRetrieve...
> >
> > Agreed this involves a little more parsing of the URL (this would
> > actually be fairly trivial for a Java servlet, but perhaps
> more complex
> > for a perl script - another example of toolkit as impediment!).
> >
> > However, we have a mechanism for adding server specific
> parameters would
> > could be used here?
> >
> > Matthew
> >
> >
> >
> > > -----Original Message-----
> > > From: Z39.50 Next-Generation Initiative [mailto:[log in to unmask]]
> > > On Behalf Of Theo van Veen
> > > Sent: Monday, December 22, 2003 11:10 PM
> > > To: [log in to unmask]
> > > Subject: Betr.: Re: SRU examples
> > >
> > > No, I'm not talking about parameters before the "?". I'm
> talking about
> > > the possibility that the base-url contains parameters,
> but after "?".
> > >
> > > For example a base-url like:
> > >
> > > http://myserver.com/my-cgi/mysrw.pl?database=abc&
> > >
> > > The client can stick the request after the base-url
> without having to
> > > know that "database=abc" is a parameter. This implies
> that the "?" is
> > > part of the base-url and should not be added again.
> > >
> > > Theo
> > >
> > >
> > >
> > > >>> [log in to unmask] 12/22 11:19 >>>
> > > LeVan,Ralph wrote:
> > >
> > > >Has anyone noticed that Theo is talking about parameters
> before the
> > > '?' and
> > > >Eliot is talking about them after the '?'.
> > > >
> > > >I don't think you get to stick parameters in front of the '?'.
> > > >
> > > >
> > > Yep. We want parameters after ?. Just like forms/CGI has
> worked for
> > > the
> > > last 10 years.
> > >
> > > -- Adam
> > >
> > > >Ralph
> > > >
> > > >-----Original Message-----
> > > >From: Theo van Veen [mailto:[log in to unmask]]
> > > >Sent: Monday, December 22, 2003 9:56 AM
> > > >To: [log in to unmask]
> > > >Subject: Re: SRU examples
> > > >
> > > >
> > > >This is OK. It is not the intention to have official SRU
> parameters
> > > to
> > > >preceed "?". It is
> > > >just that it should be possible to have parameters being
> part of the
> > > >base-url without the
> > > >client being aware of that parameters and in such a case
> the base-url
> > > may
> > > >end with
> > > >"&" rather than "?". An SRU request is in my opion baseurl
> > > + request.
> > > The
> > > >base-url is
> > > >a given thing and the request is build by the client. The
> > > operation is
> > > part
> > > >of the SRU
> > > >request and therefore a client has to be aware that parameter.
> > > >
> > > >Theo
> > > >
> > > >
> > > >On 22 Dec 2003 at 14:48, Janifer Gatenby wrote:
> > > >
> > > >
> > > >
> > > >>Here is a new version of SRU examples taking into
> account comments
> > > by
> > > >>
> > > >>
> > > >Ralph
> > > >
> > > >
> > > >>and Matthew on 19th December. Currently the "?"
> precedes operation
> > > in the
> > > >>URL. I realise that this may in fact change again
> following Eliot's
> > > and
> > > >>Theo's comments. Regardless of where it is finally put, we
> > > should add
> > > some
> > > >>explanatory text in the SRU URL access mechanism document.
> > > >>
> > > >>Janifer
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >
> > > >
> > > >
> > >
> > >
>
>
|