【Webを支える技術】第4部 ハイパーメディアフォーマット 学習メモ

 

目次

はじめに

この記事は「Webを支える技術」を読んで自分なりにまとめた学習メモです。

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

 

第4部 ハイパーメディアフォーマット

第10章 HTML

 HTML(Hypertext Markup Language)

HTMLとは、タグ(Tag)で文書の構造を表現するコンピュータのマークアップ言語です。マークアップした構造を持った文書のことを「構造化文書」(Structured Document)と呼びます。

HTML5 は現在まさに仕様策定中の新しい HTML です。

 

HTMLのメディアタイプの種類

  • 「text/html」:SGML ベースの HTML を示す
  • 「application/xhtml+xml」:XML ベースの XHTML を示す

 

拡張子

  • 「.html」:現在の一般的な拡張子
  • 「.htm」:古いOSの制限による

 

HTMLの構成要素

  • ボディ:文書の本文のこと
    • 大きく分けて2種類:ブロックレベル要素、インライン要素
  • 共通の属性:HTMLのすべての要素は、id 属性と class 属性を持つ
    • id: 文書内で一意なID
    • class: その要素が属するクラス

 

リンク

  • <a>:アンカー
  • <link>:リンク
  • <object>:オブジェクトの埋め込み
  • <form>:フォーム

 

第11章 microformats

 microformats

microformatsとは、HTMLの中でさらに意味のあるデータを表現するための技術のことです。

 

セマンティクス(Semantics)

セマンティクスWeb とは、人間が読んで理解するWebページの意味を、プログラムからも処理できるように形式的に意味を記述するための技術のことです。

 

RDFmicroformats

RDF(Resource Description Framework)とは、Webページ上の情報のメタデータ(データの属性や関係を表すためのデータ)を記述するための構造のことです。

 

RDFの問題点

  • 記述が複雑になりがち
  • 統一的な記述がしづらい
  • 対象データとは独立したメタデータが必要 

RDFの問題点を解消した技術が microformats です。

 

microformatsの分類

  • elemental(単純) microformats:rel-license のように、リンク関係(<a>要素や<link>要素の rel 属性)を使ってメタデータを表現するフォーマット
  • compound(複合) microformats:後述する hCalendar のように、主に class 属性を使って階層構造のあるメタデータを表現するフォーマット

 

リソースの表現としてのmicroformats

microformatsは下記の弱点を補ってくれるリソース表現です。

  • Web サービスと Web API で提供する機能が異なってしまいがち
  • 開発規模の増大に伴うメンテナンス性の低下
  • Web API に必要な技術の習得コスト

 

第12章 Atom

 AtomAtom Syndication Format)

 Atomとは、RFC 4287 が規定する XML フォーマットです。

 

Atomのリソースモデル

  • メンバリソース(Menber Resource):Atomにおける最小のリソース単位
  • コレクションリソース(Collection Resource):複数のメンバリソースを含むリソース

 

Atomの拡張

  • Atom Threading Extensions ―― スレッドを表現する
  • Atom License Extension ―― ライセンス情報を表現する
  • Feed Paging and Archiing ―― フィードを分割する
  • OpenSearch ―― 検索結果を表現する

 

第13章 Atom Publishing Protocol

Atom Publishing Protocol(AtomPub)

AtomPubは、Atom が規定したフィードやエントリで表現するリソースの編集、いわゆる CRUD 操作を実現するためのプロトコルです。

  • Atom:データフォーマットの規定(フィード、エントリ)
  • AtomPubAtom を利用したリソース編集プロトコルの規定

 

サービス文書

  • メディアタイプ
  • <service>要素
  • <workspace>要素
  • <collection>要素
  • <accept>要素
  • カテゴリ

 

AtomPubに向いているWeb API

  • ブログサービスAPI
  • 検索機能を持つデータベースのAPI
  • マルチメディアファイルのリポジトリAPI
  • タグを使ったソーシャルサービスのAPI

 

AtomPubに向いていないWeb API

  • Cometを利用するような、リアルタイム性が重要なAPI
  • 映像のストリーム配信など、HTTP以外のプロトコルを必要とするAPI
  • データの階層構造が重要なAPI
  • 「タイトル」「作者」「更新日時」など、Atom フォーマットが用意する出たデータが不要なAPI

 

第14章 JSON

 JSONJavaScript Object Notation)

JSONとは、RFC 4627 が規定するデータ記述言語です。JavaScript の記法でデータを記述できる点が最大の特徴です。

 

メディアタイプ

  • 「application/json

 

拡張子

 

データ型

 

JSONPJSON with Padding)によるクロスドメイン通信

JSONP (JSON with padding) とは、scriptタグを使用してクロスドメインな(異なるドメインに存在する)データを取得する仕組みのことです。

 

 ハイパーメディアとしてのJSON

 JSONJavaScript をベースにしたシンプルなデータフォーマットです。JavaScript はもちろん、各種のプログラミング言語がライブラリを用意しています。

 JSONをハイパーフォーマットとして使うためには、リンクを表現するメンバをきちんと入れる必要があります。