Category:用語の雑学 2006-02-17

2つのcurl(カール)

はじまりは、

「Windowsマシンでレンタルサーバのログを自動ダウンロードしたい」

でした。それから少し経って2つのcurl(カール)に出会う事になります。

私はこのサイトをレンタルサーバ(ロリポップ様)を借りて運営しています。サイトのアクセス解析はPukiWikiのカウンタも使っていますが、基本的にはApacheの生ログに頼っています。サイト運営開始以来もう10ヶ月近くになりますが、毎日レンタルサーバの管理画面から手動でApacheのログファイルをダウンロードしています。自分でも「よく続いているな〜」と思います。そろそろ止めようと思っている矢先に出合ったのです。curl(カール)に。

最初のカール

レンタルサーバログの自動取得についてインターネットで調べていると次のブログに出会いました。

ロリポップのアクセスログを自動ダウンロードする(要Linux)

ここでは、Linux環境下でbashを使ってログの自動取得を行っています。大変参考になりましたが、私のしたいのはWindowsです。でも、ここで最初のcurlに出会うのです。このcurl(カール)は、

「HTTPやFTPを使ってファイルをダウンロードしたりアップロードしたるするためのコマンド」

でした。そして、curlの由来は、

「シーURL(see URL)」 とか 「Client for URLs」

から来ているようです。そして正確には cURL のようです。これは開発プロジェクトの名前です。

cURLプロジェクト --- http://curl.haxx.se/

curlの設置

curlをWindowsに設置する方法を紹介します。非SSL版の場合は簡単に設置できます。まず、本家(cURL)のページからダウンロードのページに行きます。

ここからWindowsバイナリを入手できます。

  • curl-7.15.1-win32-nossl-sspi.zip --- 非SSL版
  • curl-7.15.1-win32-ssl-sspi.zip --- SSL版

非SSL版の設置はスムーズに出来ます。

  1. ダウンロードファイルを展開する
  2. パスの通っているフォルダ( 例えば C:\bin )にcurl.exeをコピーする

これだけです。後は、Windowsのコマンドプロンプトを立ち上げて以下のようにすれば、htmlファイルをGETできます。

C:\>curl -O http://www.hoge.hoge/index.html
C:\>curl -o foo.html http://www.hoge.hoge/index.html
C:\>curl -o foo.gif http://www.hoge.hoge/sample.gif

curlには以下のような特徴があります。

  • HTTP/HTTPS/FTPが使える
  • HTTPプロキシサーバの利用
  • フォームデータの送信
  • ファイルのアップロード
  • URLリダイレクト対応
  • クッキーの保存/送信
  • 認証ページ対応
  • HTTPのヘッダーの変更

詳しいcurlの使い方は以下のサイトが参考になります。

http://www.big.or.jp/~crane/cocoa/0800_internet/curl/

しかし、問題があります。私のしたい「レンタルサーバログの自動取得」にはSSL版が必要で、本家(cURL)から取得したSSL版を実行するにはOpenSSLのWindows DLLが必要なのです。できれば、避けたいと思いました。いろいろ探したところcurlのオールインEXEを公開しているサイトがありました。

Kaoriya --- http://www.kaoriya.net/

設置方法などの詳細は同封のREADME_j.txtを参照して下さい。このSSL版curlとPerlを使って当初の目的「Windowsマシンでレンタルサーバのログを自動ダウンロードしたい」は達成できました。言うまでもないことですが、Perlスクリプトの作成に当たっては、先に挙げた「ロリポップのアクセスログを自動ダウンロードする(要Linux) 」が大変参考になりました。

第2のカール

最初のカール(cURL)をインターネットで調べている最中に私を混乱されたのは第2のカールでした。このカールは、

プログラミング言語

だったのですが、初めて出会った2つのカール(curl)に私は大変混乱しました。第2のカール(curl)を紹介すると次のようになります。

Curlとは、ペンタゴン(米国防総省)やMIT(マサチューセッツ工科大学)の研究成果を基に開発された、次世代インターネットのための「リッチクライアントWebアプリケーション」向けの言語です。

Curlは、現在の様々なWEBテクノロジー(HTML,XML,JavaScript,Java,Flashなど)を統一的に扱えるシンプルな言語体系として設計されています。そして、curl(カール)の由来ですが、それは、

Curlのマークアップをかこむ括弧が「{ } (curly bracket)」であることから来ています。

Curlを使用したWEBアプリケーションはこれまでの10倍以上も高速になると言われており「今後、爆発的に普及することが予想されている」との事ですが、単なる宣伝文句かもしれません。しかし、確実に言える事は「.NET」「SOAP」「リッチクライアント」「AJAX」などの潮流に代表されるように、現在のWEBの世界は集中指向から分散指向に向かっています。これは、これまでに幾度となくコンピュータの歴史がたどって来た道です。自然の摂理と同様に「コンピュータの世界でも集中と分散は常に繰り返します」。Curlに出会って「.NETの波は着実に現実のものになりつつある」と再認識しました。


以上が2つのcurl(カール)の話です。上の説明では2つのcurlをcURLCurlとして意図的に書き分けています。久々の朝礼なので長編になってしましました。第2のカールについては、またの機会にもう少し詳しく話したいと思います。


  • すごい。百科事典以上。。。(^^♪ -- アップル 2006-02-21 23:34:11 (火)
  • ログの自動取得の件、そのヒントでピンと来ました。 -- PERA 2006-03-01 22:57:20 (水)

最終更新のRSS Last-modified: Wed, 12 May 2010 09:00:23 JST (2574d)