Quand à l'affichage “Enregistrement Non Trouvé” de la Page ou de retour HTTP 404?
Je suis sûr que les gens ont beaucoup d'opinions différentes sur ce.
Je veux savoir comment d'autres développeurs pensent à propos de la manipulation de ce scénario.
Pré-Condition
L'application web/service nécessite une authentification (c'est à dire, l'utilisateur doit être connecté).
Il n'est pas accessible au public.
Web Scénario D'Application
Exemple d'URL: ~/PurchaseOrder/View/1234
- Bon de Commande document n'existe PAS dans la base de données.
- Bon de Commande d'enregistrement, mais l'utilisateur n'est PAS autorisé à vue en raison de certaines exigences de l'entreprise.
Comment se fait le choix entre les deux options suivantes:
- D'affichage d'Achat Afin de ne Pas Trouvé de page web avec HTTP 200.
- Définit le statut de la réponse HTTP 404 Non Trouvé et de rediriger le générique de la page d'erreur 404.
API de Service Web du Scénario
Permet de dire que l'Achat d'enregistrement des commandes sont accessibles à partir d'un service web dans un format JSON.
De toute évidence, l'API serait de retour HTTP 404 si l'enregistrement n'existe pas.
Mais comment doit-il réagir lorsque l'utilisateur n'a pas l'autorisation d'afficher ce bon de Commande d'enregistrement? Définit le code de réponse à 404 et retourne un message d'erreur en JSON???
Merci!
OriginalL'auteur stun | 2013-07-26
Vous devez vous connecter pour publier un commentaire.
Pour un service web REST API, retour 404 si l'enregistrement n'est pas trouvé.
Si l'utilisateur ne dispose pas d'autorisation, de retour 403 "Interdit" si vous voulez vous faire connaître que l'enregistrement existe, mais l'utilisateur n'est pas autorisé. Retour 404 si vous ne souhaitez PAS divulguer le fait que le dossier existe lorsque l'utilisateur n'est pas autorisé à la voir.
De la HTTP spec:
Pour l'application web scénario, il est probablement plus techniquement correcte pour retourner une erreur 404 (ou 403) avec un message d'erreur de page dans le corps de la réponse en cas d'erreur, mais le retour de 200 pourrait entraîner une meilleure expérience de l'utilisateur, en fonction de ce que les navigateurs de votre auditoire. (J'ai entendu parler de problèmes avec certains navigateurs plus anciens ignorant la page d'erreur personnalisée avec une 4xx erreur et au lieu de l'affichage de leur propre page d'erreur, alors qu'ils seront toujours afficher le contenu d'une réponse de 200. Les navigateurs modernes ne devrait pas avoir ce problème.)
OriginalL'auteur Brian Rogers