WWWとURL(課題1)

World Wide Web (WWW) の直訳は「世界に張り巡らされた蜘の巣」である. インターネット上に存在するテキスト,画像,音声,映像など様々なファイルを 結びつけたものを閲覧,取得する仕組みである.Webブラウザは,WWWを利 用するための閲覧ソフトであり,FirefoxやGoogle Chrome,Internet Explorer, Safariなどがある.WWWにおいてファイル間の結び付き(リンク)が記述できるファ イル記述方式として広く利用されているのが,Hyper Text Mark-up Language (HTML) である.Hyper Text Transfer Protocol (HTTP) は,ク ライアントが サーバから HTML などのファイルなどを取得するためのプロトコル として開発された.現在では,それ以外にもクライアントから各種情報をサーバ に送るなど,様々な機能が追加されている.

インターネット上のファイルや情報を一意に特定するために,Uniform Resource Locator (URL) と呼ばれる記述方式が用いられている.URLは

   <スキーム>://(<ユーザ>:<パスワード>@)<ホスト>(:<ポート番号>)/<パス>
という形式であり,例えば本実験のホームページは,
http://www.fos.kuis.kyoto-u.ac.jp/le2soft/
という URL により一意に特定される. この例では, である.また,先に述べたように,HTTPでは通常80番ポートが利用されるため, ポート番号が省略された場合は80番を指定したことになる.

演習 3   次の課題では,端末から文字列として入力されたURLから,ホスト名などの情報 を抽出するURL解析器を作成する.この際,文字列をトークンに区切る strtok関数を利用する.

関数char *strtok(char *s1, char *s2)は,分解される文字列s1と 区切り文字を含む文字列s2を受け取り,s1の先頭から最初の区切り 文字(の手前)までの文字列(トークン)へのポインタを返す(最後まで区切り 文字がなければ文字列全体を,返すべき文字列がなければNULLを返す). 同じ文字列に対して2番目,3番目...のトークンを分解する場合,2回目以 降は第一引数をNULLにして呼び出す.strtok 関数は,区切り文字 を終端文字(' \ 0')に置き換えていくので,s1の内容 は実行前後で異なる事に注意.

ダウンロードしたサンプル[*]のうち,sample/cディレクト リにあるsample1.cは,strtok関数を利用した例である.入力を受 け付け,入力された文字列を「空白文字とカンマと改行文字」を区切り文字と見 做してトークンに分割し,最初から3つのトークンを表示して終了する.

   % gcc -o sample1 sample1.c
   % ./sample1
   foo, bar, and hoge       (標準入力)
   1st = foo; 2nd = bar; 3rd = and
このプログラムを実行し,動作を確認せよ.

また,付録D章を参考にして,デバッガgdbによって sample1.cにおけるstrtok関数の動作を確認せよ.

さらなる詳細はmanページや他の解説を参照すること.

NAKAZAWA Koji
2014-09-30