Bucktooth: Web and gopher interoperability ------------------------------------------ It is fully possible, and unfortunately common, to mix the heterogenous frigglesnitz that is today's World Wide Web, with the pure simplicity of Gopherspace. The programmers of Bucktooth find this a despicable evil and an unholy union that will bear horribly disfigured progeny. Despite this graphic warning, most people will want to add web links to their gophers anyway. In 0.1-pr4 and up, this is supported in a protocol independent fashion; simply specify any URL and an 'h' item type, like so: hYour Web Link<TAB>URL:http://www.floodgap.com/ Note that the URL must be preceded by a literal "URL:" and that the itemtype is h. Smart clients will automatically take the URL portion and use it, but even if they do not, Bucktooth will generate an HTML page with a Refresh: header and forward them on automatically. Because of the way the redirect works, even if the destination protocol is not HTTP, the itemtype is still always 'h' because the client will be downloading an HTML page. This notation is very clean, but only works on 0.1pr4 and higher. For the rationale for this approach, see quux.org/0/Archives/Mailing Lists/gopher/gopher.2002-02?/MBOX-MESSAGE/34 If you are using another server, or an earlier Bucktooth, you must resort to more disreputable tricks to achieve your ends. One proven method that will work on servers other than Bucktooth, and will work on any version of Bucktooth, is to trick the client into speaking HTTP to a web server's port. This can be accomplished easily in the gopherext file by creating a fake HTTP/0.9 request with an itemtype of h. For example: hThe www.floodgap.com web page<TAB>GET /<TAB>www.floodgap.com<TAB>80 will create a selector pointing to the www.floodgap.com web page at http://www.floodgap.com/ . Note that most web browsers are not bright enough to automagically turn this into a web URL -- they will continue to think they're accessing a strange gopher server on port 80, which in a sense is true, I suppose. Only Lynx seems to be smart enough to actually turn this into a real URL. This will not work on web servers that can't understand HTTP/0.9 (very few), nor for servers that require extra headers (like the Host: and Connection: headers in HTTP/1.1). This also does not work for Internet Explorer, which to be sure is a miserable Gopher client anyway.