World Wide Web の仕組み(3)


# World Wide Web の仕組み(3)

共通科目情報処理（上級）、インターネットの仕組み、2005年01月24日
電子・情報工学系
新城 靖
<yas@is.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~yas/ipe/inet-2004/2005-01-24
あるいは、次のページから手繰っていくこともできます。
http://www.coins.tsukuba.ac.jp/~yas/ipe/
http://www.coins.tsukuba.ac.jp/~yas/
http://www.ipe.tsukuba.ac.jp/~yshinjo/

## ■復習

HTMLで文書の構造を既述
スタイルシートで表示の方法を既述

## ■今日の重要な話

## World Wide Web での(サーバとブラウザ以外の)プログラムの実行。
単に HTML や CSS を使う方法に比較して、はるかに高度な機能が追加できる。

サーバ側

- CGI
SSI
PHP
Javaサーブレット
- クライアント側
- Javaアプレット
JavaScript
Flash
- Java と JavaScript は違う。

World Wide Web の応用・高度な利用

検索エンジン
Wiki
Web Log, Blog
RSS, Atom

## ■CGI

## WWW サーバは、普通は、ファイルに保存された HTML データやイメージ・データを
読み込み、WWWブラウザに返する。
CGI (Common Gateway Interface)
では、ファイルが読み込まれる代わりにプログラムが実行され、その実行結果
がブラウザに返される。

Gateway とは、WWW で使われている HTTP というプロトコルへの入り口という
意味。
プログラムの実行結果は、普通は、HTML にすることが多いが、普通のテキス
トであることもイメージであることもある。

図? CGIの仕組み

「プロセス」とは、実行中のプログラム。

CGI の利用例

ページの更新
検索エンジンで検索すべきキーワードを受け取る。
アクセス・カウンタ

### ◆CGIのファイル名

CGI になるファイル名のパタン

/cgi-bin/name
/dir/name.cgi

設定によっては、これ以外のものも可能である。

### ◆CGIプログラムを既述するための言語

### スクリプト言語が多く使われる。

Perl
Ruby
Python
sh, csh

C言語やJava言語を使うこともできる。

### ◆フォーム

### ブラウザからサーバに情報を送る用に指示する時には、
フォーム(form)
という機能を使う。
HTML記述例：

<FORM ACTION="http://www2.coins.tsukuba.ac.jp/~yas/ipe/inet-2004/2005-01-24/cgi-printarg.cgi" method="post">
<P>
姓: <INPUT type="text" name="lastname">
名: <INPUT type="text" name="firstname"><BR>
<INPUT type="radio" name="sex" value="Male"> 男 <BR>
<INPUT type="radio" name="sex" value="Female"> 女 <BR>
<INPUT type="radio" name="sex" value="others"> その他 <BR>
電子メール: <INPUT type="text" name="email"><BR>
<INPUT type="submit" value="send"> <INPUT type="reset">
</P>
</FORM>

表示例：

<FORM>と
</FORM>
で括られた部分が１つのフォームになる。

<INPUT>の部分が、ブラウザからサーバに送られるデー
タを表わす。

send ボタンが押されると、ブラウザは、
HTTPの
POST メソッドを使って、サーバにデータを送る。

サーバは、それを受け取ると、指定されたプログラムを実行する。

### ◆CGIプログラムの入力

### 実行されたプログラムは、環境変数や標準入力（ともに、プログラムにデータ
を与える方法の種類）からデータを受け取ることができる。
Apache では、次のような方法がある。

環境変数

REQUEST_METHOD
データを送るのに使われたメソッド。POST か GET。
GET は、普通のページを得るものと同じ方法で、長いデータは送れない。
SCRIPT_NAME
プログラムの名前。
QUERY_STRING
URLの指定で「?」以下に指定された文字列

メソッドとして POST が使われた時、標準入力からは、
<FORM></FORM>で指定されたパラメタを受け取ることが
でる。

このデータは、「&」で区切られた
「フィールド名=値」の並びになっている。

例:

lastname=姓&firstname=名&sex=Male&email=who@u-ust.ac.jp

環境変数 CONTENT_LENGTH からは、データの長さが得られる。

メソッドとして、GET が使われた時には、
環境変数 QUERY_STRING に
「&」で区切られた「フィール
ド名=値」の並びが含まれている。

送られてくるパラメタの中に漢字など含まれていた場合、
「%hh(2桁の16進数)」
という形になっている。

これを元にもどすには
cgiparse というプログラムや
perl の命令 hex() が使われる。

### ◆cgi-printarg

## ■SSI (Server Side Include)

## SSI (Server Side Include) は、CGI よりも手軽にHTML の途中に、他
のファイルの内容やプログラムの実行結果を埋め込むための仕組。

SSI が使えるシステムでは、
file.html の変わりに
file.shtml とすると、
SSI の機能が働くようになります。

例１:
ファイルの内容の読込み

<!--#include file="filename"-->

例２:
プログラム/bin/calの実行結果の埋め込み

<PRE>
<!--#exec cmd="/bin/cal"-->
</PRE>

例３:ファイル file.shtml の更新時刻の表示

最終に変更されたのは、
<!--#config timefmt="%Y/%m/%d %H:%M:%S"-->
<!--#flastmod file="file.shtml"-->
です。

### ◆SSIとセキュリティ

### SSI を使う時にも、CGI と同様に、
セキュリティに気をつける。
特に、
`#include'や
`#exec'
で、大事なファイルが盗まれないように、細心の注意を払ながら利用する必要
がる。

筑波大学教育用計算機システムでは、SSI は使えないような設定になっている。

### ,(ssi-example.shtml,ssi-example.shtml,◆ssi-example.shtml)

## ■PHP (Hypertext Preprocessor)

## PHP は、Web サーバで動作するスクリプト言語。

普通は、Apache のサーバの内部（拡張モジュール）で動作する。
この方法で動作させると、「プロセス」が作られない分だけ高速になる。

PHP の特徴。

C 言語やJava 言語のようなプログラミング言語より習得が容易。
インタプリタで動作する。コンパイル不用。気軽に実行できる。
デバッグがしやすい。
データベースと接続するための機能が充実している。
動的なコンテンツを生成する機能が優れている。

- 画像、PDF (Portable Document Format)、その他
- PHP は、基本的には、サーバ上で動き、動いた結果として、HTML ファイル等
がクライアントに送られてくる。

http://www.php.gr.jp/ 日本PHPユーザ会

### ◆PHPプログラムの例

<HTML>
<HEAD>
<TITLE> PHP の例題
</TITLE>
<BODY>
PHP の例題です。
<UL>
<?php
for( $i=5; $i>0; $i-- )
{
print("<LI> ");
for( $j=$i; $j>=1 ; $j-- )
{
print("★");
}
print("\n" );
}
?>
</UL>
</BODY>
</HTML>

実行例:
http://www2.coins.tsukuba.ac.jp/~yas/ipe/inet-2004/2005-01-24/php-example.php

### ◆PukiWiki

### 講義の掲示板 で使っている PukiWiki も PHP で既述
されている。ただし、変則的ではあるが、CGI で動かしている。標準的には、
PukiWiki も Apache の内部で動かす。

## ■その他のサーバ側でのプログラムの実行

## 利用方法や目的は、CGI や PHP と同じである。

### ◆Javaサーブレット

### Java言語のプログラムをサーバで動作させる場合、CGI で Java のプログラム
を動作させることも可能だが、専用のサーバでを動作させることが多い。この
時、一塊のJavaのプログラムをJavaサーブレットという。

Javaサーブレットは、XMLの扱いに強い。

### ◆Java Server Pages

### Java言語のプログラムを、PHP と同様に、HTML に埋め込んで使えるようにし
たもの。Javaサーブレットに変換されて動作する。

### ◆Microsoft Active Server Pages

Microsoft社の Web サーバ Internet Information Server (IIS) 上で
VBScript と呼ばれるスクリプト言語、(または、JavaScript)を動作させる。
結果として、HTML 等が変えされる点は、CGI と同じである。

(JavaScript も使えるが、サーバ側で動作するだけで、クライアントに変えさ
れるのは、HTML だけ。)

最近では、VPScript, JavaScript の他に、VP.NET や C# といった
言語も使える(ASP.NET(エーエスピー ドットネット))。

## ■Javaアプレット

## Java
アプレット(applet)
とは、
Javaというプログラム言語
で書かれたプログラムの一種。

画面に何かを表示する機能があり、WWWブラウザ上で動く。
Javaアプレットを使うと、アニメーションを作ったり、
CGI を使わずにユーザとの対話できる。

CGI では、プログラムは、WWWサーバが走っているコンピュータで動くが、
Javaアプレットは、プログラムはブラウザの上で動く。

### ◆Javaアプレットのタグ

### Javaアプレットは、HTML からみると、
インライン・イメージと似ている。
Javaアプレットのためのタグは、
<APPLET></APPLET>。

HTML記述：

<APPLET CODE="http://www.coins.tsukuba.ac.jp/~yas/ipe/inet-2004/2005-01-24/rctext.class" WIDTH="500" HEIGHT="50">
<PARAM NAME="message" VALUE="hello,world">
与えたメッセージが動き回るJavaアプレット。
</APPLET>

表示例：

与えたメッセージが動き回るJavaアプレット。

CODE属性で、Javaアプレットを保存している
ファイルのURL(ただし、同一ホスト内)、
WIDTH属性で、幅、
HEIGHT属性で、高さを指定する。
<PARAM>タグを使えば、アプレットに
オプションを渡すことがでる。

<APPLET>と
</APPLET>の間には、
Java Applet に対応していないブラウザのためのテキストを書く。

ソース・プログラム

Java言語については、
共通科目では別の講義がある。

## ■JavaScript

## JavaScript は、 WWW ページを作る時に使われるスクリプト言語である。

ブラウザで実行される。

JavaScript は、文法こそ少し Java に似ているが、Java とはまったく別の
言語である。WWW ページの中の
Javaアプレットは、
「実行可能なインライン・イメージ」に似ているが、JavaScript の記
述は、「実行可能なインライン・テキスト」に似ている。たとえば、次
の例を考える。

<SCRIPT LANGUAGE="JavaScript">
<!--
for( i=0 ; i<10; i++ )
document.writeln("<P>hello,world</P>");
//-->
</SCRIPT>

これで、<P>hello,world</P> を 10 回書いた
のと同じ効果がある。<!--と
//->は、JavaScriptを知らないブラウザにはコメント
として扱われる決まり文句である。関数定義などは、ヘッダ部分
<HEAD></HEAD>に書くという方法もよく使われる。

JavaScript は、CGI と似ているところもあるが、JavaScript でないとで
きないものに、ブラウザの制御がある。たとえば、次の例では、ブラウザ
の(戻る)ボタンと同じ動きをさせることができる。

<A HREF="javascript:history.back();">戻る</A>

戻る

ブラウザを制御する仕組みが、悪用される。

JavaScrit は、信頼しているサイトから送られたときだけ有効にする方法がある。

## ■その他のクライアント側でのプログラムの実行

### ◆Macromedia Flash

### Macromedia社が開発した、動画像や音声を組み合わせてWebページを表示する
ためのソフトウェア。

Web ブラウザの拡張機能(プラグイン・モジュール)で動作する(ブラウザによっ
ては、動作しないことがある)。

ActionScript と呼ばれるスクリプト言語で既述されたプログラムが、WWW ブ
ラウザで動作する。たとえば、ボタンが押されたら動作するプログラムが既述
できる。

Flash のページを作成するには、一般的にはMacromedia社から購入することに
なる。Flash の仕様は公開されているが、フリーの開発環境はそれほど普及し
ていない。

Flash と CGI (サーブレット等も含む)や JavaScript (クライアント側)を連
携させることもできる。

### ◆Adobe PDF (Portable Document Format)

### 元々紙に印刷することを想定して作られた文書を、印刷しないで保存したり配
布したりすることを目的として、Adobe 社により開発された形式。

PostScript という、Adobe 社によるプリンタ用のプログラミング言語が元に
なっている。PostScript と比較すると複雑な制御構造は取り払われている。
フォントを埋め込んだり再現する機能は引き継いでいる。

JavaScript が埋め込める。

PDF 文書作成するには、Adobe Acrobat (readerがつかない) や、その他のフ
リーのプログラムが使える。MacOSX では、OS内部でも使っているので、印刷
の代りに PDF で保存できるようになっている。

手書きPDF入門
というのが以前あった。

### ◆Scalable Vector Graphics

### SVG は、画像を表現するための XML の形式である。

現在、World Wide Web で広く用いられている画像の形式としては、GIF,
JPEG, PNG などがあるが、いずれもビットマップ、または、それを圧縮した形
式である。この場合、拡大すると画像が荒くなるという問題がある。これに対
して、SVG は、ベクトル形式、すなわち、画像の輪郭線を表現したものである。
よって、画像を拡大しても荒くなることがない。また、画像の大きさとデータ
量は無関係であり、大きな画像であってもデータ量が増えない。

以下は、SVG で直線、長方形、円を記述した例である。

<svg>
<line x1="10" y1="100" x2="100" y2="100" style="stroke:blue" />
<rect x="20" y="200" width="100" height="50" style="fill:red; stroke:red;" />
<circle cx="300" cy="300" r="50" style="fill:yellow; stroke:yellow;" />
</svg>

SVG は、W3C (World Wide Web Consortium)により標準化作業が進
められている。XML 形式を用いているが、モデルとしてはPDF や
PostScript と似ているである。Adobe 社からも WWW ブラウザ用の
プラグインも提供されている。Web ブラウザ Mozilla や FireFox
でも、ブラウザ本体で SGV 扱うための開発が進められている。

SVG は、地図を表示するために適している。携帯電話や PDA に対
して地図を配信するサービスで SVG がよく使われる。

## ■検索エンジン

インターネット上にある膨大な情報から、必要な情報を見つけ出すためには、
次のような方法がある。

興味のあるＷＷＷページに埋め込まれているリンクを次々と手繰っていく。
特定の分野についてのFAQやリンク集を参考にする。
雑誌やテレビなど、一般のメディアに掲載されたURLを打ち込む。
よく整理されたメニュー(ディレクトリ)を次々に選択していく。
キーワードを打ち込んで探す（キーワード検索）。
検索対象のデータ（今の場合、ＷＷＷページ）にも、キーワードが与えられて
いる。キーワード検索とは、利用者から与えられたキーワードを持つ対象デー
タを利用者に返すことである。

リンク集
とは、他のページへのリンクを集めたWWWページ。
なにかＷＷＷページを探したい時には、すぐに「キーワード検索」を思い浮か
べるかもしれないが、実際には、
FAQ
FAQやリンク集の方が速いことがある。

### ◆検索に必要な考え方

ヒット率と選択率

ヒット率
欲しかった情報のうち、どのくらい見つかったか。
選択率
見つかった情報のうち、どのくらいが本当に欲しかったものか。

図? ヒット率と選択率

あちらを立てればこちらが立たず。
トレードオフ。

３つの論理演算

AND、両方)、(&)
OR、どちらか、または (|)
NOT、否定、ふくまない (!)

外枠は、全体（インターネット上の膨大な数のＷＷＷページ）を表す。
色が付いている所が、見つかったデータを表す。

「keyword1」で検索。

図? キーワードを１つ与えた時

keyword1 AND keyword2 AND keyword3

図? キーワードを３つ与えた時(AND)

keyword1 OR keyword2 OR keyword3

図? キーワードを３つ与えた時(OR)

NOT keyword1

図? キーワードを１つ与えた時(NOT)

キーワードを１つ与えた時の NOT は使えない。

NOT keyword1 AND keyword2 AND keyword3

図? キーワードを３つ与えた時(AND,NOT)

NOT は、AND といっしょにつかう。
NOT 単独では、使えない。

### ◆絞込検索

### 絞込検索（しぼりこみけんさく）のイメージ

図? キーワードを１つ与えた時

図? キーワードを２つ与えた時

図? キーワードを３つ与えた時

絞込検索は、実は、AND と同じ。

keyword1 AND keyword2 AND keyword3

図? キーワードを３つ与えた時(AND)

### ◆検索エンジンとWWWロボット

検索エンジン(サーチエンジン)
WWWで検索機能を使う時、実際に検索を行うプログラム。
インターネット上のあるWWWサーバで動いていてる。

検索結果は、手元のWWWブラウザの画面に表示される。

検索対象のデータにキーワードを与える方法

内容すべてをキーワードと考える（全文検索）
特定のキーワードを与える

- WWWページを作った人がキーワードを与える
検索エンジンの提供者（人間）がキーワードを与える
プログラムでキーワードを自動抽出する
- 自動抽出したものは、ヒット率はよいが選択率が悪い。
人間が整理したものは、選択率はよいがヒット率が悪い。

WWWロボット。
WWWページからプログラムでキーワードを自動抽出するプログラム。

WWWロボットの動き

ロボットは、あるURLが与えられると、そのページ
を訪れる（ページの内容を得る）。
得たページの内容を解析して、キーワードを抽出する。
そのページにリンクが含まれていたら、1 に戻って繰り返す。

このような繰り返しの方法を、コンピュータ・サイエンスの用語では
再帰(recursion)
とう。ロボットは、世界中の WWWページを歩き回り、キーワードを抽出する。
ただし、一度訪れたことがあるページは記録しておいて、２度訪れないようす
る。

### ◆FAQ

インターネット上の重要な情報源に FAQ がある。
FAQ は、もともとは、
Frequently Asked Questions
の略で、「よくある質問」という意味である。
実際には質問だけでなく
て答えもいっしょに書かれている。しかも、実用的で非常に品質がよい情報
が集まっていることが多いので、質問したいことがなくても、自分の興味がある
分野の FAQ を探して読むことはよい勉強になる。

FAQ を作る活動は、ネットワーク・ニュースでよく行なわれている。というの
も、繰り返しなされる質問をまとめて定期的に投稿することで、記事の質を高
めることができる。インターネットで流通するようなフリー・ソフトウェアで
も、マニュアルとは別に FAQ が作られることもよくある。

## ■Wiki

## Wiki、あるいは、WikiWiki Web は、WWW(World Wide Web) を利用
した共同作業と議論を支援するツール。

普通の WWW は、直接的にはページを編集する機能を提供していないので、情
報の発信者と受信者は明確に区別されていた。Wiki では、基本的にはページ
を表示することができれば、簡単な操作でそれを編集することができる。これ
により、気軽な双方向のコミュニケーションが実現される。wikiwiki とは、
ハワイの言葉で、「素早い、形式張らない、急ぐ」ということを意味している。

Wiki では、WWW ページを記述する時に、HTML のようなマークアッ
プ言語を用いず、基本的にはテキストを用いる。ただし、次のよう
な簡単なルールがあり、HTML に近い表現能力を持つ。

URL や同一サイト内のページ名を書くと自動的にハイパーリンク
が埋め込まれる。
字下げをして「*」(PukiWiki だと行頭で-)を打つと箇条書きになる。

Wiki は、Ward Cunningham氏が開発したものの他に、Wikiクローン
と呼ばれる同等品が多数開発されている。多くのクローンは、Perl
や Ruby のようなスクリプト言語により記述されており、WWW サー
バが持っている、外部のプログラムを実行する機能(CGI機能) を用
いて動作する。

### ◆Wikiの種類

### オリジナルの Wiki に続いて、様々な種類の Wiki が開発された。

PukiWiki。
講義の掲示板 でも使っている。PHP で書かれている。
Tiki
去年まで講義の掲示板で使っていた。Ruby で書かれている。
YukiWiki
PalmWiki
HashedWiki
vikky
PnutsWiki
WiLiki
Hiki
MobWiki
Rwiki
Swiki
CoWeb
TWiki
Py Wiki
Zwiki
JOSWiki

日本製が多い。

### ◆Wikiでできること

WWW ブラウザさえあれば編集できる。
誰で編集できる。
HTML より簡単な規則で(デザインがよい) WWW ページが作れる。

パラグラフ（改行）
箇条書き
見出し
ハイパーリンク
文字飾（強調）
整形済みテキスト（<PRE></PRE>）

過去の履歴や差分が表示できる
コメントがつけられる
RSS/Atom を生成できる

問題点

（ページ単位の）凝った整形はできない。
表記方法が統一されていない。
アクセス権、編集権の管理が難しい。年末年始に、PukiWiki が攻撃された。
サーバへの負荷が大きい
授業でのうまい使い方が見つかっていない。

### ◆ウィキペディア（Wikipedia）

### Wiki を利用した世界規模の共同作業の例として、フリーの百科事
典を作るプロジェクト。

http://ja.wikipedia.org/ ウィキペディア(日本語)

## ■ブログ

## ブログ(blog)、または、ウェブログ(web log)とは、World Wide
Web において日記形式でニュースを発信するものである。

### ◆ブログの歴史

### ブログは、各個人が日々発見した Web ページへのリンク集を公開したことか
ら始まったとされている。当初は、実際に個人的な日記のレベルに止まってい
るものも多く、また、ページのデザインも商用のニュースサイトと比較して見
劣りするものが多かった。

Blogger と呼ばれるブログ作成ツールの登場すると、商用のニュースサイトに
匹敵するようなデザインのページをブログとして簡単に作ることができるよう
になった。それに伴い、充実した内容を含むものも増え、専門家による情報発
信にも利用されるようになった。今日では、ブログはパブリッシングツールと
しての地位を得初めている。

ブログが一般的に着目され始めたのは、9月11日の米国同時多発テロ事件以後
である。イラク戦争の前には、「Where is Raed ?」と題するバグダッド在住
の Salam Pax と名乗る人物のブログに１日数十万件のアクセスがあった。こ
のような出来事では、現場の人の声やマスメディアでは報道されないような情
報がブログとして発信された。

日本では、土佐日記以来、誰かに読まれることを前提にした日記（形式の文学）
の歴史があり、今でも個人的な日記も多い。

### ◆ブログと単なる Web ページの違い

時系列にデータが既述される。普通はあたしいものが上。
HTML を書かなくてもよい。
コメントが簡単に入れられるようになっていることが一般的。
「トラックバック」の機能がある。自分のブログに帯するコメントが他
のブログに現れた場合に、それを接続する。
RSS 等で更新情報を配信する機能がある。

### ◆ブログ・ツール

### サーバで CGI や PHP で実行する

Blogger
Movable Type
Blosxom
Nucleus
b2
Drupal
pMacine
tDiary
a-news/a-nikki

一般のアプリケーションとして実行する

Radio UserLand
iBlog
BlogWrite
ecto
MobileAtom

コンテンツ・マネージメント・システム

XOOPS
Slashcode
Geeklog
PHP-Nuke

サイト

はてなダアリー
Doblog
ドリコムブログ
goo BLOG, livedoor ブログ, 楽天広場blog
その他、インターネット・サービス・プロバイダ系

### ◆blogの内容

個人の情報発信、自分の意見の発信
仲間を集める
専門的な内容

## ■RSS (RDF Site Summary)

## RSS (RDF Site Summary、 または、 Rich Site Summary)は、Web
サイトの要約や見出しを記述するための XML 形式。

RSS の
記述は、全体で大きく２つの部分に分かれる。前半は、Web サイト
全体（RSSではチャネルと呼ぶ）の記述であり、Web サイト全体の
タイトル(40バイト程度)、URL、および、リンク、簡単な説明(500
バイト以内)が含まれる。後半では、個々の Web ページのタイトル
や URL が置かれる。

RSS は、ニュースサイトが記事の見出しを配信するためによく使わ
れている。また、ブログ(blog、Web log)のツールの中には、自動
的に RSS により更新情報を提供するものがある。RSS を自動的に
収集して表示するためのブラウザや RSS を蓄積し検索サービスを
提供する Web サイトも開発されている。

現在、RSS には、1.0 系列と 0.9-2.0 系列の２つの系列がある。
RSS は、1999年、Netscape Communications社により、自社のサー
ビスで見出し一覧を配信するために開発された。その後、見出しだ
けでなく、要約、日付などの拡張がなされた(RSS 0.9, 0.91)。
Netscape が開発をやめた後、RSS-DEV と呼ばれる開発グループが
作られた。そのグループにより、基本的な要約提供部分をコアとし、
高度な機能をモジュールとして追加できるようにした RSS 1.0 が
策定された。一方、別のグループは、RSS 0.91 を元にして、コン
テンツ配信を目指して RSS 2.0 を作成した。

RSS 2.0 は、クリエティブ・コモンズのライセンスで配布されている。

RSS -- サイト情報の要約と公開 by 神崎正英 http://www.kanzaki.com/docs/sw/rss.html

### ◆Atom

### RSS と同様に、見出しを配信するための形式。
IETF (Internet Engineering Task Force) で開発されている。
次のような RSS の問題を解決することを目指している。

仕様の曖昧性の排除。
拡張可能性がある。
自由に使える。
Atom API という、記事の投稿・更新・削除の機能が定義されている

### ◆RSSリーダ

### RSS で配信された見出しを元に、元のページを表示する機能を持つWWW ブラウ
ザを RSS リーダという。多くの場合、RSS だけでなく Atom を扱える。

英語圏では、「RSS reader」よりも「aggregator」という呼び方が多い。
複数の RSS や Atom で配信されている情報を１つに集約(aggregate)して
読みことができることによる。

RSS reader/Aggregator を使うと、単純に WWW サイトを訪れる方法と比較し
て、楽に更新された情報を見ることができる。メーリング・リスト等と
比較して、spam が混入することは（今の所）ない。

２種類の方法がある。

単体のアプリケーション
Web サイト, Bloglinesなど

## ■実習

### ◆cgi-printargの実行

### cgi-printarg.html,http://www2.coins.tsukuba.ac.jp/~yas/ipe/inet-2004/2005-01-24/cgi-printarg.html にある CGI のプログラムを
実行してみなさい。GET と POST の違いを比較しなさい。

GET の例で、WWW ブラウザに現れた URL に ? 以降のパラメタを変更してみなさい。

テキストボックスの中に漢字を入れた場合どうなるか観察しなさい。

### ◆telnet による cgi-printargの実行(get)

### HTTP による WWW ページのアクセス
と同様に、telnet コマンドによりサーバに接続して、CGI を実行しなさい。

まず、サーバに telnet (Tera Term) でサーバ (icho) に接続してログインしなさい。
一連の作業が終わったら、exit でサーバからログアウトしなさい。

サーバで、次のように telnet コマンドを実行する。

- % telnet www2.coins.tsukuba.ac.jp 80
- 注意：www ではなく www2。ipe ではなく coins。
「Escape character is '^]'.」と表示されたら、次のように打つ。
- GET /~yas/ipe/inet-2004/2005-01-24/cgi-printarg.cgi?lastname=l1&firstname=f1&sex=Male&email=a%40b HTTP/1.0

( (Return, Enter)は、２つ必要。)

これができたら、GET の ? 以降のパラメタを変更してみなさい。

GET /~yas/ipe/inet-2004/2005-01-24/cgi-printarg.cgi?a=1&b=2&c=3 HTTP/1.0

同様に、telnet で接続された後に、次のようなデータをサーバに送って見なさい。

POST http://www2.coins.tsukuba.ac.jp/~yas/ipe/inet-2004/2005-01-24/cgi-printarg.cgi HTTP/1.0
Content-Length: 43
lastname=1&firstname=2&sex=Male&email=a%40b

ここで、43 は、送るデータのバイト数(空行を含まない)である。
変数を修正する時には、バイト数（ASCII文字(英数字直接入力)なら文字数）と一致している。

### ◆Javaアプレットのパラメタの修正

### Javaアプレットのタグの例で用いたアプレットに対して、
別のパラメタを与えて実行してみなさい。たとえば、WIDTH, HEIGHT, PARAM の
VALUE 属性を変更してみなさい。

### ◆検索エンジンの使い分け

### 自分が欲しい情報を決めなさい。それを、次の２種類の検索エンジンを
使って検索しなさい。

ディレクトリ型
全文検索型

探したい情報により、どちらを選択すればよいかが違う。

### ◆よいキーワード

### よいキーワードになるものには次のようなものがある。

固有名詞
珍しい単語、あまり使われていない単語

これを確かめなさい。他にどのようなキーワードがよいか。

固有名詞を例に、類似のデータを引出してみなさい。

### ◆キーワードの組み合わせ

### AND, OR, NOT などの演算で組み合わせてみなさい。

検索エンジンによっては、これ以外の他の演算子を提供していることがある。

### ◆課題7 Wikiサイト、または、ブログの紹介

### 他の人に推薦したい Wiki サイト、または、ブログを探し、紹介しなさい。次
のような情報を含めなさい。

URL
内容（３行程度）。
更新頻度。最終更新時刻。
推薦する理由。

紹介ページは、
講義の掲示板
の所定の場所に起きなさい。ただし、同じ Wiki サイト、または、ブログを紹
介してはならない。重複していた場合、最初に URL を既述した時刻の古い方
を優先するとし、新しいものは、別の場所を探しなさい。

締め切りは、2005年1月31日月曜日 23:59:59 とする。

↑[もどる]
←[1月17日]
・[1月24日]
→[1月31日]

Last updated: 2005/01/24 17:07:58