Maison  >  Article  >  interface Web  >  Manière correcte de définir le code d'état HTTP

Manière correcte de définir le code d'état HTTP

WBOY
WBOYoriginal
2024-01-05 08:32:341121parcourir

Manière correcte de définir le code détat HTTP

Comment définir correctement le code d'état HTTP nécessite des exemples de code spécifiques

Le code d'état HTTP est une représentation d'état renvoyée par le serveur au client lors de la communication réseau. Il est utilisé pour informer le client de l'état de traitement du courant. demande. Lors de la conception et du développement d'applications Web, il est particulièrement important de définir correctement le code d'état HTTP. Cela peut nous aider à mieux gérer les demandes et les réponses et à offrir aux utilisateurs une meilleure expérience utilisateur. Cet article présentera les codes d'état HTTP courants et comment les définir correctement, tout en fournissant des exemples de code.

  1. 1xx Informatif

Le code d'état 1xx indique que le serveur a reçu la demande du client mais est toujours en train de la traiter. Dans la plupart des cas, ces codes d'état ne sont pas couramment utilisés par les développeurs.

  1. 2xx Success

Le code d'état 2xx indique que le serveur a reçu et traité avec succès la demande du client. Les codes d'état 2xx couramment utilisés et leurs utilisations sont les suivants :

  • 200 OK : la demande a réussi. Le serveur a traité avec succès la demande et a renvoyé les informations correspondantes. Il s'agit généralement de l'un des codes d'état les plus courants.
  • 201 Créé : La demande a réussi et a été créée. Généralement utilisé pour les demandes de création de ressources, telles que l'ajout de nouveaux utilisateurs ou la création de nouveaux articles.

Exemple de code :

@app.route('/users', methods=['POST'])
def create_user():
    # 创建用户逻辑
    # ...
    return jsonify({'message': 'User created'}), 201
  • 204 Aucun contenu : la demande a abouti mais il n'y a pas de contenu. Utilisé pour gérer les requêtes qui n'ont pas besoin de renvoyer des données spécifiques, telles que la suppression de ressources.

Exemple de code :

@app.route('/users/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):
    # 删除用户逻辑
    # ...
    return '', 204
  1. 3xx Classe de redirection (Redirection)

Le code d'état 3xx indique que d'autres opérations de la part du client sont nécessaires pour compléter la demande. Les codes d'état 3xx couramment utilisés et leurs utilisations sont les suivants :

  • 301 Déplacé de façon permanente : redirection permanente. Indique que la ressource demandée a été déplacée vers une nouvelle URL et doit être accessible à l'aide de la nouvelle URL.

Exemple de code :

@app.route('/old-url')
def old_url():
    return redirect('/new-url', code=301)
  • 302 trouvé (ou 307 Redirection temporaire) : Redirection temporaire. Indique que la ressource demandée a été temporairement déplacée vers une nouvelle URL, mais que le client doit toujours conserver la méthode de demande d'origine (GET/POST).

Exemple de code :

@app.route('/old-url')
def old_url():
    return redirect('/new-url', code=302)
  1. Erreur client 4xx

Le code d'état 4xx indique que la demande du client est incorrecte et que le serveur ne peut pas la traiter. Les codes d'état 4xx couramment utilisés et leurs utilisations sont les suivants :

  • 400 Mauvaise demande : la demande est incorrecte. Généralement utilisé lorsque les paramètres de la requête sont manquants ou mal formatés.

Exemple de code :

@app.route('/users', methods=['POST'])
def create_user():
    username = request.form.get('username')
    if not username:
        return jsonify({'error': 'Username is required'}), 400
    # ...
    return jsonify({'message': 'User created'}), 201
  • 401 Non autorisé : Non autorisé. Indique que la demande nécessite une authentification, mais que le client n'a pas fourni d'informations d'identification valides.

Exemple de code :

@app.route('/admin')
@auth_required
def admin_page():
    # ...
  • 404 Not Found : La ressource n'existe pas. Indique que l'adresse URL demandée n'a pas de ressource correspondante.

Exemple de code :

@app.route('/users/<int:user_id>')
def get_user(user_id):
    user = User.query.get(user_id)
    if not user:
        return jsonify({'error': 'User not found'}), 404
    return jsonify({
        'id': user.id,
        'username': user.username
    })
  1. Erreur du serveur 5xx

Le code d'état 5xx indique qu'une erreur s'est produite pendant que le serveur traitait la demande. Les codes d'état 5xx couramment utilisés et leurs utilisations sont les suivants :

  • Erreur interne du serveur 500 : erreur interne du serveur. Indique qu'une erreur inconnue s'est produite pendant que le serveur traitait la demande.

Exemple de code :

@app.route('/users')
def get_users():
    try:
        users = User.query.all()
        return jsonify([user.to_dict() for user in users])
    except Exception as e:
        return jsonify({'error': 'Internal Server Error'}), 500

En définissant correctement les codes d'état HTTP, nous pouvons mieux gérer les demandes et les réponses et offrir aux utilisateurs une meilleure expérience utilisateur. Dans le développement réel, il est très important de choisir le code d'état HTTP approprié en fonction des besoins spécifiques de l'entreprise et des spécifications de conception de l'API. Dans le même temps, afin d'améliorer la lisibilité et la maintenabilité du code, il est recommandé d'utiliser les constantes de code d'état fournies par le framework Web au lieu d'utiliser directement des nombres.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn