サーバとブラウザの関係

 ・ユーザには、一般的にはnobodyやnogroupを使用するが、任意の名前を指定することもできる。
 ・その場合は、その名前はシステムのパスワードファイル(/etc/passwd)とグループファイル(/etc/group)に登録されている必要がある。
 リクエストメソッドとは?
GET 指定データのリクエスト
HEAD ヘッダ情報のみをリクエスト
POST サーバにデータを送信する(CGIフォーム入力等)
PUT サーバのドキュメントの内容を置換する
DELETE サーバのドキュメントの内容を削除する
 GetメソッドとPOSTメソッドの差異
  • getはその名の通り、何かをゲットする(取り出す)のが本来の役割である。データベースにキーワードを送って検索結果を「取り出す」などのためにgetを用いる。
  • getはクエリがURIの一部になるため、それがそのままブックマークされたり、リンク先として用いられたりする可能性もある。
    (http://www.futomi.com/cgi-bin/lecture/form/test.cgi?namae=%91%BE%98Y&OS=win&submit=%91%97%90M)
  • getのクエリはサーバーの環境変数( QUERY_STRING )を経由してCGIに渡されるので、非常に長いデータを送るのには向かない。上限はサーバーによって違いがあるが、せいぜい数KB程度なので、texarea要素などで長いテキストを入力する場合はpostが適切である(一般的には、このようなケースはデータの登録であり、postの本来の定義に合致する使い方になる。)。
  • getの場合はクエリの内容がURIの一部としてブラウザのアドレス欄などにも表示されたり、サーバーのログファイルに記録されたりする。プライバシーの保護上、postのほうが望ましい場合がある。(たとえばinput要素のtypeをpasswordとしているのに、getメソッドを使ってURIにその内容が残るのはまずいかも)
  • postは「投稿する」を意味する。メッセージの書き込み、新規データの登録など、何かをプログラムに送って内容を書き換えるような場合はpostを使わなければならない。
    (The Web Kanzaki から引用=http://www.kanzaki.com/docs/html/htminfo32.html)
  
 HTTPヘッダとは!!
 HTTP1.1で定義(RFC2616)されているヘッダの種類は、リクエストヘッダ、レスポンスヘッダ、エンティティ(=実在物)ヘッダ、一般ヘッダの4つである。ただし、エンティヘッダと一般ヘッダについては、従前に使っていた情報を整理しただけである。
リクエストヘッダ
・クライアントの環境情報を含めることが出来る。
・含まれる情報は、環境変数としてCGIプログラム
に引き渡すことが出来る。

・GET/test/HTTP/1.1
Accept 利用可能なアプリケーション・メディアタイプ
Accept-Charset 利用可能な文字セットの指定
Accept-Encoding 利用可能なエンコーディングの指定
Accept-Language 利用可能な言語コードの指定
Authorization ログインに必要な認証情報の送信。ユーザ名とパスワードを送信
Host リクエスト先サーバ名。DNA名を利用する
Referer 直前にリンクされていたURL
User-Agent Webブラウザの固有情報やOSの種別など
レスポンスヘッダ

HTTP/1.1 200 OK
server:Apache/1.3.12
Age キャッシュデータの経過時間
Etag エンティティタグ
Location リダイレクト先のURL
Sever HTTPサーアプリケーションの情報
www-Authenticate 認証の領域を示す固有値
エンティティヘッダ
・リクエストとレスポンスの両方で使える

Content-type:text/html
Content-Encoding コンテンツのエンコード方法
Content-Length コンテンツのサイズ
Content-tyape メディアタイプ。MIMEのメディアタイプと同様
Contentt-Language コンテンツが使用する言語コード
Last-Modified コンテンツの最終更新時刻
一般ヘッダ
コンテンツ情報では、通信に関する情報が入いる

date:Mon.5 August 2002 14:09:09:GMT
connection:close 
Date 日付情報
Connection 持続接続
Transfer-Encoding 利用されている転送エンコーディング形式
Via 経由したプロキシなどの情報を格納する
Warning ステータスコードの付加的なコード番号やテキスト情報
 コンテントネゴシエーション
 たとえば、サーバに対して Accept-Language: ja という要求が来れば日本語版の、Accept-Language: en という要求があれば英語版のデータを送る、というように、ユーザの要求内容によって異なる内容を送る仕組みのことをいう。
 HTTP1.1、大切なプロトコル!!
 リクエスト⇔レスポンスを1 つのTCP/IP コネクションとし、セッションという概念を持たないステートレスな通信であるHTTP は、リクエストごとにTCP/IP コネクションが生成されるため、1 つのHTML ファイルが複数の画像ファイルを指定している場合や、ページがフレーム分割されている場合など連続したリクエストが生じるとパフォーマンスが低下するといった弊害が起こる。
 HTTP/1.0 でもヘッダーに"Connection:keep-alive"を指定することにより持続的接続を可能にしているが、実験段階であり、その実装は完全ではない。そのため、持続的接続機能HTTP/1.1 で標準的に取り入れられている。ヘッダに"Connection:close"を含めることで、持続的接続が終了するようになっている。
 擬似的な持続的接続とは?
 HTTP/1.1の利用については、先に述べたが、では今まではこの持続的接続(擬似)をどうしていたのか。
 ステートレスなHTTP に擬似的なセッションを可能にするHTTP Cookieを使用していた。そのためには、Web サーバはレスポンスヘッダーにSet-Cookieヘッダーをセットして有効期限・有効パス・有効ドメインなどのCookie情報や、任意のパラメータをWeb ブラウザに送信していた。また、CGI ではWeb ブラウザからのCookie 取得のため環境変数HTTP-COOKIEを使用し、サーブレットではAPIを使用している。
 ・ヘッダーにCookieがセットされるのは、CGIソフトからサーバへのレスポンス時である。
 ・「Set-Cokie」へッダーはサーバーからWebブラウザへ送る。
 ・HTTP-COOKIEはWebブラウザからCGIプログラムの環境変数である。
 WebDAV(ダブ)とは?? −HTTP1.1の拡張
 WWWでファイルの転送に使われるHTTPを拡張し、クライアント(Webブラウザ)からWebサーバ上のファイルやフォルダを管理できるようにした仕様。HTTP 1.1を拡張した仕様で、IETFによってRFC 2518として定義されている。
 従来のHTTPはWebサーバが公開しているファイルをWebブラウザへ送信するためのプロトコルだったが、WebDAV(ウェブダブ)はこれを拡張し、クライアントで作成された文書をサーバに送信して公開したり、サーバ上のファイルやフォルダの一覧を取得したり、ファイル・フォルダの複製・移動・削除が行なえるようになっている。
 基本的なファイル・フォルダ管理機能のほかにも、Webページの作者や作成日などの付加情報を管理する機能や、編集中の文書を他のユーザが書き換えられないように保護(ロック)する機能、ファイルの修正情報(リビジョン情報)を管理する機能などがある。
 誰でもサーバの内容を改変できるのは危険なため、通常は、ユーザ名とパスワードによるユーザ認証を行ない、権限のあるユーザのみがWebDAVを利用できるよう設定する。
 ファイル転送などの機能はFTPに近いとも言えるが、HTTPの拡張仕様であるため、SSLによる暗号化やプロキシなどをそのまま利用することができる。WebサーバにWebDAVを組み込みことでファイル転送のために複数のプロトコルを管理する必要がなくなる
 WebDAVを利用するには、WebサーバとWebブラウザの双方が対応している必要がある。最近では、Internet ExplorerやIIS、Apache(Apache2.0では"mod_dav”モジュールが標準で組み込まれている。)など有名なソフトウェアの最新版はたいていWebDAVに対応しているか、簡単にWebDAV機能を追加できるようになっている。(IT用語辞典より)
 
 HTMLの丸暗記ポイント!!
 これも丸暗記しよう
 ・マークアップ言語(文書整形言語)である。
 ・HTMLはSGMLの一つのDTDとして定義されている。HTMLはSGMLの一つのアプリケーションであるとも言われていた。
 ・HTMLファイルは、文字情報のみからなるプレーンテキスト(平文)である。
 ・SGMLは仕様が複雑なので広く普及することはなかった。
 ・DTDに基づいた規格である。 DTD=文書型定義
 ・DTDはHTML Specificationと呼ばれる。 Specification=仕様書、明細
 ・HTMLはコンテクスト(文脈だけのテキスト)の記述言語である。
 ・W3Cでは、様々なバージョンのDTDを拡張子”.dtd”のファイル形式で公開している。
 ・文章を非線形につなげるハイパーテキストを採用している。
 ・HTML 0.9にはヘッダーという考え方が無かった。
 ・ハイパーテキストを実用化したものとして、HyperCard、RTFやTex(テフ、テック)がある。
 ・最近ではハイパーテキストを超えハイパーメディアと呼ばれている。
 ・文字コードの宣言
区  分 HTML上での宣言
ASCIIコード Shiht_JIS shift-jis
JIS iso-2022-jp
EUCコード EUC−JP ja
Unicode ISO/IEO-10646の一部 ??
 HTMLのバージョンと特徴の丸暗記
バージョン  勧告 拡張タグ 特       徴
2.0 IETF 含まない  ・Web標準のマークアップ言語
・ブラウザ(勝手に拡張機能を増やした)ごとで異なった表示となってしまった。
3.2 W3C 含む ・Webブラウザが先行的に搭載した拡張機能をふんだんに取り入れた
4.0 W3C 含まない ・「コンテクストを記述する」という原点に立ち戻った。
・Webブラウザの拡張機能による問題点を解決する仕様になっている。
スタイルシートを推奨している。
4.01 W3C 含まない ・strict (厳密)DTD、Transitional(過渡期の) DTD、Frameset DTD
コンテクストはHTMLで、ビジュアルデザインはスタイルシートで記述する
 HTML記述で、<font SIZE=”6”>〜</font>における開始タグはどれか?
 私は迷うことなく<font>と答えたのだが、正解は<font SIZE=”6”>であるそうだ。あるそうだというのは、私も今回始めて知ったことで、今までも勉強には出てこなかったからだ。こんな調子でいいのだろうか??
 HTMLの”DOCTYPE”の意味は
 使用するHTMLのDTDを使用を宣言するもの。これがなくてもHTMLは表示できるが、これをつけるのが仁義である。
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">と宣言をする。宣言したからにはそのように記述するのは当然である。
 非推奨属性の丸暗記
 これも丸暗記。勿論、私が知らないものだけを列挙する。
タグ 属性名 タグと属性の意味
iframe align インラインフレームの行揃え
input align インプットフォームの行揃え
legend align フォーム説明の行揃え
object align オブジェクトの行揃え
pre width 等幅テキスト横幅
tr bgcolor 表の行の背景色
ul compact 番号なしリストのコンパクト
type 番号なしリストの項目タイプ
(参考:あんまし使わないタグ)
DL 説明つきリスト
OL 番号つきリスト
UL 番号なしリスト
 スタイルシートを使用するメリットとは?
 ・文書レイアウトやデザインを一括して変更することが出来る。私も最近やっと、スタールシートの便利さがわかり、徐々に取り入れている。このサイトも、エンベッド方式でスタイルシートを利用している。書き方には、次の方法がある。
 ・W3Cでは、文字構造はHTMLタグで行い、ビジュアルデザインの記述はスタイルシートで行うことを推奨している。
リンク方式 <head> <link rel="stylesheet" type="text/css" href="style.css"> </head>
エンベッド方式
<head><style type="text/css"><!--  スタイルシートの記述--></style></head>
インライン方式 <タグ名 style="color:red"></タグ名>
 絶対アドレスと相対アドレスの表記方法は?
この場合を考えてみる。
相対アドレスでの表現
「../mama/index3.html 」 これは問題ない。

絶対アドレスでの表現
「 http://ww.sinzo-net.jp/mama/index3.html 」 これも問題ない。
問題は、 「/mama/index3.html」もOKということである。
これは、/mama/index3.html=/home/mama/index3.htmlと考えルートディレクトリhomeを省略した絶対アドレスと考えれば良い。
 絶対アドレスの表示方法は?(これで完の璧である!!)
 「http://ww.sinzo-net.jp/mama/kodomo/index4.html 」 これは問題ない。

 「/sinzo/kodomo/index4.html」も正解である。homeというルートディレクトリ名が省略されている。

 「./」という記号を見るが、これはカレントディレクトリを指している。「./kodomo」はkodomoというディレクトリにいることを現している。自分と同じディレクトリという言い方も出来ます。また、「./」は付けても付けなくてもかまわないことになっている。ややこしい話。
 W3Cの勧告とは?
 ・W3Cは政府機関でない。したがって勧告には強制力はない。
 ・勧告を守らなくても良いということではない。守らないとインターネットの利便性が崩れてしまう。
 ・勧告へは、技術ノート→草案→勧告候補→勧告案→勧告のステップを踏む。
 WAPとiモードが主流とは?
 携帯電話で使用する無線プロトコルとしては、WAP(ワイヤレス・アプリケーソン・プロトコル)とiモードが2大勢力といえよう。長期的な目で見ればWAPの方が拡張性・柔軟性ともに勝っているが、iモードは携帯電話の爆発的な普及によって圧倒的なユーザ数とソフトウェア資産を持っており、技術的な欠点も改善されてきている。この2大勢力は当分の間続くことになるだろう。
方式 特徴 欠点
WAP ・階層化プロトコルなど拡張性を重視
・無線部分にバイナリ転送を採用するなど、効率、端末の負担軽減を配慮
・コンテンツ記述にWML(ワイヤレス・マークアップ・ランゲージ)というスクリプト言語を使用している
・セキュリティレイヤーの充実
・コンソーシアムによる様々な技術の集約
・ゲートウェイの負担が大きい
・HTMLなど既存システムとの互換性が低い
・実装や導入が難しい(コスト、技術)
・仕様決定等に時間がかかる
iモード ・HTMLやサーバなど既存のインフラとの親和性が高い
・扱うデータはテキストベースのパケット
・コンテンツ記述にCHTMLというHTMLのサブセットを使用
・発表と同時に普及し、日本においてはデファクトスタンダード
・ゲートウェイの処理能力がピーク時に対応できない
 (災害時、大晦日)
・通信速度が遅く、効率が悪い
 (大容量、高速通信には不向き)
・拡張性は低い
・符号化方式など、仕様や機能がIMT-2000に対応していない
WAPの実用例は、KDDIグループのEZwebがある。
 NTTドコモの「FOMA」なるものは?
 このFOMAは先に記述した2大勢力の合流点と言える。なぜなら、このFOMAはNTTドコモの仕様なのだが、WAP2.0が採用されているのだ。WAP2.0はエリクソン社とNTTドコモが共同開発したものである。iモード一辺倒のNTTも将来的なことを考え、TCP/IPを中心としたインターネット技術を取り入れたWAP2.0の開発に携わったのである。このTCP/IPを中心とした技術である点が重要である。何故なら、それならばiモードとの親和性が優れているからである。それらの経緯から、2003年にNTTドコモ携帯「FOMA」が誕生した。 
 携帯電話等のWeb対応、これも丸暗記しかない
 Web開発者は会社ごとに記述言語が異なっていたため開発は大変であった。しかし、WAP2.0の登場により、記述言語が統一されようとしている。
例えば、
 ・「FOMA」ではデュアルブラウザなるものを搭載して、iモードとWAP2.0のXHTMLの両コンテンツを表示することが可能となっている。
 ・EZWebでも、「GPSケータイ」「ムービーケータイ」といった最新の機種では、HDMLによるコンテンツの他にXHTMLによるコンテンツも見ることが可能になっている。
  社名等 名称 使用言語
携 帯 NTTドコモ iモード CHTML→HTML のサブセットであり下位互換性がある。
ボーダフォン
(旧J−PHON)
ボーダフォンライブ
(旧J−スカイ)
XHTML→WAP2.0に対応している。
KDDIグループ EZweb HDML(ハンドヘルド ・デヴァイス・ マークアップ ランゲージ)
・そのままでは、iモードや通常ブラウザで表示できない。
・Apache上での使用は、メディアタイプの設定が必要となる。
WAPに基づく言語である。
・拡張子は「.hdml」である。
無 線 WAP(Wireless Application Protocol)
(携帯でインターネットを利用するプロトコル
WML
(ワイアレス マークアップ ランゲージ)
下位互換と上位互換
下位互換

 下位(先発)に位置するソフトウェアなどの製品が、上位(後発)に位置する製品に対応したデータなどを扱えること。旧バージョンのアプリケーションソフトが、新バージョンのアプリケーションソフトで作成したファイルを扱える、というのが下位互換の典型例である。下位互換を実現するためには、上位に位置する製品が下位に位置する製品に対して配慮するか、下位に位置する製品が上位に位置する製品を踏まえた形で後から開発されるか、のいずれかが必要である。一般に、下位製品は上位製品の機能を完全にはサポートできないため、制限のついた下位互換になっていることが多い。

上位互換
(一般的)

 上位(後発)に位置するソフトウェアなどの製品が、下位(先発)に位置する製品に対応したデータなどを扱えること。新バージョンのアプリケーションソフトが旧バージョンのアプリケーションソフトで作成したファイルを自由に扱える、というのが上位互換の典型例である。ソフトウェアのバージョンアップが行われる際には、上位互換性をもたせるのが一般的。

 KVM(K バーチャル マシーン)とは、なんぞや。丸暗記、丸暗記。
 ・KVMの開発元はアクセス(Sun Microsystems社ではない)で、128KB程度のメモリでJavaを動作させることができる。
 ・iモード「503i」シリーズに搭載されているJVMにはKVM(Java2の機能セットの一つであるJ2MEのコアが採用されている。
 (注)iモード「503i」シリーズはSSLにも対応している。
 iアプリとは?
 ・NTTドコモは、2001年からJava(通称「iアプリ」)を搭載して、Chtmlによるサービスだけではなく、付加価値を付けた。
 ・そのお陰で、天気予報、地図検索、切符の購入、カラオケ等が可能となった。
 ・iアプリ=サンマイクロシステム社 J2ME+iモードAPIで構成されている。
 ・iアプリ仕様にはDoja1.0、Doja2.x、Doja3.0が用意されている。
 ・2003年、「505i」シリーズに搭載されたDoja3.0は、これまで出来なかった携帯内のデータへのアクセスが可能となった。赤外線リモコンを簡単に利用できるAPIも追加されている。
 IMT−2000とは?

 国際電気通信連合(ITU)が2000年の規格制定を目標に標準化を進めている次世代携帯電話の方式。2GHzの周波数帯を使い、有線電話並みの高音質の音声通話や最大2Mbpsの高速なデータ通信、高速なデータ通信を応用したビデオ電話などの各種の通信アプリケーションを実現する。世界標準として全世界で同じ方式を普及させることを目指している。
 ・1980年代の音声通話を中心としたアナログ方式が第1世代の移動通信システム(1G)=FDMA(周波数分割多重接続)
 ・現在の携帯電話で利用されているデジタル方式が第2世代(2G)=TDMA(時分割多重接続)
 ・IMT-2000が第3世代(3G)に当たる。NTTドコモやボーダフォンやとヨーロッパ企業はW-CDMA方式を採用している。また、KDDIグループやアメリカ企業はcdma2000方式を採用している。結局両規格とも採用され運用されている。
 cdmaOne(過去にKDDIグループが運用)はN-CDMA(ナロー・CDMA)と呼び、区別されている。

 ActiveXとは?
 ・プラグインの考え方は、NetScape Navigatorに搭載された技術である。これに相当するMicrosoft社の技術をActiveXという
 ・同社はプラグインという位置づけではなく、インターネット関連技術の総称としている。
 ・そのベースになっているのは、同社のアプリケーション開発の基盤ともなっているCOM(コンポーネット・オブジェクト・モデル)である。
 WebでのMIMEとは?
 MIME はWebサーバがレスポンスヘッダにMIMEタイプ/サブタイプを記述し、Webブラウザに送信することにより機能する。Webブラウザがファイル形式に対応していれば表示し、そうでなければMIMEに応じたアプリケーションを起動する。

MIME(マイム)=Multipurpose Internet MailExtensionsの略。
インターネットの電子メールのプロトコル。もともとインターネットの電子メールでは半角の英数字しか送ることができなかったが、MIMEに対応している電子メールソフトを使うと、漢字などの2バイト文字が扱え、画像や音声などのバイナリデータをやりとりできる。
(アスキー デジタル用語辞典より)
 MIMEタイプとは?
htm text/html text text/plain .jpeg image/jpeg gif image/gif
midi audio/midi wav audio/x-wav au audio/basic ra audio/x-realaudio
 pdf application/pdf  doc application/msword   qt,mov video/quicktime  mpeg    video/mpeg
エンティティヘッダに”Content-Type:text/html”と書かれる。
MIME=トップレベルタイプ名/サブタイプ名で記述される。
トップレベルタイプはIANAが管理している。サブタイプは企業などが独自のアプリケーションファイルタイプを申請すれば登録できる。ベンダー特有なものであってもOKである。
 Javaアプレットなるもの?

 ネットワークを通じてWebブラウザにダウンロードされ、ブラウザのウィンドウに埋め込まれて実行される小さなJavaプログラムのこと。
 Javaアプレットを悪用してユーザのコンピュータに被害を与えることのないように、ユーザのハードディスクの内容を読み書きしたり、自分が呼び出されたWebサーバ以外のコンピュータに接続したり、他のアプリケーションソフトを起動したりすることはできないようになっている。
 Javaアプレットを使うことにより、HTMLで記述された静的なWebページでは実現できない動的な表現が可能となる。また、Webブラウザのみで利用することができるネットワークゲームやチャットを開発することもできる。
 企業内のクライアントサーバシステムでJavaアプレットを利用すれば、社員のコンピュータにはWebブラウザを入れるだけでシステムを利用できるようになり、アプリケーションソフトの配備や管理にかかるコストを節減することができる。

Javaには、正確にはJDKにも幾つかのバージョンがある。
IE4.0とNN4.06以降のブラウザはJDK1.1に対応しているが。それ以前のブラウザはJDK1.0までの対応となっている。特に、1.2、1.3を使う時には注意が必要となる。
JVMにはセキュリティホールがたびたび見つかっている。悪意あるアプレットを読込んだ時は、情報漏洩の恐れがある。
IE3.0以降のブラウザがインストールされているWindows(95以降)では、Javaインタープリタとアプレットビューワ機能を備えたソフト(jview.exe等)を利用することで、JDKを導入することなくJavaアプレットの動作テストを行うことが出来る。

 JavaScriptの丸暗記
 ・言語を開発したのはネットスケープコミュニケーションズである。
 ・プログラムはブラウザ上でインタプリタにより解釈実行される。
 ・Q:ソースコードを見られないするためには→Scriptを記述したファイルをサーバにおき(拡張子=".js")、HTMLからURLを指定する。こうすることで、スクリプト記述を共有することも可能となる。
 ・<SCRIPT Type="text/JavaScript"><!-- この間にコードを書く //--></SCRIPT>で記述する。
 ・<SCRIPT LANGUAGE="JavaScript"> <!-- この間にコードを書く //--></SCRIPT>、最近はもっぱらこちらで記述している。
 JavaScriptはサンドボックス(砂の箱)で実行される、とは?

 サンドボックスとは、保護された領域内でプログラムを動作させることで、その外へ悪影響が及ぶのを防止するセキュリティモデル。「子供を砂場(サンドボックス)の外で遊ばせない」という言葉が語源だと言われている。
 このモデルでは、外部から受け取ったプログラムを保護された領域、「箱」の中に閉じ込めてから動作させる。「箱」は記憶域内の他のファイルやプロセスからは隔離され、内部から外界を操作することは禁じられている。
 このため、そのプログラムが暴走したり、外部から侵入した悪質なウイルスであっても、「箱」の外にあるデータなどに影響を与えることはできない。なるほど、なるほど!!

  JavaScriptとCGIの使い分け、なんかゴチャゴチャニ!!
 こんがらがる原因は、どちらでも同等の機能を提供できることにあるようだ。クラインと側か、サーバ側か、で判断すればよいのだが。
CGI  ・アクセスカウンタ
 ・掲示板
 ・チャット
 ・アンケート
 ・フォームメール(Web で入力されたデータを指定のメールアドレスに送付する、sendmall等サーバのプログラムを使う場合)
 ・ショッピングバスケット
 ・アクセスコントロール(パスワードを正しく入力した場合だけ、次のページを表示)
JavaScript  ・時計(サーバから時刻情報を得てWeb に表示する)、簡易時計
 ・カーソルに合わせて、画像が動き回る
 ・合計金額の自動計算
 ・入力データのチェック
 ・アクセスしたブラウザのバージョンにより表示するページを変える。(i モード対応ページ)
 JAVAアプレットの記述方法は?
 こんな感じで書きく。
 <APPLET CODE="sinzo.class" WIDTH=500 HEIGHT=200> 記述 </APPLET>
 JAVAサーブレットの丸暗記
 ・サーブレットエンジンにより実施させる。
 ・リクエストごとにプロセスを起動しない。
 ・Web サーバ内のサーブレットエンジンでスレッド単位に実行される。
 ・メモリに常駐するためにセッション単位でアプリケーション状態を維持できる。
 ・次の記述はJAVAサーブレットの特徴を端的に表現したものである。必ず出題される箇所である。
 ・サーブレットエンジンとサーブレットAPIを組み込んだTomcatが利用されている。
 Web サーバ内で実行されるJava プログラムをJava サーブレットと呼ぶ。Java サーブレットの特徴はWeb サーバ内のサーブレットエンジンでスレッド単位に実行されることや、メモリに常駐するためにセッション単位で状態をアプリケーション維持できるため、サーバに対する負担が少ない。
 JSPの丸暗記

ハイパーテキストの中にJavaベースのスクリプト埋め込んで実行する仕組み。JavaScriptと似ている。
HTMLのScriptをWebサーバが処理する技術である
 サーブレットとJSPのHTML作成上の技術的相違点
 2つの技術は機能的には相違はない。しかし、HTML文章を作成する上で大きな相違がある。サーブレットは、HTMLを出力する命令をソースコード自体に記述しなければならない。それに対してJSPでは、HTML中に埋め込まれたJavaコードに動的な処理部分を依頼し、基本となるWebページは静的に作成することで、簡略を図っている。サーブレットは大変である。メンテナンスするプログラマーも苦労していることだろう。
 データベースとの連携
 ・データそのものであるファイルシステムとRDBMSとpは独立性を保った上で連携している。
 ・DBとWebとの連携のためのスクリプト言語としては、Apache Webにモジュールとして組み込んで使用できるPHPが広く知られている。
 ・JSP/サブレットをDBとの連携のためには、JDBC APIが用意されている。
 アクセス制限とは?
 Webページは、本来、一般開放しているものなので、アクセス制限とはおかしな話である。しかし、昨今のインターネット事情を考えるとアクセス制限はどうして必要になってきたことは容易に理解できる。Webの利用が幅広くなるにつれますます制限は強くなっていくであろう。アクセス制限は大きく次の2つに分けることが出来る。
ホスト単位のアクセス制限 特定のIPアドレス・ホスト名・ネットワークからのアクセスを許可・禁止する
ユーザ単位のアクセス制限 ユーザ名とパスワードにより管理されたユーザまたはユーザグループからのアクセスを許可・禁止する
 ユーザ認証とは?
Basic認証 mod_auth  Basic 認証は平文(暗号化されない文)でユーザから送付されてきたID とパスワードを、あらかじめApache 付属のhtpasswdコマンドを使用して、ID と暗号化されたパスワードが保存されているパスワード情報ファイルと照合し認証を行なう。
Digest認証 mod_auth_digest  Digest 認証はユーザが平文でID とパスワードを送付すると、Web サーバはIPアドレスや時刻をMD5によってハッシュしてチャレンジ文字列を作成し、それをユーザに返信(チャレンジ)するとともに、それを自身のパスワード情報ファイルの情報と併せてハッシュして認証情報を生成する。
 一方、チャレンジコードを受信したユーザも、それをID とパスワードと併せてハッシュしてレスポンス文字列を生成して、Web サーバに送付する。そして、Web サーバ内で両者(認証情報とレスポンス文字列)の情報が照合され認証が行なわれる。
Anonymous認証 mod_auth_anon  Anonymousは、アノニマスと読む。匿名の意味である。私はアノニマウスと覚えることにしている。それが違っていることが分かっていても。
 一番分かり易い例では、FTPを使って公開ファイルにアクセスする方法である。通常のFTPでアクセスするにはログイン名とパスワードが必要だが、匿名の(anonymous)ユーザーでもファイルにアクセスできるように、ログイン名に「anonymous」または「ftp」パスワードに自分の電子メールのアドレスを使う。しかし、最近はこういったサーバも少なくなったと思う。そういった利用の必要性がなくなってしまったからだ。
 SSLとは?
 ・ネットスケープ・コミュニケーションズ社が提唱、開発した技術で、インターネットバンキングなどで広く利用されている。
 ・使用しているテクニックとしては、電子証明書(CA=認証局が発行したもの)、公開鍵、秘密鍵、ハッシュ関数などである。
 ・データの盗難、改ざん、なりすましを防ぐことができる。
 ・サーバとクライアント間ではHTTPSというプロトコルを使用する。両方がHTTPSに準拠している必要がある。
 ・IEやNN3はバージョン3.02からHTTPSに対応済みである。ほとんど意識することなく利用できる。
 ・HTTPSは、HTTPと違って。ネゴシエーション(暗号アルゴリズムやデジタル証明書の確認といった通信状況の合意処理)ごとにセッションを確立し、その都度違う共通鍵を使って通信を行います。
 ・SSLはOSI参照モデルのトランスポート層に属しているので、HTTPばかりでなく、FTPやTELNETにも利用できる。
 ・日本におけるCAとしては、日本ベリサイン株式会社、日本ボルチモアテクノロジーズ株式会社、日本認証サービス株式会社がある。
 ・CAから電子証明書を発行してもらうには、1年ごとに費用がかかる。
 ・ただし、必ずしも第三者のCAでなくても、自身を認証局として証明書を発行し、Webサーバに組みことは可能である。信頼度は低くなるが、プライベートなネットワークやコミュニティなどの暗号化という目的では十分に役割を果たすことが出来る。
 HTTPのステートレス問題とは?
 もともとHTTPにはリクエスト⇔レスポンスを1つのTCP/IP コネクションとし、持続的接続という考えがなかった(元からステートレスという考え方)。しかし、ページに画像が多く使われたり、フレーム分割されている場合など、何度もセッションをしなおすため、パフォーマンスが落ち、不便と言わざるをえない。それを解決するため、HTTP/1.1 では標準的に持続的接続という機能が取り入れられた。、HTTP/1.0 ではヘッダーにConnection : Keep-Aliveを指定することにより持続的接続を可能にしている。
 HTTP Cookieの利用とは?
 ステートレスなHTTP ではらちがあかない。特にWeb上で一連の作業を進めているときに、その度ごとにセッションがON・OFFされては堪らない。そこで擬似的なセッションを可能にするHTTP Cookieが考え出された。これは、ネットスケープコミュニケーション社が考えだした。一言で機能を説明すると、”Webサーバが利用者を識別する仕組み”と言えよう。
 その仕組みは、Web サーバはHTTPヘッダーにSet-cookie(Set-Cookie: 名前=値; expires=日付;path=パス; domain=ドメイン名; secureヘッダー)をセットして有効期限、有効パス、有効ドメインや、任意のパラメータ(値)をWeb ブラウザに送信する。
 また、CGI ではWeb ブラウザからのCookie 取得のため環境変数HTTP_COOKIE を使用し、サーブレットではAPIを使用する。

 ・Cookie情報は、HTMLの<meta>タグ、JavaScriptなどでセットすることもできる。
 ・セッションごとにメモリ上から削除される一時CookieとCookie情報に有効期間が設定してあり、その期間内はディスク上に保存され、次回アクセス時に情報を送信するものを永久的Cookieと呼ぶ。

(仕組みをもう少し詳しく)
 ページにアクセスすると、WebサーバはSet-CookieというHTTP拡張ヘッダに適用するドメイン名、パス、有効期限などの内容を書いて、ブラウザに送信する。ブラウザ側はそのヘッダの内容をローカルのHDDにテキストファイルで保存しておき、次回そのサイトを訪れたときにはWebサーバ側にCookieを送信する。Cookieの内容はCGIやJavaScriptから参照できるため、パラメータ(値)に応じてページを書き換えたり、送信するページを切り替えたりといったことが可能である。なお、Webブラウザ側では、サーバからのCookieの送信を受け入れないように設定することもできる。
 Cookieの情報は暗号化されないので、個人情報やパスワードを送ることは適当ではない。盗聴されることを覚悟する必要がある。
 Cookieの利用で使用可能はパラメータとは?
パラメータ 概要 設定例
NAME cookie名を指定(必須) NAME=Sample
expires
(エキスパイア=満了)
cookieの有効期間 expires=sat,31-DEC-2004 00:00:00 GMT
domain cookieの発行するWebサーバ名を指定 domain=www.samplexx。co.jp
path パス名指定 path=/sinzo
secure 接続がSSLなどで保護されている場合にのみcookie情報を送信 secure
任意のパラメータ (例) login=sinzo ってな具合に
 Cookieの具体的利用方は?
 ・表示モードの変更:ユーザ毎に異なるコンテンツを表示する。シンプル画面かフレーム利用画面かのどちらかを表示する。
 ・サイト内統計:特定ユーザがサイト内でどのようなリンクをたどったか分析する。サイト作成の上で参照になる。
 ・ログインセッションの確立:一度ユーザIDとパスワードを入力すれば、次回からは入力の必要がなくなる。
 ・ショッピイングカート:ショッピングの間だけセッションを維持する。
 Cookieのセキュリティは?
 ・Cookie自体には暗号化機能はない。
 ・したがって、個人情報やパスワードといった情報を含めるのは危険である。
 ・クロスサイトスクリプティング攻撃の対象になりやす。
 ・安全にCookie情報をやりとりするには、有効期限を設定する。SSLを使用しているときはSeureパラメータを付けることを忘れない。
 脆弱性の考慮とは?
アクティブ攻撃 バッファーオーバーフロー攻撃  プログラム作成時に、用意したメモリよりも大きなデータを渡されたときに、確保されたメモリの外にまでデータが書き込まれてしまうこと。クラッカーがこれを利用してプログラムコードを外部から送り込み、管理者権限を奪取するのに使われる。バッファオーバーフローを起こすプログラムは、重大なセキュリティホールとなる。
DOS攻撃/DDOS攻撃  日本語では「サービス不能攻撃」。Webサイトなどに対して、限度を超えた多量のアクセスを与えることで、回線容量やサーバの処理能力をパンクさせ、本来のサービスをできなくするクラッカーの常套手段。複数のサーバから特定のサーバを同時攻撃するのをDDOS(分散型サービス不能攻撃)という。自分のサーバにDDOSを仕掛けられないように注意をする必要がある。
なりますまし  攻撃者は他人から奪取した Cookie情報を自分のブラウザにセットし、Cookie発行元の EC サイトにアクセスする。攻撃者のブラウザは被害者の Cookie と全く同じ Cookie を送出するので、サーバはそれが被害者によるアクセスだとみなす。以降、攻撃者は被害者に成りすまして個人情報を見たり、好きなように買い物したり出来ることになります。これを「セッションハイジャック」と呼ぶ。
待ち伏せ攻撃 クロスサイトスクリプティング攻撃(詳細は後述)
 CGIのセキュリティホールは?
 ・CGIそのものシステム上のセキュリティホールいえる。特にユーザが作ったものなどもっての外である。
 ・管理者は自サイトの全てのCGIを管理するのは難しくセキュリティリスクは大きくなる。
 ・フォーム入力された文字列にコマンドが埋め込まれているとシステム上で実行されてしまう。重要なファイルを勝手に操作される危険性がある。
 ・フォーム入力された文字列のチェックが必要である。さらに、文字列の長さを制限する必要もある。
 ・C言語のように機械語を使用する言語で記述されているCGIは、バッファーオーバーフローの危険性があることに注意する必要がある。
 クロスサイトスクリプティングとは?
 よう分からん単語である。→詳細はここをクリック
 ・標準サイトフォームの隠しフィールドに不正なタグやスクリプトを埋め込んで、入力内容を奪取するといった手口も存在する。
 ・問題は、Webサーバではなく、Webコンテンツ(PHP、Sevlet、JSP、CGI)にある。
 ・ほとんどの場合、入力データに不正なものがないかチェックし、それを無効化(サニタイジング)すれば危険性を回避することができる。
 ・危険なタグとは、<script>、<object>/<embed>(=マルチオブジェクトの埋め込み)、<applet>(=Javaアプレットの埋め込み)等がある。
 ・その他にも、<a href>、<img>、<meta>、<form>タグやSSIで使用する”#include”にも経験性は潜んでいる。
 画像形式あれこれ(丸暗記あるのみ)
JPEG  ・ISOとITU(International Telecommunication Union=国際電気通信連合)の共同設立された専門家グループの組織名に由来する。
 ・JPEG は24ビットフルカラーの表示が可能である。
 ・高周波から順にデータを欠落させる非可逆性の圧縮で高圧縮率を実現している。な
 ・拡張子には「jpeg 」「jpg 」、「jpe」が使用される。
 ・圧縮性能を高め、可逆圧縮と非可逆圧縮の両方に対応した JPEG2000がある。
 ・画像全体を徐々に表示するプログレッシブJPEGがある。
 ・JPEGを連続しして保存することで実現した Motion-JPEGがある。
 ・GIFと同様、圧縮アルゴリズムの特許ライセンスを主張する企業(フォージェント・ネットワークス社)がでてきた。
GIF  ・ユニシス社が開発した可逆圧縮方式である。
 ・LZW圧縮法に基づきコンピュサーブ社が開発したGIF は、色数を256色以下にすることによってファイルサイズを小さくしている。
 ・拡張フォーマットにはアニメ、インターレース、透過の3 つがある。
 ・ただし、GIFで利用するLZW圧縮法アルゴリズムは、ユニシス社が特許を持っているので、関連ソフトを作るにはライセンス契約が必要となる。
PNG  ・PNGはNASAで開発され、RFC2083によって規定されている画像形式である。
 ・圧縮技術には、zipやgzipで使用されているLZ77を採用している。
 ・48ビットカラーを採用している。最大280兆色を再現することが出来る。
 ・フルカラー表示を保ちながら高圧縮率(Zip圧縮法)での保存を可能にし
 ・複数の透明度を指定できる。
 ・アニメーションに対応したMNGがある。
 ・W3Cが推奨しているが、新しいブラウザしか対応していないという問題もある。
  圧縮アルゴリズム 色数 表示方法 透明化 アニメーション化
JPEG ォージェント・ネットワークス社 24ビット プログレッシブJPEG × Motion-JPEG
GIF LZW法 256色 インターレース 1色だけ透明化出来る アニメGIF
PNG LZ77法 48ビット × 複数指定出来る MNG
 音源あれこれ(丸暗記あるのみ)
 ・アナログの音源を一定時間ごとにA/D変換してデジタル化する代表的な方法にはサンプリングされた音声を量子化し2進数変換するPCMがある。 それ以外の方法としては、音階や音長の指定データのみを記録したMIDIがある。
音の高低 サンプリングレート
ダイナミックレンジ 量子化ビット率
MIDIの特徴
 ・電子楽器間で演奏情報を交換するためのインターフェイス規格のことである。
 ・MIDIより厳密に規定されているGMには、音色情報も含まれている。
 ・MIDIではSMF(スタンダード・MIDI・ファイル)を使う。
 ・音声ファイルに比して容量が少ない。
 ・肉声を忠実に表現できない。
・音声ファイル形式には
UNIX 系 AU audio/basic 「.au、.snd」
Apple Computer 社 AIFF/AIFC audio/x-aiff 「.aiff、.aif」
フラウンホーファーIIS 社 MP3 audio/mp3 「.mp3、.smf」
ソニー ATRAC3 audio/??? 「.at3」
- MIDI(SMF) audio/midi 「.midi、.mid、.kar」
マイクロソフト WMA audio/x-ms-wma 「.wma」
IBM、マイクロソフト WAVE audio/x-wav 「.wav」
米Progressive Network社 RealAudio audio/x-realaudio
 なお、RealVideo やWindows Media には、ファイル作成用のエンコーダオーサリングツールなどが無償で提供されている。
 MPEGあれこれ(丸暗記あるのみ)!!
 ・MPEGは、ISO の下位組織で策定され動く部分だけを検出し、保存する動画・音声圧縮規格である。
 ・拡張子は、その使用でも「mpg,mpeg」を使用する。
MPEG-1 ・VHS並みの再生品質
・ビデオCD
に利用
   音声部分にはMP3を使用している。
MPEG-2 ・SVHS並みの再生品質
DVD-Video
デジタル衛星放送
MPEG-4 ネット上での動画配信や次世代携帯電話規格であるIMT-2000
参考までに動画ファイルと拡張子の関係
MPEG video/mpeg 「.mpg、.mpeg」
RealVideo audio/x-pn-realaudio 「.rm、ra」
Windows Media video/x-ms-wmv 「.wmv」
Quick time video/quicktime 「.mov、.qt」
shock wave application/x-director 「.dcr、dir、dxr」
Flash application/x-shockwave-flash 「.swf」
 ストリーミング配信あれこれ(丸暗記あるのみ)
 RFC 2326で規定されているストリーミングプロトコルのRTSP(リアル・タイム・ストリーミング・プロトコル)は、RealServer やQuickTime Streaming Serverで実装されている。ストリーミングはストリーミング対応のデータのエンコード、サーバのストリーミングデータの配信、クライアントによるストリーミングデータの視聴により行われ、ファイルを保存してから配信するオンデマンド配信、リアルタイムでエンコードしながら配信するライブ配信とがある。
 ・RTSP はRealNetworks 社、Netscape Communications 社、コロンビア大学が共同開発したものである。
 .RTSP では、Web サーバとクライアントとの関係は1 :nである。それには、クライアント/サーバ型のシステムの導入が必要である。
 ・マイクロソフト社のWindows Media SeverにはRTSPではなく、MMS(Microsoft Media Server)をプロトコルとして採用している。
 ・回線を圧迫しないように、相手を複数指定して配信するIPマルチキャスト技術の普及に期待が寄せられている。
 ・HTTP配信は、1:1の擬似的なストリーミング技術で、RTSPではない。
 ・RTSPはアプリケーション層のプロトコルである。
 XMLの丸暗記
 ・テキストデータである。
 ・拡張性に富んでいること→自分でタグを設定できる。
 ・HTMLと同じようにSGMLのサブセットとして規定されている
 ・スキーマを利用して他のアプリケーションと連携し文書データの共通(マルチユース)化を実現できる。
 ・メタ言語である(HTMLは対象言語SGMLはメタ言語=マークアップ言語を作成するための言語と言われる)。
 ・XMLには、HTMLのような固定的なタグは規定されていない。
 ・HTML4.01+XML1.0でXHTML1.0ができた。
 ・XMLの拡張規格として、拡張スタイルシートのXSLやXlink/XPointerがある。
 ・XSLはXML文書を基に、表現順序を変更したり、フィルタリングしたりと自由度が高められた。
 ・マイクロソフトのプッシュ型情報配信サービス技術 CDFで利用されている。
 ・B to B間のEDIに利用されようとしている→XSLT(=文書の構造を変換するための言語)で変換する仕組みが出来ている。
 ・ISO/IEC−10646が標準文字コードと規定されている。
 ・W3CはHTML4.01を最終勧告としているので、今後はXHTMLに勧告が移行していくはずである。
 XMLの本質を端的に表現した言葉とは?
 Webのさらなる発展と拡大に向け、SGMLの複雑さを取り除き、HTMLの限界をクリアするために開発されたのがXMLである。なるほど!!
 ただし、今後、HMLが普及していってもHTMLは依然として使われていく、厳密に言えばXHTMLに形を少し変えてではあるが。
 XMLベースのマークアップ言語は?
言語仕様 正式名称 概要
XHTML eXtensible HyperText Markup Language HTMLをXMLに合わせて定義し直した言語
SMIL(スマイル) Synchronized Multimedia Integration Language マルチメディア情報の再生を制御するための言語
MathML Mathematical Markup Language 数式を記述するための言語
SVG Scalable Vector Graphics ベクトル画像を記述するための言語
RDF
Resource Description Framework
情報の作成日や要約といったメタ情報を交換するための言語
 DTDとXMLスキーマの関係とは?
 当初、XML のスキーマ記述にはDTDが用いられてきたが、そもそもHTML用であったので、当然、XML の規格に準拠していない。欠点としては
 ・XMLの規格とは異なる文法で書かれている。
 ・定義できるデータ型の種類が少ない。
 ・繰り返し数や出現順など詳細な規定ができない。
 ・名前空間に未対応であるためタグの競合がおこるなど等の問題があった。
  そのため、Microsoft 社がXDRというスキーマ記述言語を提案したが、2001 年5 月にW3C はXMLスキーマ勧告を出した。しかし、その記述は複雑であったので、コンパクト記述が可能なRELAXTREXといったスキーマ言語の開発も進めらている。
 XMLパーサーとは?
 XMLパーサーとは、XML文書を解析し、XMLの規格に従って記述されているかどうかを検証するツールである。
 ・アプリケーションにXMLを取り込む際に文法チェックを行うのが一般的である。
 ・XMLパーサーからXML文章にアクセスするための標準的APIとしてDOMを正式公開している。
 ・DOMはXML文書をツリー構造にするのでランダムアクセスが可能である。ただし、その分、メモリ消費が大きい。
 ・もう一つのAPIにSAX(Simple API for XML)があるが、メモリ消費量は少ないがランダムアクセスができない。
 XMLの拡張規格
XSL  表現順序を変更したり、フィルタリングすることで、XML 文書の記述順序にとらわれない独自のフォーマットでデータを表示でき、W3C で拡張スタイルシート規格として認定された。
XLink 文書中のオブジェクト間のリンクを記述する。XPointerと合わせてハイパーリンク機能を実現している。ただし、このリンクはHTMLのものとは大きく変わっている。(複数先リンク、双方向性リンク、あらゆる要素にリンクが可能である。)
XPointer 文書中の内部構造に対して関連付けを行う。
 XHTMLとHTMLの記述で大きく変わるところは
 ・今後の主流言語になっていく。
 ・HTML4.01+XML1.0でXHTML1.0ができた。
 ・既存のHTMLのタグが使用できる。
 ・タグ名は全て小文字で記述される。
 ・終了タグの無いタグの記述方法が従来と異なる。例:<br> 〜<br />
 ・XMLベースの他の言語を埋め込むことができる。
 ベクター画像を表現する”SVG1.1”とは
 ・PGML(アドビシステム社)とVML(マイクロソフト社)が統一して出来たもの。
 ・PostScriptに基づき作成されている。
 ・テキストベースの言語である。
 ・ビットマップ画像に比べてファイル容量が小さい。
 ・クオリティを低下させずに、自由に画像の拡大、縮小ができる。
 ・ディスプレイ画面の解像度に依存しないので、高品位な表示ができる。
 ・Q:何故、ファイルサイズが小さいのか?→内部データがテキストで記述されているから。
 ・Q:何故、高品質な画像なのか?→画像を直線や曲線というベクトル情報で表現しているから。
 ・動的な画像生成が容易である。
 ・Webブラウザに表示ためには、プラグイン(WindowsではActiveX コントロール)が必要。
 パーミッションとは?
 UNIXのファイルの保護モード。読み込み、書き込み、実行の3種類のパーミッションが、ファイルの所有者、グループユーザー、その他のユーザーのそれぞれに対して設定される。プロバイダのコンピュータに自分でWebページをアップロードしたあと、CGIを利用する場合などは、パーミッションの設定を行なわなくてはならないことがある。
 左図は、私が利用しているFTPソフトでのパーミッション設定ダイアログ画面である。
・UNIXでは、ディレクトリにもパーミッションが必要である。
・通常は、Public_html等のディレクトリに読み取り許可が必要になる。
・CGIやプログラムには実行権限のパーミッションも必要になる。
・UNIXではパーミッションを変更するのにchmoコdマンドを使う。
 chmod 744 foo.html てな具合に使う
 
 検索エンジン丸暗記(ディレクトリ型)
 ・キーワード:カテゴリ、手動、キーワード、紹介文
 ・目的のページを見つけやすいが、情報量が少なく、登録まで時間がかかる。
 ・登録基準:「テーマの明確性」、「独自性」、「更新頻度」、「ページ構成の分かりやすさ」。これがしっかりしていないとYahooは登録してくれない。
 検索エンジン丸暗記(ロボット型)
 ・キーワード:特定のWebを基点、スパイダー、クローラ、メタ、位置、キーワード、ルートディレクトリ、robots.txt
 ・登録して欲しくない場合は、robots.txtでディレクトリ、メタ情報でファイル(←クリック)を指定することができる。
 ・情報量が多いためブーリアン演算子(and or)を利用して検索する必要がある。
 robots.txtとは?
 robots.txtは、テキストエディタで次に示す注意事項を守り作成し、index.htmlがあるユーザルートディレクトリ(ユーザルートディレクトリ)に置くことが出来るようだ。現実的には、ロボット検索をして欲しいので、テストはしなかった。
 robots.txt ファイルは、そのサイトのトップに置かなくてはならない。 ○ http://www.xxx.zzz/robots.txt
×http://www.xxx.zzz/joho/robots.txt
 robots.txt の中には次のように記述する。これは、すべて(*)のロボットに対して、/ ではじまるファイル(つまりはすべてのファイル)を検索データベースに登録することを禁止するものである
(例) 
 goo と Google に対してのみ、/misenai と /cgi-bin の下のディレクトリを検索させないようにするには、次のようにする。
User-agent: * Disallow: /

(例)
User-agent: moget Disallow: /misenai/ Disallow: /cgi-bin/ User-agent: Googlebot Disallow: /misenai/ Disallow: /cgi-bin/
Disallow(英)=許さない
 <meta>タグの利用とは?
name contentの値 概要
robot index このページの登録を許可
noindex このページの登録を拒否
follow このページからのリンクをたどることを許可
nofollow このページからのリンクをたどることを拒否
revisit-after * day ロボットエンジンが巡回する間隔を指定
description - サイト又はページの紹介文
Keywords - キーワードをカンマ(,)で区切って記述する
 私のHPに記述してある<meta>タグである。
<META name="description" content="52歳のおじさんが運営する情報処理試験のコーナー">
<META name="keywords" content="歩く,ウォーキング,ウオーキング,東海道,四国88ヵ所,西国,自転車,小さな旅,情報処理,情報処理試験,シスアド,システムアドミニストレータ,SAD,2種,二種,MOUS,MOUS,上級SAD,sad,DTP,dtp,J検,J検,P検,セキュリティアドミニストレータ,ソフトウェア開発技術者試験,1種,一種,ドットコムマスター,ダブル">
 検索エンジン丸暗記(エンジンの特徴)
エンジンの種類 特徴
Yahoo Japan ディレクトリ 登録に時間がかかる
goo ロボット/ディレクトリ フレーズ、URLの検索
Google ロボット/ディレクトリ 高速、キャッシュ機能
Excite ロボット/ディレクトリ 概念検索
Lycos Japan ロボット/ディレクトリ 曖昧検索、文章検索
Infoseek ロボット/ディレクトリ 文章検索
フレッシュアイ ロボット/ディレクトリ 最近1ヶ月の情報を検索
 アクセス解析って?
 私は、インフォシークアクセス解析を利用させてもらっている。下図は、5月12日に私のTOPページを開いてくれた人の画面サイズを分析してくれている。100件以上/1日のアクセスがあるのに、分析件数が7件とは少し解せないが。この解析結果を参考にしてホームページに反映させているのは言うまでもない。
 一寸前までは800×600なんていう画面サイズがあったが、さすがに姿を消したようだ。
 
 Apache Web サーバのログ設定(CLF)
 初歩的(復習)なことであるが、ApcheWebサーバはHTTPヘッダーにアクセスしてログ採取している。
 (CLF一覧=common log format=アッパチ共通ログ形式)
host(%h) ホスト名、IP アドレス request(%r) クライアントからのリクエスト内容
ident(%i) 接続ユーザの識別情報(ユーザ情報) status(%s) 3 桁のレスポンスコード
authuser(%u) 認証に使用されたユーザ名 bytes(%b) クライアントに配布したオブジェクトのバイト数
date(%t) リクエスト日付     
 ・identアイデント=接続ユーザの識別情報のことで、http.confファイルが、”Identitycheck on ”に設定されており、クライアントホストのidentd による応答があった場合だけ記録される。
 ・ログ記録フォーマットを変更したり、別ファイルに保存する機能がある。
 ・ログ解析ツールにAnalogがある:Web サーバのログを読み取り解析を行い、ブラウザに出力する。
 Analogとは?
 膨大なアクセスログを解析してブラウザに出力してくれる便利なソフトのことである。おまけにこれがフリーソフトときてる。
 ・Analogで取り扱えるログフォーマットは、Apache共通ログ形式、IIS形式、Netsape形式、WebSTAR形式で、自動認識してくれる。
 ・これ以外のフォーマットであっても、ログフォーマットを登録することにより、Analogに認識させることができる。
 ・「月別レポート」、「ドメインレポート」、「リクエストレポート」、「ホストレポート」、「OSレポート」、「検索単語レポート」等を分析してくれる。
 リクエストヘッダから取得可能な情報とは?
ヘッダ CGI環境変数 内容
User-Agent HTTP-User-Agent クラインの情報(ブラウザやOS)
Referer HTTP-Referer 直前の参照URL
Via HTTP-Via 経由したプロキシサーバの情報
X-Forwarded-For HTTP-X-Forwarded-For 経由したプロキシサーバのアドレス
Accept-Language HTTP-Accept-Language 優先言語
Accept HTTP-Accept 利用可能なメディアタイプ
 ・HTTP プロキシサーバ経由の元IP アドレスを取得するためには”LogFormat ”を変更し”X-Forwarded-For ”を記録するようにする。
   LogFormat ”%h %1 %u %t \”%r”\” %s %b \”%{X-Forwarded-For\” ”common
  (通常の設定) 「LogFormat "%h %l %u %d \ "%r\ "%>s %b \ "%{Referer}i\ "\ "%{User-Agent}i\ ""combined 」