2009-09-22 6 views
0

Désolé si la question est ambiguë, je ne savais pas comment le dire succinctement.Existe-t-il un moyen fiable de créer une erreur sur les requêtes Web?

De toute façon, voici l'affaire. Je crée une extension de navigateur avec un gestionnaire de téléchargement pour effectuer un traitement des envois POST. Donc avant de transmettre la requête POST, j'envoie une requête POST intermédiaire à la même URL avec des en-têtes spéciaux qui renvoient des informations sur ce que je dois faire aux données POST d'origine avant de l'envoyer. Les en-têtes sont traités par un filtre ISAPI et la requête intermédiaire n'est jamais vue par l'application Web sous-jacente. Ensuite, l'extension du navigateur effectuera un traitement sur la demande POST d'origine et l'enverra.

Tout cela fonctionne très bien. Sauf que cela ne fonctionnera que si vous êtes connecté à un serveur sur lequel mon filtre ISAPI est installé et que le comportement n'est pas défini sur les autres serveurs. Donc, je cherche des idées pour déterminer si un serveur supporte la fonctionnalité en ajoutant éventuellement quelque chose à la requête intermédiaire qui déclenchera une erreur prévisible sur le serveur web.

J'ai essayé de définir quelque chose dans l'en-tête "Expect" de la requête, mais cela ne semble pas fiable; beaucoup d'applications Web vont simplement ignorer cela.

J'ai essayé de changer l'en-tête "Accept" pour quelque chose d'étrange, mais il est également ignoré. Une chose que j'ai essayée que semble semble fonctionner est d'utiliser une méthode de requête spéciale comme MYPOST, qui semble aboutir à une erreur 403, 405 ou 501 sur la plupart des serveurs avec lesquels j'ai essayé . Mais j'ai le sentiment que cela causera des problèmes avec certains proxies, et peut juste être interprété comme un GET sur certains serveurs. Pas sûr cependant.

D'autres idées?

Répondre

1

Si votre DLL ISAPI peut être configurée pour être appelée pour des URL spécifiques, cela vous donnera une erreur 404 fiable sur les serveurs sur lesquels la DLL n'est pas installée.

+0

C'est une autre option que j'ai envisagée. Certaines extensions de serveur gèrent des URL arbitraires d'une manière autre que la génération de 404. Cependant, c'est quelque chose qui au moins ne devrait pas générer d'effets secondaires sur un serveur non supporté, et je peux juste vérifier l'en-tête de réponse pour notre signature de serveur s'il ne génère pas un 404. Donc c'est peut-être la meilleure option. – Gerald

Questions connexes