30代専業主婦の独学エンジニア挑戦ブログ

実務未経験の30歳の専業主婦が独学でエンジニアを目指すブログです

「Webを支える技術」を読みました(3)

勉強記録 

今日は「Webを支える技術」を読んだので、重要そうなところを中心にまとめました。

 
ここでは第4部のハイパーメディアフォーマットと、第5部のWebサービスの設計を読んで学んだところをまとめました。(前にも学んだところなどは省略しています)

 

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

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

  • 作者:山本 陽平
  • 発売日: 2010/04/08
  • メディア: 単行本(ソフトカバー)
 

 

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

※HTMLは別枠で勉強しているので、省略。
XML関連についても、最近ではあまり使われていないので省略。
 

JSON

JavaScriptの記法でデータを記述できるデータ記述言語。プログラミング言語間でデータを受け渡せる。
XMLと比べてデータ表現の冗長性が低い。
JSONのメディアタイプは「application/json 」。拡張子は「.json
 

JSONに用意されているデータ型

-オブジェクト
-配列
-文字列
-数値
-null
 

<第5部> Webサービスの設計

リソース設計とは

クライアントとサーバの間のインターフェースの設計、つまりWebサービスやWeb APIの外部設計。WebサービスとWeb APIを分けて考えないことが重要。
どのようにリソースを分割してURIで名前をつけるのか、相互にリンクを持たせるか。
 

トランザクション

複数のリソースにまたがった変更をひとまとまりに扱うトランザクションが必要となるケースもある。
トランザクションをRESTfullに実現するのがトランザクションリソース。
トランザクションリソースはトランザクション情報を表現するリソースである。
 

排他制御

排他制御はコンフリクトが起きないように、1つのクライアントのみが編集するように制御する処理のこと。
排他制御には悲観的ロックと楽観的ロックがある。
 
悲観的ロック
ユーザーをあまり信用せず、競合が発生しないようにする排他制御の方法。
HTTPで悲観的ロックを実装するには、WebDAVのLOCK/UNLOCKメソッドを使う方法と、ロックリソースを使う方法がある。
 
楽観的ロック
通常ではロックせずに、競合が起きた時に対処するしくみ。
HTTPで楽観的ロックを実装するには、条件付きPUTと条件付きDELETEを利用する。