To be happy as a engineer

Web開発、機械学習・・・

RESTの定義

Roy Fieldingの博士論文はWebサービスに関するREST構造を、以下の6個の特徴を定義して説明している。

Client-Server

クライアントとサーバーの明確な区別がなされていなければならない。

Stateless

クライアントのリクエストはその達成に必要なすべての情報を含んでいなければならない。 サーバーはリクエストを繰り返すクライアントにのいかなる状態も保持してはいけない。

Cache

サーバからのレスポンスはcacheableかnoncacheableとしてラベル付けされることで、クライアント(またはクライアントとサーバ間の仲介)は最適な目的に対してキャッシュを使用できる。

Uniform Interface

クライアントがサーバ資源にアクセスする際のプロトコルは一貫性があり、well-definedで、標準化させていなければならない。一般的に使われるWebサービスの同型インターフェースはHTTPプロトコルである。

Layered System

プロキシサーバやキャッシュ、ゲートウェイはクライアントとサーバ間において、性能や信頼性、拡張性を改善するために不可欠なものとして配置される。

Code-on-Demand

クライアントは自らの環境で実行するために選択的にコードをダウンロードできる。