REST를 사용하여 요청을 처리하는 경우와 AJAX를 사용하여 요청을 처리하는 경우 [닫기]


12

내 웹 페이지에서 동적 드롭 다운 (예 : 선택한 국가를 기준으로 도시 이름)을 표시하려면 AJAX를 사용하여 수행 할 수 있습니다. 그러나 REST 호출을 사용하여 수행 할 수도 있습니다. 그래서 어느 것을 사용해야합니까?

내 문제는 실제로 REST와 다른 HTTP 브라우저 요청 (양식 제출) 간의 차이를 얻지 못한다는 것입니다. REST의 공식적인 정의를 살펴 보았으며 HTTP 요청과 동일한 것으로 보입니다. 그렇다면 REST는 본질적으로 AJAX와 어떻게 다릅니 까?


6
짐작했듯이, 그들은 상호 배타적이지 않습니다.
Seth Battin

2
다른 애플리케이션에서 애플리케이션에 액세스 할 때 일반적으로 REST API를 사용합니다.
Gian Acuna

나는 둘 사이의 비교를 보지 못한다. AJAX는 동적 웹 컨텐츠를 구현하기 위해 여러 기술을 적용한 애플리케이션이며 REST는 아키텍처 스타일입니다.
jramoyo

2
@downvoter --- 왜 싫어?
Kaushik

답변:


26

AJAX를 사용하여 할 수 있습니다. 그러나 REST 호출을 사용하여 수행 할 수도 있습니다.

음 .. 아니야. 이 두 가지는 완전히 직교합니다. 당신이 서버에서 얻을 수있는 데이터 페이지를 업데이트하려면, 당신은 AJAX를 사용을한다. 다른 방법은 없습니다. 그리고 AJAX 호출 REST 또는 다른 것을 사용할 있습니다.

내 문제는 실제로 REST와 HTTP 브라우저 요청의 차이를 얻지 못한다는 것입니다 (일명 양식 제출). REST의 공식적인 정의를 살펴 보았으며 HTTP 요청처럼 보입니다.

REST의 호출 입니다 항상 HTTP 요청. 이 (양식을 제출처럼) 일반 브라우저 통화를 처리하고 전체 HTML 페이지를 반환하는 데 사용할 수 있지만, 그것은 것 일반적으로 (일반적으로 JSON 형식으로)에만 데이터를 반환 핸들 API를 호출하는 데 사용됩니다.

왜 별도의 이름이 있습니까?

REST는 HTTP를 사용하는 특정 스타일이기 때문에 원래는 원래 의도했던대로 사용했지만 대부분의 사람들은 "얻지"않았기 때문에 거의 20 년 동안 거의 사용하지 않았습니다.

특히 REST는 URL 자체에서 검색하거나 조작하려는 엔티티 (일반적으로 ID를 통해)를 인코딩하고 사용 된 HTTP 메소드 (검색을위한 GET, 변경을위한 POST, 변경을위한 POST, 작성을위한 PUT)에서 수행하려는 조치를 인코딩하는 것을 의미합니다. 삭제, 삭제).


6
REST가 항상 HTTP를 통해있을 필요는 없습니다. 메소드 세트에 맞는 프로토콜은 REST 일 수 있습니다. 그러나 웹 애플리케이션 컨텍스트에서는 HTTP가 될 것입니다.
Jan Hudec

10
@Jan Hudec : 다른 프로토콜과 함께 사용되는 REST의 실제 사례가 있습니까?
Michael Borgwardt

6

글쎄, 먼저 AJAX와 REST가 실제로 사용 사례의 대안이 아니라는 것을 이해해야한다고 생각합니다. AJAX는 비동기 자바 스크립트 및 XML을 나타내므로 브라우저 요청이 완료된 후 자바 스크립트를 사용하여 데이터를로드하는 경우 AJAX를 수행하는 것입니다.

반면 REST는 Stefan Billet이 지적한 것처럼 HTTP 요청을 사용하여 데이터를 전송하는 Representational State Transfer를 나타냅니다. 따라서 REST는 실제로 AJAX를 수행하는 한 가지 방법입니다. SOAP는 또 다른 것이지만 이것은 귀하의 질문에 대한 주제가 아닙니다. 따라서 귀하의 질문은 "어떤 기술이 사용 사례에 가장 적합합니까?"

이 경우 드롭 다운에 사용 된 데이터의 양에 대해 생각하는 것이 좋습니다. 요소가 거의없는 경우 페이지에 모든 요소를 ​​배치하고 자바 스크립트를 사용하여 적절한 요소를 표시 할 수 있습니다. 두 번째 옵션은 자바 스크립트와 함께 사용하기 쉽고 AJAX를 수행하는 것을 의미하기 때문에 매우 가볍기 때문에 JSON으로 REST 호출을 표현으로 사용할 수 있습니다.


Ajax를 사용하여 웹 페이지의 일부를로드 할 때 해당 AJAX 요청은 서버에 대한 http 호출입니다 ... 더 구체적으로 .. 서블릿에서 특정 메소드를 호출합니다. 이 경우 AJAX가 REST를 사용한다고 말하는 것이 안전합니까?
Kaushik

그것은 당신이 부르는 방법에 달려 있습니다. 예를 들어 메소드가 RESTful WebService의 제한 조건을 충족시키는 경우 ( en.wikipedia.org/wiki/Representational_state_transfer ) 예라고 말할 수 있습니다.
Lesstat

4

REST는 HTTP 동사 GET, POST, PUT, DELETE를 사용하여 서버의 자원을 각각 가져오고, 삽입하고, 업데이트하고, 삭제합니다. 예 : URL이 포함 된 GET : controller / customer / {id}
대안은 GetCustomerById (id), InsertCustomer (customer), UpdateCustomer (customer), DeleteCustomer (customer)와 같은 메소드를 컨트롤러에 추가하는 것입니다. 이것이 바로 RPC 접근 방식입니다. 예를 들어 URL이있는 GET : controller / GetCustomerById? id = {id}
차이점 중 하나는 REST api가 예측 가능하다는 것입니다. REST를 알고 있고 원하는 자원 (예 : 고객)의 이름을 알고 있다면 즉시 표준 동사와 함께 REST 제어기를 사용할 수 있습니다.
RPC 접근 방식을 사용하면 컨트롤러에 어떤 메소드가 있는지, 어떤 인수를 취하는 지 등을 알아야합니다. 이러한 서명은 컨트롤러마다 컨트롤러마다, 앱마다 다릅니다.
반면에 AJAX는 REST 호출이든 RPC 호출이든 상관없이 위에서 언급 한 요청을 비동기 적으로 처리하는 방법입니다.


대안은 여전히 ​​REST입니다. 나머지는 사용 된 프로토콜이 아닌 일련의 작업으로 정의됩니다.
Jan Hudec
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.