HTML初歩の初歩

〜その8〜
head内に書く事柄

HTTP

ページを閲覧するためのソフトをブラウザーといいます。インターネット・エクスプローラーやネットスケープ・ナビゲーター(コミュニケーター)が代表的なブラウザーです。

ブラウザーがデーターを保管している WWW(World Wide Web = ワールド・ワイド・ウェブ)サーバーから情報を受け取って、ページを表示します。その際の一連のやり取りの仕方を HTTP(HyperText Transfer Protocol = ハイパー・テキスト・トランスファー・プロトコル)といいます。ブラウザーがこれこれの情報をよこせと要求すると、サーバーはHTTP情報を付けて返信します。

HTTPに関する情報は IETF(Internet Engineering Task Force)RFC2616 にあります。RFCとは文字通りはRequest For Commentsの頭文字ですが、Internet上の標準規格を紹介する文書群です。

ネットサーフィンをしていると、時たま存在しない(削除されてしまった)ページを見ようとして、HTTP Error 〜という表示を目にしたことが一度や二度はあるでしょう。このエラーの詳細も上記RFC2616に書いてあります。長文ですので箇所を挙げれば、10.4 以下にエラー一覧があります。

そんな時しか(少なくともページを自分で作らない)人間にはHTTPの存在は意識されません。と言うのは少しばかりオーバーで、注意深い方はネット上のウェブ・サイトの「アドレス」に、http://というのが付いている事はご存知でしょう。ファイルのやり取り時には、その部分がftp://となりますね。

普段は機械が勝手に上手く、その辺は処理してくれている訳です。送られてくる情報に関するHTTPの情報を「情報の情報」なのでmeta(メタ)情報と言います。

メタ情報の記述

HTMLに関する「メタ情報」は、サーバーから送られてくるばかりではなく、HTML内の<head>内にもページ作者によって書かれ、ブラウザーに指示を与える事が出来ます。

meta情報として指定されるものの中には、現状では(ブラウザーの未熟さから)利用されていないものもありますが、将来を考えて「テンプレート」に入れておくべきでしょう。

<head>〜</head>に書いておくべきものについて、重要なものから順に紹介しておきます。

<meta http-equiv="Content-Type" content="text/html  charset=Shift_JIS">

これらを指定しなくても「賢い」ブラウザーは自動的に「大抵正しく」判断してくれますが、メディアの種類(=text-html)と使用している文字コード(=Shift_JIS)をhttp-equivcontentという属性で教えてあげれば、ブラウザーが誤解する事は無くなります。

Shift_JIS ではなく x-sjis と指定しているページをまだ見かけますが、IANA(Internet Assigned Numbers Authority)に登録された名前で表記しなければなりません。例えば W3C Working Draft 26 January 2001 をご覧下さい。そこの3.6.1にはx-sjisなどの表記について、以下のように書いてあります

The "x-" convention for unregistered names SHOULD NOT be used, having led to abuse in the past (use of "x-" for character encodings that were widely used, even long after there was an official registration).

それでもあなたはx-sjisと書き続けますか?

もちろんShift_JISと書くのは、あなたのOSがWindowsかMacである場合です。LinuxやFree BSDなどのUNIX系のOSで動かしている場合には、上記の文字コードはEUC-JPとなります。

<meta http-equiv="Content-Style-Type" content="text/css">
   <meta http-equiv="Content-Script-Type" content="text/javascript">

スタイルシートとJavaScriptを使用する場合にはこうした指示もしておくべきです。

<title>HTMLの初歩の初歩〜その8〜</title>

HTTPからは逸れますが、文字コードを指定した後にタイトルを書きましょう。IEやNNでは左上にタイトルが表示されます。

<meta name="description" content="ページ作成">
   <meta name="keywords" content="ページ作成,HTML,スタイルシート,パソコン">

これらの情報を自動的に拾って、ロボット型と言われる自動巡回型検索サイトはリンクを作ります。あなたのページをInfoseekなどのサイトが見知らぬ人に案内してくれます。その他、本文中に出てくる見出し語などを目安にして検索結果の候補を表示するようです。私はkeywordsだけ書いています。

<meta name="author" content="Saito Toshiyuki">
   <meta name="generator" content="Tera Pad">

ページの作者の名前と作成ソフト名を示します。だから何だって?対応しているブラウザーがあれば、役に立つんでしょう。

複数ページある文書の相互関係や、スタイルシートとの関連を示すために使われるのがlink要素です。link要素にrel属性を組み合わせて使います。値としては様々なリンクタイプを使います。

<link rel="index" href="aboutthissite.htm">
   <link rel="contents" href="motors.htm">
   <link rel="next" href="javascript.htm">
   <link rel ="prev" href="html7.htm">
   <link rel="start" href="html.htm">
   <link rel="copyright" href="abc.htm">
   <link rel="help" href="def.htm">
   <link rev="made" href="mailto:abc@def.com">
   <link rel="alternate" media="print" title="PDF Files" href="xyz.pdf">
   <link rel="alternate" hreflang="**" title="English version" href="abc-en.htm">

こうした記述によってLynxなどのブラウザーではナビゲーション・バーを示してくれます。

スタイルシートを外部ファイルで読ませる際にもリンク要素を使用します。

<link rel="stylesheet" href="nissi.css" type="text/css">

言語の表示

<html lang="ja">

lang属性によって、その文書がどんな言語で書かれているかを<head>の前に示します。文書全体が日本語であるなら上記のように書きます。

<p lang="en">

文書中の一部分だけが異なる言語で書かれているなら、上記の例のように他のタグと組み合わせて指示します。

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">

XHTML1.0ではこのように<head>の前に書きます。lang="ja"というのは、HTML4.01までとの互換性を保つために必要な記述です。XHTML1.1では最後の部分のlang="ja"を書けなくなりました。

文書型定義

しばしば無視されますが、HTMLがどんな規格に従って書かれているかが分からなければ、混乱が生じる事があります。<html>の前に文書型定義を宣言する必要があります。

「文書型定義」と訳した原語は Document Type Definition = DTD です。ネット上に公開する文書では、当然ながらPUBLICな規格に従う必要があります。

最新のUser Agentはこの「文書型定義」を読み取って、表示のための解釈を変えています。ですから自分が従っている規格を明示する事は非常に大切です。

HTMLに関してはW3Cによって勧告(Recommendation)された公式のDTDが複数あります。

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML // EN">

HTML1.0という規格はありません。さまざまな規格間で混乱が生じていた中、IETF(Internet Engineering Task Force)によってRFC(Request For Comments)と呼ばれる一連の文書が公開されました。IETFが1995年12月にHTML2.0を定めました。RFCでのHTML2.0の文書番号は1866ですが、1996年に廃止になりました。RFC2854の発表と共に、現在はRFC1866はHISTORICへ移されています。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 // EN">

HTML3.0という規格はありません。2.0を拡張してW3C(World Wide Web Consortium)から1997年1月に勧告されました。どうやら3.0は検討されたようですが、公開されたのは3.2でした。今でも3.2で書いてあるHTMLが多数ありますが、新規に使うべきではないでしょう。2.0との互換性があります。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 // EN">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0Transitional// EN">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0Frameset// EN">

1997年12月18日にW3Cから勧告されました(1998年4月24日に誤植等の修正版が公表)。文書の記述と装飾が区別され、HTMLは記述のみを行い、装飾はスタイルシートで行うように区別して規定されました。

しかし3.2が事実上の標準になっているため、Strict(厳密版)の他に装飾系の要素が残っていてることを容認するTransitional(移行版)が制定されました。Frameset(フレーム版)は画面を区分して表示する「フレーム」のためにあります。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 // EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd" >

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Transitional // EN"
"http://www.w3.org/TR/html4/loose.dtd">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Frameset// EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd" >

1999年12月24日にW3Cから勧告された最新の規格です。名前から分かるように4.0の小修正版ですが、新規にHTMLを書く場合は4.01を使いましょう。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict// EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

HTMLをXML(eXtensible Markup Language)として定義し直したのがXHTML(eXtensible Hyper Text Markup Language)です。XHTMLの宣言ではリンク先の明示が義務付けられました。Strictの他に、TransitionalとFramesetがあります。将来的にHTMLはXHTMLに移行する方向性が示されています。

現在HTMLで書いている方も、将来XHTMLへの移行が容易にできるように、タグは小文字で書いておく、終了タグが省略可能の箇所でも省略しない、といった心がけをしておく事は無駄にはならないでしょう。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">

2000年 12月 19日に W3C から勧告された、XHTMLをデスクトップPCだけでなくPDAや携帯端末などとも共有するための規格。

日本国内で最も普及しているCompact HTMLと、海外のサービスで使用されているWAP標準のコンテンツ記述言語WMLは、将来的に世界標準としてのXHTML Basicに発展的解消するのだろうか。そんな中でDDIポケットが同社のPHS(エッジ)にXHTML Basicを解釈可能なWebブラウザを採用する方針を決めた事は、これからの方向性を示すものと言えよう。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 // EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

2001年4月6日にXHTMLはW3Cの勧告案となりました。内容はXHTML 1.0 Strictに日本語などのルビに関する記述が追加されています。

2001年5月31日にW3C勧告(Recommendation)となりました。1.0では残されていたTransitionalやFramesetが無くなり、a nameが使えなくなり、a idだけになりました。また使用言語の表示のlangもなくなり、xml:langだけとなりました。ちょっと今までのブラウザーとの互換性を考えると、直ちに移行は出来そうにありません。

主要なHTTP Error

以下のうちいくつかは、User Agentによって「日本語化されて」表示される事もあります。

401 Unauthorized
要求されたページがuser authentication(ユーザー認証)を必要としているとの警告。
403 Forbidden
要求されたページへのアクセス権が無いとの警告。
404 Not Found
要求されたページが削除されたか見つからないとの警告。サーバーが理由を明らかにせずに要求を拒否する際にも使われる。
410 Gone
要求されたページはサーバーから削除されてしまったとの警告。

第1回  第2回  第3回  第4回  第5回  第6回  第7回  第9回  第10回  詳細目次  ページ冒頭


saiton.net/easy/html8.htm

©SAITO Toshiyuki