top 20 restful web services interview question
다가오는 인터뷰를 준비하는 데 도움이되는 가장 자주 묻는 RESTful 웹 서비스 인터뷰 질문 및 답변 목록 :
웹 서비스는 여러 응용 프로그램간에 일종의 데이터를 교환하거나 소프트웨어라고 할 때 매우 잘 알려진 용어입니다. 클라이언트-서버 모델을 기반으로 이러한 서비스는 다양한 언어로 작성된 여러 소프트웨어 응용 프로그램에서 사용할 수 있으며 다양한 플랫폼에서 실행되는 이점도 있습니다.
REST와 마찬가지로 Representational State Transfer는 상태 비 저장 클라이언트-서버 스타일 아키텍처를 기반으로하며 네트워크를 통해 쉽게 액세스 할 수 있으며 URI (예 : Uniform Resource Identifier)로 식별됩니다.
위의 REST뿐만 아니라 웹 서비스의 정의를 설명하는 주된 목적은 용어와 관련된 것입니다. ' RESTful 웹 서비스 ' RESTful 웹 서비스는 HTTP 메서드를 사용하고 REST 아키텍처를 기반으로하는 웹 서비스로 정의되기 때문입니다. 높은 확장 성 및 유지 관리 성, API 생성 등과 같은 유용한 기능이 있습니다.
자세히 알아보기 = >> Flask Restful API
이 기사에서는 기본 사항을 명확하게하고 주제를 더 잘 이해하는 데 도움이되는 질문과 답변 모음을 찾을 수 있습니다.
또한 읽으십시오 :
RESTful 웹 서비스 질문 목록
시작하자.
Q # 1) RESTful 웹 서비스에 대해 어떻게 이해하고 있습니까?
대답: XML 방식으로 웹 서비스를 개발하는 데 사용되는 SOAP (Simple Object Access Protocol)와 마찬가지로 RESTful 웹 서비스는 웹 프로토콜 즉, HTTP 프로토콜 방식을 사용합니다. 확장 성, 유지 보수성, 다양한 프로그래밍 언어로 구축 된 여러 애플리케이션 통신을 지원하는 등의 기능이 있습니다.
RESTful 웹 서비스 구현은 클라이언트가 필요로하는 다양한 리소스에 액세스하는 방법을 정의하며 그는 웹 브라우저를 통해 서버로 요청을 보냈습니다.
이 구현의 중요한 측면은 다음과 같습니다.
- 자원
- 요청 헤더
- 요청 본문
- 응답 본문
- 상태 코드
Q # 2) RESTful 웹 서비스에서 사용하는 프로토콜의 이름을 지정하십시오.
대답: RESTful 웹 서비스는 유명한 웹 프로토콜, 즉 HTTP 프로토콜을 사용합니다. 이것은 클라이언트와 서버 간의 데이터 통신 매체 역할을합니다. HTTP 표준 메서드는 RESTful 웹 서비스 아키텍처의 리소스에 액세스하는 데 사용됩니다.
Q # 3) RESTful 웹 서비스와 관련하여 '주소 지정'이라는 용어를 설명하십시오.
대답: 모든 사람에게 도달하기 위해 우편 번호가있는 주소가 필요한 것과 마찬가지로 '주소 지정'은 웹 서비스를 호스팅하기 위해 서버에있는 리소스를 찾습니다. 이것은 일반적으로 URI 즉, 통합 리소스 식별자로 수행됩니다.
Q # 4) RESTful 웹 서비스의 기능을 등록하십시오.
안드로이드를위한 최고의 무료 음악 다운로더
대답: 모든 RESTful 웹 서비스에는 아래에 나열된 다음과 같은 기능과 특성이 있어야합니다.
- 클라이언트-서버 표현을 기반으로합니다.
- 웹 서비스에서 데이터 가져 오기, 리소스 검색, 쿼리 실행 등과 같은 기능을 수행하기 위해 HTTP 프로토콜을 사용합니다.
- 서버와 클라이언트 간의 통신은 '메시징'이라는 매체를 통해 수행됩니다.
- URI를 통해 서버에서 사용 가능한 리소스 주소 지정.
- 모든 클라이언트 요청과 응답이 서로 독립적 인 상태 비 저장 개념을 기반으로하며 필요한 정보를 완벽하게 제공합니다.
- 캐싱 개념을 사용합니다.
- Uniform 인터페이스에서 작동합니다.
Q # 5) 메시징 기술을 설명하십시오.
대답: 메시지는 모든 유형의 통신이 발생하기 위해 데이터를 교환하는 모드입니다. 같은 방식으로 HTTP 프로토콜은 HTTP Request 및 Response 방식을 통해 클라이언트와 서버 간의 메시지 통신 역할을합니다. HTTP 요청은 데이터에 대한 정보를 포함하는 클라이언트가 보내고 서버에서 HTTP 응답을받습니다.
메시지는 데이터 (예 : 메타 데이터)에 대한 정보 모음입니다.
Q # 6) HTTP 요청 및 HTTP 응답의 핵심 구성 요소는 무엇입니까?
대답: HTTP 요청의 핵심 구성 요소는 다음과 같습니다.
- 동사: GET, PUT, POST 등과 같은 메소드를 포함합니다.
- 서버에서 사용 가능한 리소스를 식별하기위한 Uniform Resource Identifier입니다.
- HTTP 버전을 지정하기위한 HTTP 버전입니다.
- 데이터에 대한 정보를 포함하기위한 HTTP 요청 헤더입니다.
- 사용중인 리소스의 표현을 포함하는 HTTP 요청 본문입니다.
HTTP 응답의 핵심 구성 요소는 다음과 같습니다.
- 요청 코드: 여기에는 서버 응답의 상태를 결정하는 다양한 코드가 포함됩니다.
- HTTP 버전을 지정하기위한 HTTP 버전입니다.
- 데이터에 대한 정보를 포함하기위한 HTTP 응답 헤더입니다.
- 사용중인 리소스의 표현이 포함 된 HTTP 응답 본문입니다.
Q # 7) RESTful 웹 서비스와 관련하여 '무국적 상태'라는 용어를 설명하십시오.
대답: REST에서 ST 자체는 State Transfer를 정의하고 Statelessness는 완전한 격리를 의미합니다. 즉, 클라이언트 응용 프로그램의 상태가 서버에 저장되지 않고 전달됩니다.
이 프로세스에서 클라이언트는 서버가 보낸 HTTP 요청을 수행하는 데 필요한 모든 정보를 보냅니다. 따라서 모든 클라이언트 요청 및 응답은 필요한 정보를 제공한다는 완전한 보증으로 서로 독립적입니다.
모든 클라이언트는 각 세션의 식별자 역할도하는 '세션 식별자'를 전달합니다.
Q # 8) '무국적'의 장단점을 입력하십시오.
대답: 위의 질문에서 우리는 클라이언트-서버 통신과 관련하여 상태 비 저장의 의미를 이해했습니다. 이제 몇 가지 장점과 단점을 살펴 보겠습니다.
장점 :
- 통신에 필요한 모든 방법은 독립적 인 방법으로 식별됩니다. 즉, 다른 방법에 대한 종속성이 없습니다.
- 클라이언트 및 서버와의 이전 통신은 유지되지 않으므로 전체 프로세스가 매우 단순화됩니다.
- 이전에 사용 된 정보 나 메타 데이터가 다른 방법에 필요한 경우 클라이언트는 HTTP 요청과 함께 해당 정보를 다시 보냅니다.
- HTTP 프로토콜과 REST 웹 서비스는 모두 상태 비 저장 기능을 공유합니다.
단점 :
- 클라이언트의 모든 HTTP 요청에서 클라이언트 상태에 대한 일부 정보의 가용성이 웹 서비스에 필요합니다.
Q # 9) RESTful 웹 서비스에 대한 몇 가지 중요한 제약 조건을 입력하십시오.
대답: 모든 제약은 긍정적 인 영향과 부정적인 영향을 미치며 전체 아키텍처를 생성하려면 둘 사이에 균형이 있어야합니다.
다음은 RESTful 웹 서비스에 대한 몇 가지 중요한 제약 사항입니다.
- 응용 프로그램 내에서 모듈성을 유지하는 데 도움이되는 각 서버와 클라이언트에 대해 별도의 문제가 있어야합니다. 이것은 또한 복잡성을 줄이고 확장 성을 증가시킵니다.
- 클라이언트-서버 통신은 상태 비 저장이어야합니다. 즉, 이전 정보가 사용되지 않고 전체 실행이 분리되어 수행됩니다. 실패한 경우 클라이언트가 복구하는데도 도움이됩니다.
- 클라이언트-서버 통신에서 HTTP 응답은 캐시 가능해야합니다. 그래야 필요할 때 캐시 된 사본을 사용할 수있어 서버의 확장 성과 성능이 향상됩니다.
- 네 번째 제약은 클라이언트-서버 상호 작용을 쉽게 이해할 수있는 균일 한 인터페이스입니다. 이 제약은 다음과 같이 4 개의 하위 제약으로 더 나뉩니다.
- 자원 식별
- 자원 조작
- 각 메시지는 쉽게 이해할 수 있으며 설명이 포함되어 있습니다.
- 하이퍼 링크가있는 텍스트로 정의되는 하이퍼 미디어를 클릭하면 다른 응용 프로그램 상태로 이동합니다.
- 클라이언트-서버 통신은 계층화 된 시스템에서 수행되어야하며 따라서 클라이언트는 통신이 수행되는 중간 수준에 대한 지식 만 있어야합니다.
Q # 10) '리소스'란 무엇입니까?
대답: 'Object'인스턴스와 마찬가지로 우리는 Object Orient Programming Language에서 배웠습니다. 같은 방식으로 'Resource'는 이미지, HTML 파일, 텍스트 데이터 및 모든 동적 유형이 될 수있는 유형의 객체로 정의됩니다. 데이터. 자원을 표현하기 위해 사용할 수있는 다양한 표현 형식이 있습니다.
가장 일반적인 리소스는 다음과 같습니다.
- JSON
- YAML
- XML
- HTML
Q # 11) 자원의 적절한 표현이 필요한 이유는 무엇입니까?
대답: 표현은 자원의 쉬운 식별을 결정하기 때문에 매우 중요합니다. 적절한 형식의 리소스를 적절하게 표현하면 클라이언트가 형식을 쉽게 이해할 수 있습니다.
Q # 12) RESTful 웹 서비스에 대한 리소스 표현을 디자인 할 때 염두에 두어야 할 몇 가지 중요한 사항을 나열합니다.
대답: 리소스 표현이 수행되는 형식에는 제한이 없지만 주요 요구 사항은 표현의 형식이 클라이언트 요구 사항에 따라야한다는 것입니다.
Windows 10 용 PC 클리너 무료 다운로드
좋은 자원 표현은 다음과 같은 주요 사항을 고려하여 설계됩니다.
- 리소스 표현 형식은 클라이언트와 서버가 쉽게 이해할 수 있어야합니다.
- 표현은 복잡하거나 단순 할 수있는 형식 구조에 관계없이 완전해야합니다.
- 자원을 다른 자원에 연결하는 경우에도 이러한 경우를 고려하고 처리해야합니다.
Q # 13) 캐싱이란 무엇입니까?
대답: 캐싱은 필요할 때 캐시 된 복사본을 사용할 수 있고 동일한 응답을 다시 생성 할 필요가 없도록 서버 응답이 저장되는 프로세스입니다. 이 프로세스는 서버로드를 줄일뿐만 아니라 서버의 확장 성과 성능을 향상시킵니다. 클라이언트 만 응답을 캐시 할 수 있으며 제한된 시간 동안도 캐시 할 수 있습니다.
다음은 캐싱 프로세스에서 식별 할 수 있도록 리소스의 헤더와 간략한 설명입니다.
- 리소스 생성 시간 및 날짜
- 일반적으로 마지막 세부 정보를 저장하는 리소스 수정 시간 및 날짜입니다.
- 캐시 제어 헤더
- 캐시 된 리소스가 만료되는 시간 및 날짜입니다.
- 리소스를 가져온 시간을 결정하는 연령입니다.
Q # 14) 캐시 제어 헤더를 설명하십시오.
대답: 표준 Cache-control 헤더는 캐시 기능을 얻는 데 도움이 될 수 있습니다. 다음은 다양한 캐시 제어 헤더에 대한 간략한 설명입니다.
- 공공의: 공용으로 표시된 리소스는 클라이언트와 서버 사이의 중간 구성 요소에 의해 캐시 될 수 있습니다.
- 은밀한: 개인용으로 표시된 리소스는 클라이언트 만 캐시 할 수 있습니다.
- 캐시 없음은 특정 리소스를 캐시 할 수 없으므로 전체 프로세스가 중지됨을 의미합니다.
Q # 15) RESTful 웹 서비스를 설계 할 때 따라야 할 모범 사례는 무엇입니까?
대답: 안전한 RESTful 웹 서비스를 설계하려면 몇 가지 모범 사례 또는 고려해야 할 사항이 있습니다.
다음과 같이 설명됩니다.
- 서버의 모든 입력을 확인해야합니다.
- 입력은 올바른 형식이어야합니다.
- URL을 통해 민감한 데이터를 전달하지 마십시오.
- 모든 세션에서 사용자는 인증을 받아야합니다.
- 오류를 나타내는 데는 HTTP 오류 메시지 만 사용해야합니다.
- 쉽게 이해할 수 있고 클라이언트에 필요한 메시지 형식을 사용하십시오.
- 통합 리소스 식별자는 설명적이고 쉽게 이해할 수 있어야합니다.
Q # 16) 페이로드 란 무엇입니까?
대답: 모든 HTTP 메시지의 본문 부분에 존재하는 요청 데이터를 '페이로드'라고합니다. Restful 웹 서비스에서 페이로드는 POST 메서드를 통해서만 수신자에게 전달 될 수 있습니다.
POST 방법을 통해 페이로드로 데이터를 보내는 데에는 제한이 없지만 유일한 문제는 더 많은 데이터가 더 많은 시간과 대역폭을 소비한다는 것입니다. 이것은 또한 사용자의 많은 시간을 소비 할 수 있습니다.
C ++ 인터뷰 질문 및 경험자
Q # 17) 설명과 함께 일부 HTTP 메서드를 등록합니다.
답변 : 다음은 설명과 함께 HTTP 메서드 목록입니다.
- 가져 오기: 이것은 서버의 사용자 목록을 가져 오는 읽기 전용 작업입니다.
- 놓다: 이 작업은 서버에서 새 리소스를 만드는 데 사용됩니다.
- 게시하다: 이 작업은 이전 리소스를 업데이트하거나 새 리소스를 만드는 데 사용됩니다.
- 지우다: 이름에서 알 수 있듯이이 작업은 서버의 모든 리소스를 삭제하는 데 사용됩니다.
- 옵션 : 이 작업은 서버에서 사용할 수있는 지원되는 리소스 옵션 목록을 가져옵니다.
Q # 18) PUT 방식과 POST 방식의 차이점은 무엇인가요?
대답: PUT 방법과 POST 방법의 가장 큰 차이점은 PUT 방법으로 생성 된 결과는 작업이 몇 번 수행 되더라도 항상 동일하다는 것입니다. 반면에 POST 작업에 의해 생성되는 결과는 항상 매번 다릅니다.
Q # 19) JAX-RS에 대해 어떻게 이해하십니까?
대답: JAX-RS는 RESTful 웹 서비스 용 Java API로 정의됩니다. 여러 라이브러리 및 프레임 워크 중에서 RESTful 웹 서비스를 지원하는 가장 적합한 Java 프로그래밍 언어 기반 API로 간주됩니다.
JAX-RS의 일부 구현은 다음과 같습니다.
- 저지
- RESTEasy
- Apache CFX
- 플레이
이 중에서 Jersey는 가장 인기있는 프레임 워크입니다.
Q # 20) HTTP 상태 코드는 무엇입니까? 의미를 가진 소수를 모집하십시오.
대답: HTTP 상태 코드는 기본적으로 서버에서 수행 된 작업의 상태를 일부 코드의 모드로 표현한 것입니다. 모든 코드에는 고유 한 의미가 있습니다.
의미가있는 일부 HTTP 상태 코드는 다음과 같습니다.
- 코드 200 : 이것은 성공을 나타냅니다.
- 코드 201 : 이는 리소스가 성공적으로 생성되었음을 나타냅니다.
- 코드 204 : 이는 응답 본문에 내용이 없음을 나타냅니다.
- 코드 404 : 이것은 사용할 수있는 방법이 없음을 나타냅니다.
상태를 나타내는 이러한 코드는 거의 없습니다.
결론
이 기사는 RESTful 웹 서비스 인터뷰를 준비하고 간단하고 쉬운 방법으로 개념을 이해하는 데 도움이 될 것입니다. RESTful 웹 서비스에 대한 완전한 지식을 갖기 위해 매우 필요한 모든 영역을 다루려고 노력했습니다.
추가 읽기 – Flask API 자습서
인터뷰의 모든 질문에 답할 수는 없지만 답하는 내용은 정확해야합니다. 기본 개념이 강하고 자신감 수준이 높아야합니다.
모두 제일 좋다!!