あすなろ後藤です. '97年03月28日(金) 午後01時頃、原さん: > > まつもと ゆきひろです omit> > > 原さんと後藤さんを中心にして『URLライブラリの仕様について熱 > > く語る会』(略称:あすなろライブラリの会(一部に意味明瞭))を発 > > 足させましょう.なあに,実装のことは心配しなくても,仕様を決 > > めるだけで誰かが作ってくれますよ(私か?). > いいですね。perl5 のライブラリ libwww-perl を見るとあまりに > 立派過ぎてこれを作るのは容易ではないなと暗くなってしまうの あー確かに libwww-perl はすごいですね. 僕は python のライブラリをちょっと使っただけですが, 仕様は悪くないと思います. 基本は HTTP, FTP, GOPHER, NNTP などのスキームが socket を 使ったオブジェクトとして実装されています. URL.open(url) は url を解析してスキームを決定するわけです. が, 例えば FTP は普通 login 手順を踏む必要があるなどスキーム によってやることがエラク違うので必ずしも完全に実装されて いるわけではないです. ですから, やはり楽そうな HTTP あたりからオブジェクト化して いくのがいいのではないかと踏んでいます. httpサーバーを書く 場合には(METAやSSIのために) HTML も実装されている必要があると 思いますが, それなら SGML もある程度扱えるようにしておく 必要があるので(というか個人的には HTML3.2 の次は XML が はやると思うので)しんどそうです. いずれは欲しいんですけど. # SGML を扱うための一連の道具は欲しいなぁ. (ぼそっ) 僕が想像している基本方針としては URL をネットワークな オブジェクトにしたいなら, まず基本的なスキームを扱う仕様を 決めてそれで Mixin するのがいいのではないかと思います. でもポリモルフィズムもある程度考慮した方がいいような気も しますけどどうでしょうか? どちらにせよまず HTTP の socket ラッパーの部分を決めたいです. ちょっと長いですが python だと HTTPオブジェクトには 次のメソッドが用意されてます: * set_debuglevel(level) * connect(host[, port]) * send(data) * putrequest(reqest, selector) * putheader(header, argument[, ...]) * endheader() * getreply() * getfile() #例: # >>> from httplib import HTTP # >>> h = HTTP('www.python.org') # >>> h.putrequest('GET', '/index.html') # >>> h.putheader('Accept', 'text/html') # >>> h.putheader('Accept', 'text/plain') # >>> h.endheaders() # >>> errcode, errmsg, headers = h.getreply() # >>> if errcode == 200: # ... f = h.getfile() # ... print f.read() # Print the raw HTML # ... # <HEAD> # <TITLE>Python Language Home Page</TITLE> # [...many more lines...] # >>> ただし実際にはこれ以外に time out とか割り込みで中断と いったこともハンドルできるように例外のためのメソッドも 欲しいですね. あと, せめて HTTP/1.0 の RFC なんかも読んでおかないと何が 飛んでくるか分からないし. > ですが、python(for Win)のを今初めて見たのですが、へびのア > イコンの行列で華やかというか楽しげです。こんな感じならやる > 気も起ころうというもの。(「見た」のはアイコンだけだったり > して。^^;) がーんそうなんですか. それは見たことないです. make しなきゃ. しかし, ruby でWWWブラウザを書くというのは憧れます. python の grail みたいに ruby スクリプトが使えるとか. # そうなるとやっぱ safe.rb は欲しいやも :) > > 私は今は壁の中にいるので,あんまり「いんたーねっと」していな > > いんですけど,そのうち状況が変わりそうなので,その時にはruby > > のURLライブラリやCGIライブラリは是非欲しいです. > おっと、やっとその気を出して来ていただいて嬉しいです。(^_^) 新参者には「やっと」なのかどうか分かりませんが:) 頼もしいですね. -- 後藤