暗記メーカー
ログイン
REST WebAPI サービス設計(Udemy)
  • ユーザ名非公開

  • 問題数 27 • 2/23/2024

    記憶度

    完璧

    4

    覚えた

    11

    うろ覚え

    0

    苦手

    0

    未解答

    0

    アカウント登録して、解答結果を保存しよう

    問題一覧

  • 1

    RESTfulとは?何か。概要とREST原則を6つあげよ

    分散型システムにおける設計ルール 1.サーバクライアント 2.ステートレス 3.キャッシュ制御 4.統一インターフェイス 5.階層化システム 6.コードオンデマンド

  • 2

    ステートレスなサーバとは何か答えよ(2点)

    ・サーバがセッション情報などの状態を保持しないという意味 ・クライアントのアプリケーション状態をサーバで管理しない

  • 3

    統一インタフェースとは何か答えよ

    HTTPメソッドを8つに限定してクライアントとサーバの実装の独立性を向上する

  • 4

    URI設計で考慮すること(9点あげる)

    ・短く入力しやすい(冗長なパスを含まない) ・人が読んで理解できる。できるだけ省略しない ・大文字小文字が混在していない(すべて小文字で表現する) ・単語はハイフンでつなげる(ただしURLのパス等で分割することも検討すべし) ・単語は複数形を利用する ・エンコードを必要とする文字を使わない(要するに日本語を使わない) ・サーバ側のアーキテクチャを使用しない(.php等)は利用しない ・改造しやすいこと(システムの依存の設計をしない) ・ルールが統一されている

  • 5

    URI設計において、クエリパラメータとパスパラメータとするかの判断記述を回答せよ

    ・一意なリソースを表す⇒パスパラメータ ・省略可能かどうか⇒クエリパラメータ

  • 6

    HTTPステータスコード1XX番台の「100」及び「101」の意味を回答せよ

    100:サーバがリクエストの最初の部分を受け取り、サーバから拒否されていないことを示す 101:プロトコルの切り替え要求を示す

  • 7

    HTTPステータスコード2XX番台の「200」及び「201」及び「202」及び「204」の意味を回答せよ

    200:リクエストの成功を示す。本文にデータが含まれる。 201:リクエストが成功を示す。ヘッダーのLocationに新しいリソースへのURLを含む 202:非同期ジョブを受け付けたことを示す。実際の処理結果は別途受け取る。 204:リクエストは成功したがレスポンスデータがないことを示す。クライアント側のビューを変更する必要がないことを示す

  • 8

    HTTPステータスコード4XX番台の「400」及び「401」及び「403」及び「404」及び「409」及び「429」の意味を回答せよ

    400:その他エラー 401:認証されていない 403:リソースに対するアクセスが許可されていないこと(認可されていない) 404:リソースが存在しないことを示す 409:リソースが競合されている 429:アクセス回数が制限回数を超えたため処理不可

  • 9

    HTTPステータスコード5XX番台の「500」及び「501」の意味を回答せよ

    500:サーバサイドのサプリケーションエラー 501:サーバが使用できない

  • 10

    GETメソッド(データ取得するメソッド)を使用したときに成功時(2種類)、失敗時(7種類)のHTTPステータスコードを回答せよ

    【成功】 200 OK 304 Not Modified 【失敗】 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 429 Too Many Request 500 Internal Server Error 503 Server UnAvailable

  • 11

    POSTメソッドを使用したときに成功時(3種類)、失敗時(7種類)のHTTPステータスコードを回答せよ

    【成功】 200 OK 201 Created 202 Accepted 【失敗】 400 Bad Request 401 Unauthorized 403 Forbidden 409 Conflict 429 Too Many Request 500 Internal Server Error 503 Server UnAvailable

  • 12

    データ内部構造の設計で考慮することを回答せよ 【ヒント】●●は使用しない

    ・エンベロープは使用しない(ヘッダー情報と被るので) ※適切なHTTPステータスを返却する

  • 13

    データ内部構造の設計で考慮することを回答せよ 【ヒント】●●をサポートする機能を返却

    ・ページネーションをサポートする情報を返却する ※次をどこから取得するのか。キーとなる情報を返却する

  • 14

    データ内部構造の設計で考慮することを回答せよ 【ヒント】●●はフラットにする

    JSONのオブジェクトはフラットにする

  • 15

    データ内部構造の設計にて日付は何の形式を使うか?

    RFC3339(W3C-DTF)

  • 16

    APIのバージョンを入れる場所について3か所候補を挙げよ またそのうちどれが一番よく分かれるかも合わせて答えよ

    パスに入れる クエリに入れる ヘッダに入れる

  • 17

    セマンティックバージョニングに、メジャー、マイナー、パッチはそれぞれどのような 役割を果たすか回答せよ

    メジャー:後方互換しない修正 マイナー:後方互換する機能追加 パッチ:後方互換するバグ修正 メジャーバージョンのみ利用するのがおすすめ。 マイナーやパッチを付けてしまうと管理工数がおおい

  • 18

    認証と認可の違いを回答せよ

    認証は本人特定 認可はアクセス制御

  • 19

    OAuthとは何か答えよ

    OAuthとは、複数のWebサービスを連携して動作させるために使われる仕組みです。 通常、Webサービスを利用するためは、個別にユーザーIDとパスワードを入力してユーザーを認証する必要がありますが、OAuthを利用することで、IDやパスワードを入力することなく、アプリケーション間の連動ができるのです。

  • 20

    OpenID Connectとは何か答えよ

    OAuth 2.0 認可プロセスを拡張し, 認証目的で利用できるようにしたもの Authと異なるところはアクセストークンの他IDトークンも返却される(JWTで)

  • 21

    レートリミットとは何か回答せよ

    API通信における、時間あたりのアクセス制限のこと

  • 22

    レールリミットの代表的なアルゴリズム(Fixed Window)とはどのようなものか回答せよ。またその問題点も回答せよ

    時間枠を固定にするアクセス制限のこと。とたえば10分に30回のアクセスを許可する場合は、10:00~10:30で30回、10:30~10:40で30回と定義する 問題点はFixed Windowの境界付近で大量のアクセスが来ると時間帯でみると実質的に2倍のアクセスを許容することになる

  • 23

    レールリミットの代表的なアルゴリズム(Sliding log)とはどのようなものか回答せよ。またその問題点も回答せよ

    過去N分間のログの件数でカウントして、その件数でカウントする 問題点は過去ログを大量に保存する必要がある。

  • 24

    レールリミットの代表的なアルゴリズム(Sliding window)とはどのようなものか回答せよ。またその問題点も回答せよ

    Sliding logとFixed Windowのいいところどり リクエストがあった過去M分間の比率を算出する Sliding logとFixed Windowのいいところどり ※画像参照。値をイメージするとわかりやすい

  • 25

    WebAPIにおける脆弱性「XSS」とは何か?またその対策を述べよ

    悪意あるユーザが正規のサイトに不正なスクリプトを挿入することで、正規ユーザの情報を不正に引き出したりする 【対策】 レスポンスヘッダー追加

  • 26

    WebAPIにおける脆弱性「CSRF」とは何か?またその対策を述べよ

    本来拒否しなければならないアクセス元(許可しないアクセス元)からくるリクエストを処理してしまう問題 【詳細】 悪意あるユーザがトラップサイトを作成 善良なユーザをトラップサイトに誘導 トラップサイトから正規のサイトにリクエスト 【対策】 許可しないアクセス元からリクエストの拒否(X-API-KeyやAuthentiation(ユーザ単位)で実行可否判断) 攻撃者に推測されにくいトークンの発行

  • 27

    SSL/TLS/HTTPSの違いを述べよ

    SSL…安全に通信を行うためのプロトコル(2015年廃止) TLS…安全に通信を行うためのプロトコル(SSLの後継) HTTPS…HTTP+SSL/TLS