Est-ce une demande http toujours complet?

voix
1

Si une requête http est faite et que l'appelant abandonne la demande-t-il se rempli de toute façon? Par exemple, une requête asynchrone GET JavaScript pour enregistrer un clic bannière dans le DB puis redirigez. Est-ce que le script besoin d'attendre la réponse?

Créé 26/08/2009 à 23:47
source utilisateur
Dans d'autres langues...                            


5 réponses

voix
3

Quelle est l'importance de votre demande? Que faire si la base de données ne sont pas disponibles à ce moment-là? Que faire si le code côté serveur renvoie une exception?

Pour les demandes très critiques, vous devrez peut-être mettre en œuvre une sorte de mise en file d'un message qui est en mesure de tenir les données de demande jusqu'à ce qu'il soit entièrement traitée. Cela devient plus compliqué si vous faites affaire avec des grilles et des nuages ​​(vous ne pouvez pas la file d'attente le message sur un seul noeud, puisque le noeud peut potentiellement avoir une défaillance matérielle). Mais ceci est un cas extrême, où vous vous retrouvez avec des serveurs de file d'attente dédiés.

Créé 27/08/2009 à 00:06
source utilisateur

voix
2

Pour la plupart des cas, une fois que la demande est reçue par le serveur, il ne sera pas arrêter le traitement si le client cesse d'écouter.

Cependant, le serveur peut toujours échouer lors de l'entretien de la demande, il est donc probablement pas une bonne idée de supposer qu'il a terminé.

Créé 26/08/2009 à 23:54
source utilisateur

voix
2

Le client ne transmet aucune notification au serveur qu'il annule la demande.

PHP ne sait pas si le client est déconnecté jusqu'à ce qu'il tente d'envoyer le client des données (par exemple., Un unbuffered echo()appel), donc si votre script ne retourne pas de données à l'utilisateur, il sera pleinement exécuter. Si elle ne retourne les données qu'il peut échouer pendant l'opération , mais cela peut être changé avec ignore_user_abort()) Si vous utilisez un environnement différent, vous devrez explorer la documentation.

Créé 26/08/2009 à 23:54
source utilisateur

voix
1

Vous ne devez pas attendre la réponse pour que la demande d'atteindre le serveur. Le serveur peut vérifier si quelqu'un est toujours à l'écoute pendant le traitement de la demande, mais le traitement de la demande commencera même si Noone est à l'écoute de la réponse (à moins qu'il y avait une erreur sur le chemin, bien sûr).

Si vous voulez être sûr que la demande a été vraiment traitée, vous devez attendre la réponse, mais pas nécessaire à la demande de passer par le serveur.

Créé 27/08/2009 à 00:16
source utilisateur

voix
1

Vous devez attendre pour qu'il soit en sécurité. Vous ne savez jamais quand le serveur va se déplacer dans le traitement de votre demande (si elle est habituellement dans quelques centaines de millisecondes ou moins), de sorte que vous ne saurez pas si quelque chose a expiré, a échoué, ou si vous allez recevoir un autre réponse que prévu à moins que vous attendez.

Créé 26/08/2009 à 23:51
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more