こんにちは。
今日も朝から始動!ハチマキ行きま〜す!!!!どうもハチマキです。
はじめに
前回に続き、入社早々に上長から教えてもらった
エンジニアデビュー3ヶ月後くらいに読むと良さそうな書籍
「Webを支える技術 -HTTP、URI、HTML、そしてREST」の第4部のまとめになります。
1部、2部、3部についてもまとめておりますので、ぜひそちらもご参考にして頂ければと思います。
▼書籍はこちら
www.amazon.co.jp
本日の概要 : 第4部 ハイパーメディアフォーマットについて
- どんな時にために、この書籍は読んでおくべき?(第1部をご覧ください)
- 書籍のテーマと目的(第1部をご覧ください)
- 書籍の構成
- 第4部 ハイパーメディアフォーマット
- HTML
- microformats
- microformatsについて
- microformatsの分類
- microformatsとRDFa
- リソースの表現としてのmicroformats
- Atom
- JSON
書籍の構成
- 第1部 : Web概念
- 第2部 : URI
- 第3部 : HTTP
- 第4部 : ハイパーメディアフォーマット
- 第5部 : Web サービスの設計
※今回は、第4部 ハイパーメディアフォーマットについてまとめております。
第4部 ハイパーメディアフォーマット
第4部では、WebサービスやWeb APIを設計するときに利用できる主要なハイパーメディアフォーマットについて解説されております。
HTML
HTMLとは何か
HTMLの構成要素
基本的な構成要素はヘッダとボディであり、HTMLの全ての要素はid属性とclass属性を持つことができる。
- ヘッダ:文書のメタデータを入れる
- ボディ:文書の内容そのものを入れる
- ブロックレベル要素:文章の段落や見出しなど、ある程度大きなかたまりを表現する
- インライン要素:強調や改行、画像埋め込みなどを表現する(ブロック要素の中に入る要素)
リンク
ハイパーメディアフォーマットとしてのHTMLの要素
- <a>要素:ほかのWebページにリンクをさせる
- <link>要素:ヘッダでWebページど同士の関係を指定する
- <img>要素:画像埋め込み
- <object>要素:それ以外のオブジェクトの埋め込み
- <form>要素:リンク先のURIに対してGETとPOSTが発行できる
※rel属性:<a>要素と<link>要素が持てる属性で、リンクの関係をプログラムが可読な状態にすることができる
ハイパーメディアフォーマットとしてのHTML
HTTPとURI、そしてハイパーメディアによるリンクを組み合わせて初めてWebが成り立つ。HTMLでリンクを設計する際は、「リンクをたどることでアプリケーションの状態が遷移する」ことを強く意識した設計が重要
microformats
microformatsについて
- HTMLの中でさらに意味のあるデータを表現するための技術で、リンクの細かい意味やイベント情報などの表現が可能になる
microformatsの分類
- elemental microformats:リンク関係を使ってメタデータを表現するフォーマット ※下記代表的なフォーマット
- rel-license:Webページのライセンスを記述するためのフォーマット
- rel-nofollow:スパム行為を解決するためのフォーマット
- compound microformats:class属性を使って階層構造のあるメタデータを表現するフォーマット ※下記代表的なフォーマット
microformatsとRDFa
- microformats問題点
- 同じ属性を持ったWebページがあった場合、プログラムが誤判断を起こしたり、同じ属性値を持った別のmicroformatsが作れなくなる可能性がある
- RDFaでの解決
- microformatsが持つ名前の衝突問題をXMLの名前空間で解決することができる
- 総論
- microformatsで大抵目的を果たすことができる
リソースの表現としてのmicroformats
Atom
Atomとは何か
Atomのソースモデル
- メンバリソース:最小のリソース単位を指す(ex. 一つ一つの記事や画像など)
- コレクションリソース:複数のメンバリソースを含むリソース(階層化できない) <feed>要素で表現する
JSON
JSONとは何か
- JavaScript Object Notationの略で、データ記述言語(JavaScriptの記法でデータを記述できる)
- 軽量なデータ表現のフォーマット
データ型
JSONには以下の6つのデータ型が用意されている。
JSONの利点
※1
セキュリティ上の制限からJavaScriptファイルを取得した同じサーバとしか通信ができないため、HTMLの<script>要素を用いることで複数サイトからファイルを読み込めるようにすること