Heim  >  Artikel  >  Web-Frontend  >  Richtige Vorgehensweise zum Festlegen des HTTP-Statuscodes

Richtige Vorgehensweise zum Festlegen des HTTP-Statuscodes

WBOY
WBOYOriginal
2024-01-05 08:32:341101Durchsuche

Richtige Vorgehensweise zum Festlegen des HTTP-Statuscodes

Für die korrekte Einstellung des HTTP-Statuscodes sind bestimmte Codebeispiele erforderlich.

HTTP-Statuscode ist eine Statusdarstellung, die der Server während der Netzwerkkommunikation an den Client zurückgibt. Er wird verwendet, um den Client über den aktuellen Verarbeitungsstatus zu informieren Anfrage. Beim Entwerfen und Entwickeln von Webanwendungen ist es besonders wichtig, den HTTP-Statuscode korrekt festzulegen. Dies kann uns helfen, Anfragen und Antworten besser zu verarbeiten und Benutzern ein besseres Benutzererlebnis zu bieten. In diesem Artikel werden gängige HTTP-Statuscodes und deren korrekte Einstellung vorgestellt und Codebeispiele bereitgestellt.

  1. 1xx Informational

1xx-Statuscode zeigt an, dass der Server die Anfrage des Clients empfangen hat, sie aber noch verarbeitet. In den meisten Fällen werden diese Statuscodes von Entwicklern nicht häufig verwendet.

  1. 2xx Erfolg

2xx-Statuscode zeigt an, dass der Server die Anfrage des Clients erfolgreich empfangen und verarbeitet hat. Im Folgenden werden häufig verwendete 2xx-Statuscodes und ihre Verwendung aufgeführt:

  • 200 OK: Die Anfrage war erfolgreich. Der Server hat die Anfrage erfolgreich verarbeitet und die entsprechenden Informationen zurückgegeben. Dies ist normalerweise einer der häufigsten Statuscodes.
  • 201 Erstellt: Die Anfrage war erfolgreich und wurde erstellt. Wird normalerweise für Anfragen zum Erstellen von Ressourcen verwendet, z. B. zum Hinzufügen neuer Benutzer oder zum Erstellen neuer Artikel.

Beispielcode:

@app.route('/users', methods=['POST'])
def create_user():
    # 创建用户逻辑
    # ...
    return jsonify({'message': 'User created'}), 201
  • 204 Kein Inhalt: Die Anfrage war erfolgreich, aber es ist kein Inhalt vorhanden. Wird zur Verarbeitung von Anforderungen verwendet, die keine spezifischen Daten zurückgeben müssen, z. B. das Löschen von Ressourcen.

Beispielcode:

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

3xx-Statuscode zeigt an, dass weitere Vorgänge vom Client erforderlich sind, um die Anfrage abzuschließen. Im Folgenden werden häufig verwendete 3xx-Statuscodes und ihre Verwendung aufgeführt:

  • 301 Permanent verschoben: Permanente Weiterleitung. Zeigt an, dass die angeforderte Ressource auf eine neue URL verschoben wurde und über die neue URL darauf zugegriffen werden sollte.

Beispielcode:

@app.route('/old-url')
def old_url():
    return redirect('/new-url', code=301)
  • 302 gefunden (oder 307 temporäre Weiterleitung): Temporäre Weiterleitung. Zeigt an, dass die angeforderte Ressource vorübergehend auf eine neue URL verschoben wurde, der Client jedoch weiterhin die ursprüngliche Anforderungsmethode (GET/POST) beibehalten sollte.

Beispielcode:

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

4xx-Statuscode zeigt an, dass die Anfrage des Clients falsch ist und der Server sie nicht verarbeiten kann. Im Folgenden werden häufig verwendete 4xx-Statuscodes und ihre Verwendung aufgeführt:

  • 400 Ungültige Anfrage: Die Anfrage ist falsch. Wird normalerweise verwendet, wenn Anforderungsparameter fehlen oder falsch formatiert sind.

Beispielcode:

@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 Nicht autorisiert: Nicht autorisiert. Zeigt an, dass die Anfrage eine Authentifizierung erfordert, der Client jedoch keine gültigen Anmeldeinformationen bereitgestellt hat.

Beispielcode:

@app.route('/admin')
@auth_required
def admin_page():
    # ...
  • 404 Nicht gefunden: Die Ressource existiert nicht. Zeigt an, dass die angeforderte URL-Adresse keine entsprechende Ressource hat.

Beispielcode:

@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. 5xx Serverfehler

5xx-Statuscode zeigt an, dass ein Fehler aufgetreten ist, während der Server die Anfrage verarbeitet hat. Im Folgenden werden häufig verwendete 5xx-Statuscodes und ihre Verwendung aufgeführt:

  • 500 Interner Serverfehler: Interner Serverfehler. Zeigt an, dass während der Verarbeitung der Anforderung durch den Server ein unbekannter Fehler aufgetreten ist.

Beispielcode:

@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

Durch die korrekte Einstellung von HTTP-Statuscodes können wir Anfragen und Antworten besser verarbeiten und Benutzern ein besseres Benutzererlebnis bieten. In der tatsächlichen Entwicklung ist es sehr wichtig, den geeigneten HTTP-Statuscode basierend auf spezifischen Geschäftsanforderungen und API-Designspezifikationen auszuwählen. Gleichzeitig wird zur Verbesserung der Lesbarkeit und Wartbarkeit des Codes empfohlen, die vom Webframework bereitgestellten Statuscodekonstanten zu verwenden, anstatt Zahlen direkt zu verwenden.

Das obige ist der detaillierte Inhalt vonRichtige Vorgehensweise zum Festlegen des HTTP-Statuscodes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

In Verbindung stehende Artikel

Mehr sehen