[Io] Been making a list of Http stuff
Todd Blanchard
tblanchard at mac.com
Fri Jan 20 07:21:19 UTC 2006
that is available in the image - seems like we've got six of everything.
Where to begin? There is a rather nice hierarchy of Url classes for
the various schemes that include http, file, ftp, etc. They seem to
work reasonably well apart from the issue I filed a fix for at http://
bugs.impara.de/view.php?id=2454 . (I seem only to be able to submit
bugs, not take ownership of them).
Competing is some classes by Michael Rueger in a package called URI
which contains a class of the same name. This package has similar
interface, however doing 'http://www.yahoo.com' asURI
retrieveContents results in a walkback as it attempts to call
HttpClient>>retrieveMIMEDocument: which doesn't exist. Seems to be
some mismatch and this brings us to HttpClient.
HttpClient is a grab bag of class methods for doing fetching of files
over http. It is used by squeak's network update machinery,
ProjectLauncher, and HttpServerDirectory. I wonder if most of what
it does couldn't be accomplished within the Url hierarchy directly.
There is also a class called HttpLoader - this one seems to try to
perform async downloads of files over http and has a caching
variant. I've given it a few tries and found that some significant
percentage of the time it ends up getting a timeout response -
presumably because it doesn't start reading fast enough after opening
the socket.
It seems to be used by the same code that uses HttpClient. This code
doesn't bother me nearly as much as HttpClient (which isn't much of a
client but just a bunch of functions). HttpClient seems to be a 1.0
client BTW.
Looking for Http 1.1 code I find two squeakmap packages. HC
HttpClient, and HttpClient (steve waring). I've tried HCHttpClient
and gotten walkbacks when downloading files in chunked mode. I need
to try the other one and will report when I do. Both 1.1 clients
have support for cookies, authentication, and redirection. Neither
does caching.
That's what I've been up to. I realize this is probably working on
layer above where this team is mostly focused. I'd like to get more
involved but am not entirely sure how to proceed. I have a couple
personal itches:
SSL - getting an OpenSSL plugin would be useful so we could do https
fetches and better async loading and caching of documents. I seem to
be building the better part of a web browser as well (html parser,
css parser, html dom, css selector matching, looking for javascript
implementation) and would be interested in working with someone on
that as well.
Cheers,
-Todd Blanchard
More information about the Io
mailing list