Parce que j'ai vu quelqu'un poser des questions sur la comparaison entre Nusoap et PHPRPC, afin que tout le monde comprenne plus clairement la relation entre Nusoap et PHPRPC, je ferai ici une brève introduction explicative. Le contenu écrit n'est pas exhaustif. Je n'ai écrit que quelques points principaux. . comparaison. Pour des comparaisons plus détaillées, vous pouvez les comparer vous-même pendant l'utilisation.
Nusoap est une implémentation de service Web pour PHP. La version PHP de l'implémentation du protocole PHPRPC est au même niveau que Nusoap. Cependant, le protocole PHPRPC est au même niveau que le service Web, comparons donc l'implémentation Nusoap avec la version PHP de l'implémentation du protocole PHPRPC, et comparons le service Web avec le protocole PHPRPC.
Tout d’abord, comparaison des protocoles :
similarités :
Les deux protocoles sont basés sur le protocole HTTP et peuvent utiliser la méthode POST pour soumettre des requêtes.
Principales différences :
(1) Requête : bien que WebService prenne également en charge la méthode GET pour soumettre des requêtes, elle n'est généralement pas couramment utilisée. La méthode couramment utilisée consiste à utiliser la méthode POST pour soumettre des requêtes au format SOAP. PHPRPC prend en charge les méthodes GET et POST pour soumettre des requêtes. Le format de requête est le format application/x-www-form-urlencoded le plus courant, qui est plus facile à implémenter dans un client de navigateur.
(2) Réponse : la réponse renvoyée par WebService est constituée de données au format SOAP. Pour le client navigateur, elle ne peut être traitée qu'à l'aide de XMLHttpRequest. Étant donné que XMLHttpRequest reçoit des restrictions sur les appels inter-domaines, le client navigateur de WebService ne peut pas le faire. services d'appel sur tous les domaines. Le format de réponse de PHPRPC est un texte brut compatible avec le format JavaScript, de sorte que la réponse renvoyée peut être directement exécutée sous forme de script. Par conséquent, le client de navigateur peut être implémenté de manière totalement indépendante de XMLHttpRequest. Un client de navigateur peut être implémenté en utilisant du JavaScript pur et en parcourant. Le navigateur permet le téléchargement inter-domaines et l'exécution de scripts, de sorte que le client navigateur de PHPRPC peut effectuer des appels inter-domaines.
(3) Format d'échange de données : Le format SOAP utilisé dans WebService est défini en fonction du langage XML. Le langage XML est du texte brut, car certains espaces (espaces, tabulations, retours chariot ou sauts de ligne) n'affectent pas le contenu qu'il représente, donc son format peut être organisé dans un format facile à lire pour les humains. Cependant, en raison de cette flexibilité, il est inefficace pour le traitement automatique. Le format d'échange de données de PHPRPC est le format de sérialisation PHP. Le format de sérialisation PHP peut être considéré comme du texte semi-plain, car son format de représentation des données est également exprimé de manière lisible par l'homme, mais pas plus que Blank, ce qui offre un bon support pour la machine. lisibilité.Il fournit non seulement des délimiteurs efficaces, mais fournit également des informations telles que la longueur de la chaîne, le nombre d'éléments du tableau, le nombre de membres de l'objet, etc., il est donc plus propice au traitement à grande vitesse par la machine. Parce que le protocole est essentiellement un langage machine-machine, et non un langage de programmation informatique, le langage de programmation informatique est un langage homme-machine. Il devrait accorder plus d'attention à la lisibilité humaine, tandis que le langage machine-machine devrait accorder davantage d'attention à la lisibilité machine. Par conséquent, on peut dire que le format de sérialisation PHP atteint un très bon équilibre entre lisibilité humaine et lisibilité machine.
(4) Occupation de la bande passante : WebService est un service Web lourd, son format de données est long et long et il occupe une grande quantité de bande passante réseau. PHPRPC est un service Web léger avec un format de données simple et compact et une faible utilisation de la bande passante réseau. Notez que les poids lourds et légers mentionnés ici font référence à l'occupation de la bande passante du réseau, et non à sa capacité à fournir des services. Les capacités de service fournies par PHPRPC ne sont en aucun cas inférieures à WebService, et même meilleures que WebService dans de nombreux endroits. Par exemple : WebService est comme le modèle de réseau à 7 couches d'OSI. Il semble parfait, mais il est complexe à mettre en œuvre et difficile à utiliser. PHPRPC est comme un modèle de réseau simplifié à 5 couches de TCP/IP, efficace et facile à utiliser.
Deuxièmement, comparons les versions Nusoap et PHP de l’implémentation du protocole PHPRPC :
La similitude est que les deux sont utilisés en PHP.
La différence réside principalement dans la facilité d'utilisation. Bien que Nusoap soit plutôt bon en termes de facilité d'utilisation, il est loin derrière la version PHP de l'implémentation du protocole PHPRPC. Par exemple, les fonctions de service publiées par Nusoap doivent être écrites séparément et ne peuvent pas être écrites de la même manière que les fonctions locales, sans parler des fonctions étendues intégrées à PHP. Cependant, les fonctions publiées par PHPRPC sont exactement les mêmes que les fonctions locales. , même en incluant les fonctions intégrées PHP. Les fonctions étendues peuvent également être publiées directement. Pour utiliser Nusoap pour publier un wsdl, vous devez définir le nom, le nom du paramètre, le type de paramètre, le type de valeur de retour, l'espace de noms, l'action, le style, le document, etc. de chaque processus publié. Pour publier un service PHPRPC, il suffit de communiquer au serveur le nom de la fonction (qui peut aussi être une méthode objet ou une méthode classe) à publier (un alias peut également être donné). Il n'est pas nécessaire de fournir des informations telles que les noms de paramètres, les types de paramètres, les types de valeurs de retour, etc. Par conséquent, pour les paramètres de longueur variable, les paramètres de type variable sont mieux pris en charge. Il est également pratique d'utiliser le client PHPRPC. Vous pouvez appeler directement la fonction distante en utilisant la méthode du client PHPRPC local nommé avec le nom de la fonction distante, tandis que Nusoap est relativement plus gênant. Un autre grand avantage de PHPRPC est qu'il vous permet de passer facilement des appels à distance via une transmission cryptée sécurisée, ce que Nusoap ne peut pas faire.