LoginSignup
0
2

More than 5 years have passed since last update.

『Webを支える技術』を読んでRESTの基礎をまとめてみた

Last updated at Posted at 2018-12-30

年末ですね。今回は『Webを支える技術』を読んだので、REST周りを改めてまとめていきたいと思います。

REST(Representional StateTansfer)

  • 数あるアーキテクチャスタイルの中でもネットワークシステムのアーキテクチャスタイル
  • クライアント/サーバー アーキテクチャスタイルから派生したもの
  • クライアント/サーバー アーキテクチャスタイルに制約を加えていく

具体的には、RESTとは以下の6つのアーキテクチャスタイルを組み合わせた複合アーキテクチャスタイルのことを言う。

  • クライアント/サーバー [UIと処理の分離]
  • ステートレスサーバー [サーバー側でアプリケーションの状態を持たないようにする]
  • キャッシュ [クライアントとサーバーの通信回数量を減らす]
  • 統一インターフェイス [インターフェイスを固定する。http1.1ではGETやPOSTなどメソッドを8つに固定して通信する]
  • 階層化システム [システムを階層に分離]
  • コードオンデマンド [プログラムをクライアントにダウンロードして実行]

RESTとは制約を課すために、上記、複数のアーキテクチャスタイルを必要に応じて組み合わせて構築した複合アーキテクチャスタイルの1つである。

※そもそもアーキテクチャスタイルとは何かと言うと、アーキテクチャを設計するための作法や流儀である。システムを設計する際の指針がアーキテクチャスタイルとなる。

※制約はアーキテクチャスタイルにおいて、重要な概念。
一般的にはソフトウェアアーキテクチャは複数のコンポーネントを組み合わせて実現することになるが、それぞれのコンポーネントがバラバラに動いているのでは、ソフトウェアとして機能しない。そこで制約を課すことによって、全体として各コンポーネントが協調して動作することを実現するためにアーキテクチャに制約を課すことは非常に重要。

リソース

RESTにおける重要概念の一つが「リソース(Resource)」

リソースとは『Web上に存在する名前を持ったありとあらゆる情報』の事を示す。そしてその名前とはURIである。
そのURIを用いる事で、プログラムはリソースが表現する情報にアクセスできる。
※例として、本書では東京の天気予報、駅の写真、ブックマーク等が挙げられている(/~.html, /~.pdf, /~.jpg等)

リソースとは「Web上に存在する情報」という抽象的な概念である。サーバーとクライアントの間で実際のリソースをやり取りするときには何らかの具体的なデータを送信し合う。サーバー・クライアント間でやり取りするデータの事を「リソースの表現」(Resource Representation)と呼ぶ。

WebはRESTという分散ネットワークシステムのための理論があったからこそ、ここまで成功したと言われている。WebサービスやAPIはWebを構成する一部であり、個別のサービスやAPIがRESTful(=RESTらしい振る舞い)になるとWebは全体として良くなると言われている。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2