web-dev-qa-db-fra.com

Quelle est la différence entre doGet () et doPost () en termes de flux?

la différence en terme de flux, je sais que doGet () est le pré-traitement et dopost est le post-traitement, mais qu'est-ce que c'est?

9
shamil khairi

la différence en terme de flux, je sais que doGet () est le pré-traitement et dopost est le post-traitement, mais qu'est-ce que c'est?

En fait, les méthodes n'ont rien à voir avec le "pré-traitement" et le "post-traitement".

Pour comprendre à quoi servent les méthodes, vous avez besoin d'une compréhension de base du protocole HTTP.

HTTP est un protocole de demande-réponse: le client (par exemple un navigateur Web) envoie une demande, et le serveur (par exemple un serveur Web) répond par une réponse. Chaque demande se compose d'une "ligne de demande", d'une série de lignes "d'en-tête" et éventuellement d'un "corps". Une ligne de demande typique ressemble à ceci:

  GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1

Les trois parties de cette ligne sont:

En fait, la spécification HTTP définit 8 méthodes de requête HTTP standard (GET, PUT, POST, DELETE, HEAD, OPTIONS, TRACE & CONNECT), chacune ayant une signification différente. (D'autres méthodes sont définies par d'autres spécifications.)

Les méthodes doGet et doPost dans l'API Servlet sont des méthodes de traitement des requêtes HTTP GET et POST respectivement. En fait, il existe d'autres " méthodes doXxxx "correspondant aux autres méthodes HTTP standard ... à l'exception de CONNECT. (La sémantique de CONNECT ne s'applique pas à une servlet ...)

Pour plus d'informations, reportez-vous à la spécification HTTP 1.1 et à la HttpServletjavadoc .

16
Stephen C

Ce lien Détail

doGet() et doPost() sont des requêtes HTTP gérées par les classes de servlet.

Dans doGet (), les paramètres sont ajoutés à l'URL et envoyés avec les informations d'en-tête. Cela ne se produit pas en cas de doPost (). Dans doPost (), les paramètres sont envoyés séparément. Étant donné que la plupart des serveurs Web ne prennent en charge qu'une quantité limitée d'informations à attacher aux en-têtes, la taille de cet en-tête ne doit pas dépasser 1024 octets. doPost () n'a pas cette contrainte. Les programmeurs ont généralement du mal à choisir entre doGet () et doPost ().

doGet () doit être utilisé lorsqu'une petite quantité de données et des données insensibles comme une requête doivent être envoyées en tant que demande. doPost () doit être utilisé lorsqu'une quantité relativement importante de données sensibles doit être envoyée. Des exemples sont l'envoi de données après avoir rempli un formulaire ou l'envoi d'un identifiant de connexion et d'un mot de passe.

10
Benjamin