top 20 restful web services interview question
今後の面接の準備に役立つ、最もよくあるRESTfulWebサービスの面接の質問と回答のリスト:
Webサービス。これは、複数のアプリケーション間で何らかのデータを交換すること、またはソフトウェアと言うときに非常によく知られている用語です。クライアントサーバーモデルに基づいて、これらのサービスはさまざまな言語で記述された複数のソフトウェアアプリケーションで使用でき、さまざまなプラットフォームで実行できるという利点もあります。
RESTと同様に、Representational State Transferもステートレスクライアントサーバースタイルのアーキテクチャに基づいており、ネットワーク経由で簡単にアクセスでき、URI(Uniform Resource Identifier)によって識別されます。
上記のRESTだけでなくWebサービスの定義を説明する主な目的は、この用語に関連する手助けをすることです。 ' RESTfulWebサービス」 RESTful Webサービスは、HTTPメソッドを使用し、RESTのアーキテクチャに基づくWebサービスとして定義されているためです。高いスケーラビリティと保守性、APIの作成などの便利な機能があります。
詳細= >> Flask Restful API
この記事では、あなたの基本を明確にし、主題のより良い理解を深めるのに役立つ質問と回答のコレクションを見つけるでしょう。
また読む:
RESTfulWebサービスの質問のリスト
はじめましょう。
Q#1)RESTful Webサービスとは何かについてどのように理解していますか?
回答: XMLメソッドによってWebサービスを開発するために使用されるSOAP(Simple Object Access Protocol)と同様に、RESTfulWebサービスはWebプロトコル(HTTPプロトコルメソッド)を使用します。それらは、スケーラビリティ、保守性などの機能を備えており、さまざまなプログラミング言語で構築された複数のアプリケーション通信を支援します。
RESTful Webサービスの実装は、クライアントが必要とするさまざまなリソースにアクセスする方法を定義し、クライアントはWebブラウザーを介してサーバーに要求を送信しました。
Windows10用の無料のビデオコンバーター
この実装の重要な側面は次のとおりです。
- リソース
- リクエストヘッダー
- リクエストボディ
- レスポンスボディ
- ステータスコード
Q#2)RESTfulWebサービスで使用されるプロトコルに名前を付けてください。
回答: RESTful Webサービスは、有名なWebプロトコル(HTTPプロトコル)を使用します。これは、クライアントとサーバー間のデータ通信の媒体として機能します。 HTTP標準メソッドは、RESTfulWebサービスアーキテクチャのリソースにアクセスするために使用されます。
Q#3)RESTfulWEBサービスに関して「アドレス指定」という用語を説明してください。
回答: すべての人に連絡するために郵便番号付きの住所が必要なのと同じように、「住所」は、ウェブサービスをホストする目的でサーバー上に存在するリソースを検索します。これは通常、URI、つまりURI(Unified Resource Identifier)を使用して行われます。
Q#4)RESTfulWebサービスの機能を参加させます。
回答: すべてのRESTfulWebサービスには、以下にリストされている次の機能と特性が必要です。
- クライアントサーバー表現に基づいています。
- Webサービスからのデータのフェッチ、リソースの取得、クエリの実行などの機能を実行するためのHTTPプロトコルの使用。
- サーバーとクライアント間の通信は、「メッセージング」と呼ばれる媒体を介して実行されます。
- URIを介したサーバーで利用可能なリソースのアドレス指定。
- すべてのクライアントの要求と応答が互いに独立しており、必要な情報を提供することが完全に保証されているステートレスの概念に基づいています。
- キャッシュの概念を使用します。
- ユニフォームインターフェイスで動作します。
Q#5)メッセージング技術について説明してください。
回答: メッセージは、あらゆる種類の通信を行うためにデータを交換するモードです。同様に、HTTPプロトコルは、HTTP要求および応答メソッドを介したクライアントとサーバー間のメッセージ通信の役割を果たします。 HTTPリクエストは、データに関する情報を含むクライアントによって送信され、サーバーからHTTPレスポンスを受信します。
メッセージは、データに関する情報のコレクション、つまりメタデータです。
Q#6)HTTPリクエストとHTTPレスポンスのコアコンポーネントは何ですか?
回答: HTTPリクエストのコアコンポーネントは次のとおりです。
- 動詞: GET、PUT、POSTなどのメソッドが含まれています。
- サーバーで使用可能なリソースを識別するためのUniformResourceIdentifier。
- HTTPバージョンを指定するためのHTTPバージョン。
- データに関する情報を含むためのHTTPリクエストヘッダー。
- 使用中のリソースの表現を含むHTTPリクエスト本文。
HTTP応答のコアコンポーネントは次のとおりです。
- リクエストコード: これには、サーバー応答のステータスを決定するさまざまなコードが含まれています。
- HTTPバージョンを指定するためのHTTPバージョン。
- データに関する情報を含むためのHTTP応答ヘッダー。
- 使用中のリソースの表現を含むHTTP応答本文。
Q#7)RESTfulWEBサービスに関する「ステートレス」という用語を説明してください。
回答: RESTでは、ST自体が状態転送を定義し、ステートレスは完全な分離を意味します。つまり、クライアントのアプリケーションの状態がサーバーに保存されることはなく、渡されます。
このプロセスでは、クライアントは、サーバーが送信されたHTTP要求を満たすために必要なすべての情報を送信します。したがって、すべてのクライアントの要求と応答は、必要な情報を提供することを完全に保証して、互いに独立しています。
すべてのクライアントは、各セッションの識別子としても機能する「セッション識別子」を渡します。
Q#8)「無国籍」の長所と短所を挙げてください。
回答: 上記の質問で、クライアント/サーバー通信に関するステートレスの意味を理解しました。それでは、その長所と短所のいくつかを見てみましょう。
利点:
- 通信に必要なすべてのメソッドは、独立したメソッドとして識別されます。つまり、他のメソッドへの依存関係はありません。
- クライアントおよびサーバーとの以前の通信は維持されないため、プロセス全体が非常に簡素化されます。
- 以前に使用した情報またはメタデータが別のメソッドで必要な場合、クライアントはその情報をHTTPリクエストで再送信します。
- HTTPプロトコルとRESTWebサービスは、どちらもステートレスの機能を共有しています。
短所:
- クライアントからのすべてのHTTP要求で、クライアントの状態に関するいくつかの情報の可用性がWebサービスによって要求されます。
Q#9)RESTfulWebサービスにいくつかの重要な制約を課します。
回答: すべての制約にはプラスとマイナスの影響があり、アーキテクチャ全体を作成するには、両方のバランスをとる必要があります。
以下に、RESTfulWebサービスのいくつかの重要な制約を示します。
- アプリケーション内のモジュール性を維持するのに役立つサーバーとクライアントごとに個別の懸念があるはずです。これにより、複雑さが軽減され、スケーラビリティが向上します。
- クライアント/サーバー通信はステートレスである必要があります。つまり、以前の情報は使用されず、完全な実行は分離して実行されます。障害が発生した場合は、クライアントの回復にも役立ちます。
- クライアント/サーバー通信では、HTTP応答をキャッシュ可能にして、必要なときにキャッシュコピーを使用できるようにする必要があります。これにより、サーバーのスケーラビリティとパフォーマンスが向上します。
- 4番目の制約は、クライアントとサーバーの相互作用を簡単に理解できるようにする統一されたインターフェイスです。この制約は、次のようにさらに4つのサブ制約に分けられます。
- リソースの識別
- リソース操作
- 各メッセージは簡単に理解でき、自己記述的です。
- ハイパーメディア。ハイパーリンク付きのテキストとして定義され、クリックすると別のアプリケーション状態に移行します。
- クライアント/サーバー通信は階層化されたシステムで実行する必要があるため、クライアントは通信が実行されている中間レベルについての知識のみを持っている必要があります。
Q#10)「リソース」とは何ですか?
回答: 'Object'インスタンスと同様に、オブジェクト指向プログラミング言語で学習しました。同様に、 'Resource'は、画像、HTMLファイル、テキストデータ、および任意のタイプの動的なタイプのオブジェクトとして定義されます。データ。リソースを表現するために利用できる表現形式にはさまざまなものがあります。
いくつかの最も一般的なリソースを以下に示します。
- JSON
- YAML
- XML
- HTML
Q#11)リソースの適切な表現が必要なのはなぜですか?
回答: 表現は、リソースの簡単な識別を決定するため、非常に重要です。適切な形式でリソースを適切に表現することにより、クライアントは形式を簡単に理解できます。
Q#12)RESTfulWebサービスのリソース表現を設計する際に留意すべき重要なポイントをいくつか挙げてください。
回答: リソース表現が行われる形式に制限はありませんが、主な要件は表現の形式であるため、クライアントの要件に従う必要があります。
優れたリソース表現は、次の主要なポイントを考慮して設計されています。
- リソース表現形式は、クライアントとサーバーが簡単に理解できる必要があります。
- 表現は、複雑または単純なフォーマット構造に関係なく完全である必要があります。
- リソースを他のリソースにリンクする場合は、そのような場合も考慮して処理する必要があります。
Q#13)キャッシングとは何ですか?
回答: キャッシングは、サーバーの応答が保存されるプロセスであり、キャッシュされたコピーを必要なときに使用でき、同じ応答を再度生成する必要はありません。このプロセスにより、サーバーの負荷が軽減されるだけでなく、サーバーのスケーラビリティとパフォーマンスが向上します。クライアントだけが応答をキャッシュでき、それも限られた期間だけキャッシュできます。
以下に、キャッシングプロセスで識別できるように、リソースのヘッダーとその簡単な説明を示します。
- リソース作成の日時
- 通常、最後の詳細を格納するリソース変更の日時。
- キャッシュ制御ヘッダー
- キャッシュされたリソースの有効期限が切れる日時。
- リソースがフェッチされてからの時間を決定する経過時間。
Q#14)キャッシュ制御ヘッダーについて説明してください。
回答: 標準のCache-controlヘッダーは、キャッシュ機能の実現に役立ちます。以下に、さまざまなキャッシュ制御ヘッダーの簡単な説明を示します。
- 公衆: パブリックとしてマークされたリソースは、クライアントとサーバーの間の任意の中間コンポーネントによってキャッシュできます。
- 民間: プライベートとしてマークされたリソースは、クライアントのみがキャッシュできます。
- キャッシュがないということは、特定のリソースをキャッシュできないため、プロセス全体が停止することを意味します。
Q#15)RESTful Webサービスを設計する際に従うべきベストプラクティスは何ですか?
回答: 安全なRESTfulWebサービスを設計するには、考慮すべきいくつかのベストプラクティスまたは発言点があります。
これらは次のように説明されます。
- サーバー上のすべての入力を検証する必要があります。
- 入力は整形式である必要があります。
- 機密データをURL経由で渡さないでください。
- どのセッションでも、ユーザーは認証される必要があります。
- 障害を示すには、HTTPエラーメッセージのみを使用する必要があります。
- わかりやすく、クライアントが必要とするメッセージ形式を使用してください。
- Unified Resource Identifierは、説明的で簡単に理解できる必要があります。
Q#16)ペイロードとは何ですか?
回答: すべてのHTTPメッセージの本文部分に存在するリクエストデータは、「ペイロード」と呼ばれます。 Restful Webサービスでは、ペイロードはPOSTメソッドを介してのみ受信者に渡すことができます。
POSTメソッドを介してペイロードとしてデータを送信することに制限はありませんが、唯一の懸念は、より多くのデータがより多くの時間と帯域幅を消費することです。これは、ユーザーの時間の多くも消費する可能性があります。
Q#17)説明付きのHTTPメソッドのいくつかを参加させます。
回答:以下にリストされているのは、HTTPメソッドとその説明のリストです。
- 取得する: これは、サーバー上のユーザーのリストをフェッチする読み取り専用操作です。
- プット: この操作は、サーバー上に新しいリソースを作成するために使用されます。
- 役職: この操作は、古いリソースを更新したり、新しいリソースを作成したりするために使用されます。
- 削除: 名前が示すように、この操作はサーバー上のリソースを削除するために使用されます。
- オプション: この操作は、サーバーで使用可能なリソースのサポートされているオプションのリストをフェッチします。
Q#18)PUTメソッドとPOSTメソッドの違いは何ですか?
回答: PUTメソッドとPOSTメソッドの主な違いは、PUTメソッドで生成された結果は、操作が何度実行されても常に同じであるということです。一方、POST操作によって生成される結果は常に異なります。
Q#19)JAX-RSについてどのように理解していますか?
回答: JAX-RSは、RESTfulWebサービス用のJavaAPIとして定義されています。複数のライブラリとフレームワークの中で、これはRESTfulWebサービスをサポートする最も適切なJavaプログラミング言語ベースのAPIと見なされています。
JAX-RSの実装のいくつかは次のとおりです。
- ジャージー
- ゆっくり休んで
- Apache CFX
- 演奏する
これらの中で、ジャージーは最も人気のあるフレームワークです。
Q#20)HTTPステータスコードとは何ですか?意味のある少数の参加者。
iPhone用のトップ10スパイアプリ
回答: HTTPステータスコードは基本的に、サーバー上で実行されたタスクのステータスを表すものであり、一部のコードのモードが含まれています。すべてのコードには独自の意味があります。
HTTPステータスコードとその意味の一部は次のとおりです。
- コード200: これは成功を示します。
- コード201: これは、リソースが正常に作成されたことを示します。
- コード204: これは、応答本文にコンテンツがないことを示しています。
- コード404: これは、利用可能な方法がないことを示しています。
ステータスを示すそのようなコードは他にもいくつかあります。
結論
この記事は、RESTful Webサービスのインタビューの準備に役立ち、シンプルで簡単な方法で概念を理解するのに役立ちます。私は、RESTfulWebサービスについて完全な知識を持つために非常に必要なすべての領域をカバーしようとしました。
参考文献 - FlaskAPIチュートリアル
面接ですべての質問に答えることができない可能性があることを覚えておいてください。ただし、答えるものはすべて正確である必要があります。あなたの基本的な概念は強くなければならず、あなたの信頼水準は高くなければなりません。
ではごきげんよう!!