Section 5 : 文書情報(1)

 Try next HTML の Section 13<META> を使って文書の基本的な情報を示すことを説明した。ここでは,文書情報について,さらに詳しく解説する。

<META>

 <META> はヘッダ部分に書かれ,文書の情報を定義することはご存じのとおりである。この書式を復習しておくと,

<META HTTP-EQUIV="..." CONTENT="...">
<META NAME="..." CONTENT="...">

のいずれかで使われる。前者は文字コードセットや,Yes, we love HTML の Section 8 で見たように,スクリプトの MIME タイプを指定するのに使われる。

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=shift_jis">
<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/vbscript">

後者は,サーチエンジンに情報を与えるのに用いる。

<META NAME="author" CONTENT="Studio HEXANE">
<META NAME="description" CONTENT="HTML 4.0 対応の,基礎の基礎からの HTML チュートリアル。">

実際はこれだけでなく,さまざまな使いかたがなされる。

 たとえば,HTTP-EQUIV 属性に Refresh を与えるやり方がある。

<META HTTP-EUQIV="Refresh" CONTENT=...>

このとき CONTENT 属性には数値を入れるか,または数値に続けて半角カンマ・URI を入力する。数値のみが与えられた場合にはその数値の示すだけの秒数が経過すると,同じ文書をリロードする。URI も与えられたら,時間が経過したら URI で示された文書を自動的にロードする。

<META HTTP-EQUIV="Refresh" CONTENT="5">
<META HTTP-EQUIV="Refresh" CONTENT="10,index2.htm">

ひとつめの例は 5 秒後に同じ文書をリロードする。ふたつめの例では 10 秒後に“index2.htm”をロードする。

 これがどのように有用かというと,たとえば,ページのディレクトリ構成を変えたとき,もとの場所にこの記述をしてある文書をおいておけば,もし旧ページがアクセスされても新しいページに導くことができる。しかし,UA によってはリロードが行われないこともあるので,念のため <A HREF=...> を使って新しいアドレスへのリンクを張るようにしたい。

 これを使うと次々にページが変えられてあたかもアニメーションであるが,回線をいたずらに混雑させるだけだし見ている方も不愉快になることがあるので慎むようにしたい。

 ところで,この HTTP-EQUIV という属性名であるが,これは HTTP サーバが応答するときのヘッダ情報(HTTP レスポンスヘッダ)と等価なものを作るということである。簡単に言うと,文書のあるサーバがデータを送るときの“前置き”の補足ができるといったところである。

 たとえば,文書の有効期限を示すことができる。

<META HTTP-EQUIV="Expires" CONTENT="Wed, 13 May 1998 09:00:00 GMT">

 この場合には,Section 4 で紹介した YYYY-MM-DDThh:mm:ssTZD の書式ではない。蛇足ながら,“GMT”は“グリニッジ標準時”を示す。

基準 URI の指定

 URI を相対指定する場合,通常基準となるのは現在の URI であるが,ヘッダ中に <BASE> を用いてこの基準 URI を変更することができる。

<BASE>

これには,属性を与えないと始まらない。

<BASE> の属性(1)
属性 解説
HREF URI 相対指定をするとき基準となる URI。絶対指定を用いなくてはならない。必須。

 また,厳格な HTML 4(HTML 4 Strict)では用いないが,フレーム分割された文書などでは次の属性も指定できる。

<BASE> の属性(2)
属性 解説
TARGET キーワード
フレーム
ターゲットにするフレームの既定値を指定する。

現在の URI が“http://www.netsite.com/user1/topic/index.htm”のとき,URI を相対的に“image.gif”と指定したら,それは“http://www.netsite.com/user1/topic/image.gif”をさすが,ヘッダに

<BASE HREF="http://www.netsite.com/user1/index.htm">

と書いてあると,“image.gif”は“http://www.netsite.com/user1/image.gif”をさす。

 また,フレーム分割された文書で,

<BASE HREF="http://www.netsite.com/user1/index.htm" TARGET="main">

と書いておくと <A> などでジャンプさせるときとくに指定がなければ main というフレームにジャンプ先の文書を表示させる。HTML 4.0 Transitional では,HREF 属性は必須ではなくなる。

 ちなみに,<BASE> は,TITLE,STYLE,ID 属性やイベント属性などは持っていない。というより,使いようがない。