SOAP 웹 서비스는 "POST"http 메소드 만 지원합니까?
인터뷰 중 하나에서이 질문에 직면했습니다. SOAP 웹 서비스가 "POST"http 메소드 만 지원하는지 아니면 서버 측에서 다른 메소드를 수용 할 수있는 방법이 있는지 말씀해 주시겠습니까?
나는 항상 POST를 사용했지만 W3C 표준 에 따라 SOAP는 POST 및 GET 메서드를 모두 지원합니다.
편집 : 몇 가지 조사 후 여기에서 볼 수 있듯이 완전히 사실이 아닌 것 같습니다 . 이다 이론적으로 POST와 GET은 HTTP를 통해 사용할 수있는 전송 프로토콜 및 SOAP HTTP를하는 방법이기 때문에 GET을 사용할 수있다.
그러나 아시다시피 GET은 쿼리 문자열에 요청을 포함합니다. SOAP 요청 (XML 메시지)은 일반적으로 쿼리 문자열에 포함 되기에는 너무 복잡하고 장황하므로 거의 모든 구현 (예 : JAX-WS)은 POST 만 지원합니다.
쓰레드는 3 년이 지났지 만,이 같은 질문을 스스로에게 던지고 웹에서 잘못된 답을 찾는 사람들이 여전히 많이있을 것이라고 생각합니다. 질문에 대한 대답은 아니오입니다. GET 메서드도 사용할 수 있습니다.
SOAP 사양에 따르면 https://www.w3.org/TR/2007/REC-soap12-part0-20070427/#transport GET 및 POST 메서드를 사용하여 http를 통해 SOAP 메시지를 교환 할 수 있습니다. HTTP 요청 본문에서 SOAP 메시지를 전달하기 위해 HTTP POST 메서드를 사용하는 경우 SOAP 요청-응답 메시지 교환 패턴 이라는 패턴을 사용합니다 . HTTP GET의 경우 SOAP 응답 메시지 교환 패턴 이라는 패턴이 사용됩니다 . 이 두 패턴의 주요 차이점은 다음과 같습니다.
첫 번째 유형의 상호 작용은 HTTP POST 본문 내의 데이터를 사용하여 HTTP 요청이 대상인 URI로 식별되는 리소스의 상태를 만들거나 수정할 수 있도록합니다. 두 번째 유형의 상호 작용 패턴은 HTTP GET 요청을 사용하여 어떤 식 으로든 상태를 변경하지 않고 리소스의 표현을 얻을 수있는 기능을 제공합니다. 첫 번째 경우, SOAP 관련 측면은 HTTP POST 요청의 본문이 다음을 준수하는 데 필요한 애플리케이션 별 처리의 일부로 처리되어야하는 SOAP 메시지라는 것입니다 (SOAP 처리 모델에 따라). POST 의미론. 두 번째 경우에 예상되는 일반적인 사용은 요청되는 리소스의 표현이 HTML이나 실제로 일반 XML 문서가 아니라 SOAP 메시지로 반환되는 경우입니다. 그건,
따라서 GET 및 POST 메서드를 모두 사용할 수 있습니다. 다른 것은 실제로 대부분 POST 방법이 사용된다는 것입니다.
나쁜 점은 RESTful 서비스를 SOAP 서비스와 비교할 때 REST의 장점으로 SOAP에서 사용할 수없는 캐싱을 가져 오는 것입니다. SOAP는 POST 만 사용하기 때문입니다. 이것은 완전히 잘못된 것입니다.
참고 URL : https://stackoverflow.com/questions/26339317/do-soap-web-services-support-only-post-http-method
'Program Tip' 카테고리의 다른 글
Dapper.Rainbow VS Dapper.Contrib (0) | 2020.11.21 |
---|---|
Django 로그 및 오류 위치 (0) | 2020.11.21 |
AzureWebJobsDashboard 연결 문자열 정보는 어디서 얻을 수 있나요? (0) | 2020.11.21 |
HashSet (0) | 2020.11.21 |
도커 진입 점 스크립트에 대해 set -e 및 exec“$ @”의 기능은 무엇입니까? (0) | 2020.11.21 |