Corriger le code d'état HTTP, lorsque la ressource est disponible, mais pas accessible en raison des autorisations
Je fais construire une bonne protocole de Covoiturage Dynamique des applications, pour mon Ordinateur Sciences de la thèse.
Dans le Protocole j'ai aussi officiellement spécifier le code de statut HTTP pour chaque opération. J'ai eu cette "protection" problème. Supposons que le texte suivant:
GET /api/persons/angela/location
Récupère la position actuelle de l'utilisateur "angela".
Il est évident que tout le monde devrait être en mesure d'obtenir un résultat. Seule angela lui-même et un éventuel pilote qui va chercher sa devrait être en mesure de le savoir.
Je ne peux pas décider de renvoyer une 404 not Found ou un 401 Interdit ici.
Un indice? Quelle serait la meilleure et pourquoi?
- Une erreur 404 est complètement incorrect ici car il indique que l'enregistrement n'existe pas du tout.
Vous devez vous connecter pour publier un commentaire.
Selon Wikipédia (et La RFC 2616), 401 code est utilisé lorsqu'une page existe mais nécessite une authentification; 403 est une page où l'authentification ne changera rien. (Dans la nature, 403 signifie généralement les autorisations d'accès sont quelque chose de mal, alors qu'un 401 invite l'utilisateur à spécifier un nom d'utilisateur/mot de passe). 404 est pour le cas où le document n'existe tout simplement pas.
Dans votre cas, il semble que 401 est la plus appropriée de code, car il est un moyen d'authentifier les utilisateurs qui ont accès à la page.
Certainement PAS 404. 404 est tout simplement Pas Trouvé.
401 accès est refusé.
403 est interdit.
Je voudrais aller avec 401
Pour moi, je vais utiliser 400 Bad request.
Parce que ma candidature ne sera pas aller unaccessable ressources par programme.
Filtrage de l'autorisation de l'utilisateur et de cacher unaccessable ressources est une bonne expérience utilisateur, à mon avis.
Si mon serveur eu unaccessable demande ce qui signifie que certaines personne essaie de faire quelque chose.
C'est pourquoi j'ai choisi de 400 Bad request dans mes applications.
Si l'autorisation informations d'identification sont fournies dans la demande et le demandeur n'a pas les permissions pour accéder à cette ressource, alors vous devriez retourner 403.
Si aucune autorisation n'informations d'identification sont fournies dans la requête, alors vous devez retourner 401.