本記事の内容
Webを支える技術を読んだ際のノートのようなものです。
省略している部分もあり、書籍の内容を完全に要約するものではありません。
今回は第10章あたりの内容です。
HTML?
マークアップ言語、構造化文書。
HTML5では、アプリケーション用途の拡張がたくさんある。
拡張子は.html
か.htm
。
.htm
は古いOS向けと思って良い。
SGMLベースからXMLベースに進化して今の姿になった。
メディアタイプの違い
text/html : SGMLベース
application/xhtml+xml : XMLベース
IEの悲しみ
MIMEタイプの`application/xhtml+xml`が使えない。`text/html`しか使えないのでXHTML1.1は使用できない。
そのためIEでは「なんかうまく表示されない」問題が起きる。
XMLの基礎
木構造で要素を読む、というのがポイント。
要素 = 開始タグ + 内容(ないとき〜は空要素) + 終了タグ
開始タグには属性を入れれるが、入れ子にできないし順序という概念はないので注意。
実体参照と文字参照
実体参照
<
を<
と書くなど、XMLで使う文字を別で表現する。
文字参照
XMLの予約記号以外のエスケープする。
名前空間
<html>
でxmlnsを使って宣言する。
どこにも属さない属性はローカル属性。
xmlns:{接頭辞}="{名前空間名}"
で属性の名前空間を指定できる。
HTML要素
基本はこう。
属性
idとclassがあって、cssのスタイル指定なんかではどっちも使えたりするが
本来の意味が異なる。
id
その名の通り、文書内でユニーク。
URIフラグメントなんかで活用する。
class
その要素が持つ意味を示すメタデータ。
ハイパーメディアフォーマットとしてのHTML
いわゆるリンク
-
みんな知ってる
<a>
タグ
こちらはブロック内でリンクする。 -
<link>
タグ
ヘッダ内でリンクする。ページ同士の関係を表現するもの。
オブジェクト埋め込み
<img>
や<object>
タグ。
ページに埋め込んでいるけど、リソースを結びつけているリンクともいえるね。
フォーム
フォームコントロール要素(input-type)
action
でターゲットURI、inputのid
でクエリパラメータ名を指定する。
リソース操作へのリンクといえるね。
他のリンク手段と違って、POSTもできるのがポイント。
リンクの意味について
プログラムなどクライアントが人じゃない場合にも、どのリンクをたどればいいのかコンピュータに理解させないといけない。
- rel属性: リンク関係の記述
- microformats: rel属性の拡張
このあたりを使って、リンクの意味を記述することができる。
「リンクをたどる→アプリケーションの状態が遷移する」ということを意識しよう。