「Webを支える技術」を読みました(3)
勉強記録
今日は「Webを支える技術」を読んだので、重要そうなところを中心にまとめました。
ここでは第4部のハイパーメディアフォーマットと、第5部のWebサービスの設計を読んで学んだところをまとめました。(前にも学んだところなどは省略しています)
<第4部> ハイパーメディアフォーマット
※HTMLは別枠で勉強しているので、省略。
※XML関連についても、最近ではあまり使われていないので省略。
JSON
JavaScriptの記法でデータを記述できるデータ記述言語。プログラミング言語間でデータを受け渡せる。
XMLと比べてデータ表現の冗長性が低い。
JSONに用意されているデータ型
-オブジェクト
-配列
-文字列
-数値
-null
<第5部> Webサービスの設計
リソース設計とは
どのようにリソースを分割してURIで名前をつけるのか、相互にリンクを持たせるか。
トランザクション
複数のリソースにまたがった変更をひとまとまりに扱うトランザクションが必要となるケースもある。
排他制御
排他制御はコンフリクトが起きないように、1つのクライアントのみが編集するように制御する処理のこと。
排他制御には悲観的ロックと楽観的ロックがある。
悲観的ロック
ユーザーをあまり信用せず、競合が発生しないようにする排他制御の方法。
HTTPで悲観的ロックを実装するには、WebDAVのLOCK/UNLOCKメソッドを使う方法と、ロックリソースを使う方法がある。
楽観的ロック
通常ではロックせずに、競合が起きた時に対処するしくみ。
HTTPで楽観的ロックを実装するには、条件付きPUTと条件付きDELETEを利用する。