RESTとは?
REpresentational State Transfer
WEBとhttp 1.0の入門と機能開発について、Roy T.Fieldingに問題があります.
「既存のWebを破壊せずにHTTP機能を追加する方法」
当時の仕様が発表されるまでは、すべての人がWebとHTTPプロトコルを使用していたため、サブバージョンを破壊することなく機能を追加する方法が必要であり、REST
の設計方法を記述した論文がある.
RESTのスタイルの設定
1) Client - Server
클라이언트는 서버에 요청을 보내고 응답 대기
서버가 요청에 대한 결과를 만들어서 응답
ビジネスロジックとデータをサーバに配置し、クライアントがUIのみを担当できるようにすることで、お互いに促進することができます.サーバ(固定されたクライアントとサーバ)ではなく、リクエストを送信する側がクライアントである場合、リクエストを受信して応答する側がサーバであることが便利です.
2) Stateless
つながるStatefulとは?
サーバが途中で変更された場合、すぐにエラーが発生するため、サーバはクライアントの状態を維持しながら応答します.
欠点は、サーバを交換できないことです.A. 클라이언트 => 제육 주세요 => 서버
B. 클라이언트 <= 몇인분 줄까요? <= 서버 (제육)
C. 클라이언트 => 2인분 주세요 => 서버 (제육 + 2인분)
*C. 만약 여기서 서버가 바뀌었다면?
*D. 클라이언트 <= 뭘 2인분 달라고요? <= 서버
*A. 클라이언트는 다시 결제 과정을 반복해야된다.
D. 클라이언트 <= 제육 2인분 보냅니다 <= 서버
推測を表すStatelessとは?
サーバは途中で変更された場合、自分でメンテナンスしないため、クライアントのステータスを保持して応答しません.
サーバを無限に追加A. 클라이언트 => 제육 2인분 주세요 => 서버
*A. 애초에 클라이언트가 필요한 정보를 다 보내기 때문에
서버가 아무리 바뀐들 지장이 없다.
B. 클라이언트 <= 제육 2인분 보냅니다 <= 서버
わかりません.ステータス制限なし
1) Client - Server
클라이언트는 서버에 요청을 보내고 응답 대기
서버가 요청에 대한 결과를 만들어서 응답
ビジネスロジックとデータをサーバに配置し、クライアントがUIのみを担当できるようにすることで、お互いに促進することができます.サーバ(固定されたクライアントとサーバ)ではなく、リクエストを送信する側がクライアントである場合、リクエストを受信して応答する側がサーバであることが便利です.2) Stateless
つながるStatefulとは?
サーバが途中で変更された場合、すぐにエラーが発生するため、サーバはクライアントの状態を維持しながら応答します.
欠点は、サーバを交換できないことです.
A. 클라이언트 => 제육 주세요 => 서버
B. 클라이언트 <= 몇인분 줄까요? <= 서버 (제육)
C. 클라이언트 => 2인분 주세요 => 서버 (제육 + 2인분)
*C. 만약 여기서 서버가 바뀌었다면?
*D. 클라이언트 <= 뭘 2인분 달라고요? <= 서버
*A. 클라이언트는 다시 결제 과정을 반복해야된다.
D. 클라이언트 <= 제육 2인분 보냅니다 <= 서버
推測を表すStatelessとは?サーバは途中で変更された場合、自分でメンテナンスしないため、クライアントのステータスを保持して応答しません.
サーバを無限に追加
A. 클라이언트 => 제육 2인분 주세요 => 서버
*A. 애초에 클라이언트가 필요한 정보를 다 보내기 때문에
서버가 아무리 바뀐들 지장이 없다.
B. 클라이언트 <= 제육 2인분 보냅니다 <= 서버
わかりません.ステータス制限なしステータス設計なし.
ログイン不要の簡易サービスログイン画面
毎回必要な情報はクライアントに送信されるので重いです.
ステータスを保持するように設計
ログインユーザがサーバにログインした状態を維持
通常はブラウザCookie、サーバセッションなどを使用してステータスを保持します
ただし、少なくとも「ステータスを保持」を使用します.
3) Cache
HTTPヘッダは、キャッシュおよび条件付き要求を処理することができる.wwwのように、クライアントは応答をキャッシュできる必要があります.
キャッシュがない場合
キャッシュの適用
HTTP/1.1 200 OK
Content-Type: image/jpeg
cache-control: max-age=60 //캐시가 유효한 시간
asdjv212... // 이미지 파일 byte
ブラウザが応答結果を保存して再要求すると、キャッシュは有効な時間にクエリーされ、再使用されます.4) Uniform Interface
統合設計リソース(すべてのリソース、uri、img、txtなど)が要求するアーキテクチャスタイル
リソースID:uriによってリソースを識別
リソースの操作を表す:HTTPメソッドのget、post、deleteなどの名前変更転送でリソースを操作する必要があります.
self-description message:どんなメッセージも自分で説明しなければなりません.
HTTP/1.1 200 OK
Host: www.example.org
Content-Type: application/json-patch+json
[ { "op": "remove", "path": "/a/b/c" } ]
Hypermedia as the Engine of Application State(HATEOAS):アプリケーションのステータスはHyperlinkで移行する必要があります.
HTTP/1.1 200 OK
Content-Type: application/json
Link: </articles/1>; rel="previous",
</articles/3>; rel="next";
{
"title": "The second article",
"contents": "blah blah..."
}
5) Layered Sysytem
これは、階層化されたアーキテクチャである必要があり、サーバがクライアントが知らないうちに柔軟な構造で開発できる必要があることを意味します.
6) Code-on-Demand(optional)
サーバは、クライアントにコードを送信して実行できるはずです.(javascript)
n/a.結論
RESTは長時間進化したWebアプリケーションのために設計された方式である.
Reference
この問題について(RESTとは?), 我々は、より多くの情報をここで見つけました https://velog.io/@ranja/REST란テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol