2014-10-13 17 views

risposta

51

Ho sempre utilizzato il POST ma secondo lo W3C standard, SOAP supporta entrambi i metodi POST e GET.

Modifica: dopo alcune ricerche, sembra che non sia completamente vero, come potete vedere here. È teoricamente possibile utilizzare GET perché POST e GET sono metodi di protocollo di trasporto HTTP e SOAP può essere utilizzato su HTTP.

Ma come sapete, GET include la richiesta nella stringa di query. Le richieste SOAP (messaggi XML) sono in genere troppo complesse e dettagliate da includere nella stringa di query, quindi quasi tutte le implementazioni (ad esempio JAX-WS) supportano solo POST.

+0

Ottima risposta! Grazie mille per la ricerca. – evgeniy44

8

Il thread ha tre anni ma penso che ci saranno ancora molte persone che daranno questa stessa domanda a se stesse e troveranno una risposta sbagliata nel web. La risposta alla domanda è no, si può usare anche il metodo GET.

In base alle specifiche SOAP, che possono essere trovate qui: https://www.w3.org/TR/2007/REC-soap12-part0-20070427/#transport entrambi i metodi GET e POST possono essere utilizzati per scambiare messaggi SOAP su http. L'uso del metodo HTTP POST per il trasporto di messaggi SOAP nei corpi della richiesta HTTP utilizza un modello denominato modello di scambio di messaggi richiesta-risposta SOAP. Nel caso di HTTP GET viene utilizzato un modello chiamato modello di scambio di messaggi di risposta SOAP. La differenza principale di questi due modelli è:

il primo tipo di interazione consente l'utilizzo dei dati all'interno del corpo di un POST HTTP per creare o modificare lo stato di una risorsa identificata dal URI a cui l'HTTP la richiesta è destinata. Il secondo tipo di modello di interazione offre la possibilità di utilizzare una richiesta HTTP GET per ottenere una rappresentazione di una risorsa senza alterarne lo stato in alcun modo. Nel primo caso, l'aspetto specifico di SOAP è che il corpo della richiesta HTTP POST è un messaggio SOAP che deve essere elaborato (secondo il modello di elaborazione SOAP) come parte dell'elaborazione specifica dell'applicazione richiesta per conformarsi a la semantica del POST. Nel secondo caso, l'utilizzo tipico previsto è il caso in cui la rappresentazione della risorsa richiesta viene restituita non come HTML, o in effetti un documento XML generico, ma come messaggio SOAP. Cioè, l'intestazione del tipo di contenuto HTTP del messaggio di risposta lo identifica come di tipo multimediale "application/soap + xml"

Quindi è possibile utilizzare entrambi i metodi GET e POST. L'altro pensiero è che in pratica viene utilizzato principalmente il metodo POST.

Il malumore è che quando si confrontano i servizi RESTfull con i servizi SOAP, come vantaggio di REST le persone stanno portando il caching, che non è disponibile in SOAP, perché SOAP usa solo POST. Questo è totalmente sbagliato.

Problemi correlati