SOAP utilise WSDL pour la communication entre le consommateur et le fournisseur, alors que REST utilise simplement XML ou JSON pour envoyer et recevoir des données.
WSDL définit le contrat entre le client et le service et est statique par nature. Dans le cas de REST, le contrat est quelque peu compliqué et est défini par HTTP, URI, Media Formats et Application Specific Coordination Protocol. Il est très dynamique, contrairement à WSDL.
SOAP ne renvoie pas de résultat lisible par l'homme, alors que REST est lisible avec un simple XML ou JSON.
Ce n'est pas vrai. Un simple XML ou JSON n'est pas du tout RESTful. Aucun d'entre eux ne définit de contrôles (c'est-à-dire des liens et des relations de liens, des informations sur les méthodes, des informations sur l'encodage, etc.), ce qui est contraire à REST dans la mesure où les messages doivent être autonomes et coordonner l'interaction entre l'agent/client et le service.
Grâce aux liens et aux relations sémantiques, les clients devraient être en mesure de déterminer la prochaine étape d'interaction, de suivre ces liens et de poursuivre la communication avec le service.
Il n'est pas nécessaire que les messages soient lisibles par l'homme, il est possible d'utiliser un format cryptique et de construire des applications REST parfaitement valides. Il importe peu que le message soit lisible par l'homme ou non.
Ainsi, les formats simples XML(application/xml) ou JSON(application/json) ne sont pas suffisants pour construire des applications REST. Il est toujours raisonnable d'utiliser un sous-ensemble de ces types de médias génériques qui ont une forte signification sémantique et offrent suffisamment d'informations de contrôle (liens, etc.) pour coordonner les interactions entre le client et le serveur.
REST ne fonctionne que sur HTTP
Ce n'est pas vrai, HTTP est le plus largement utilisé et lorsque nous parlons de services web REST, nous supposons simplement HTTP. HTTP définit une interface avec ses méthodes (GET, POST, PUT, DELETE, PATCH, etc.) et divers en-têtes qui peuvent être utilisés de manière uniforme pour interagir avec les ressources. Cette uniformité peut également être obtenue avec d'autres protocoles.
P.S. Une explication très simple, mais très intéressante de REST : http://www.looah.com/source/view/2284