ホームページ  >  記事  >  ウェブフロントエンド  >  HTTPステータスコードを設定する正しい方法

HTTPステータスコードを設定する正しい方法

WBOY
WBOYオリジナル
2024-01-05 08:32:34966ブラウズ

HTTPステータスコードを設定する正しい方法

HTTP ステータス コードを正しく設定するには、特定のコード例が必要です

HTTP ステータス コードは、ネットワーク通信中にサーバーからクライアントに返されるステータス表現です。現在のリクエストの処理ステータスをクライアントに通知します。 Web アプリケーションを設計および開発する場合、HTTP ステータス コードを正しく設定することが特に重要です。これは、リクエストと応答をより適切に処理し、ユーザーに優れたユーザー エクスペリエンスを提供するのに役立ちます。この記事では、コード例を示しながら、一般的な HTTP ステータス コードとそれらを正しく設定する方法を紹介します。

  1. 1xx 情報

1xx ステータス コードは、サーバーがクライアントのリクエストを受信したが、まだ処理中であることを示します。ほとんどの場合、これらのステータス コードは開発者によって一般的に使用されません。

  1. 2xx 成功クラス (成功)

2xx ステータス コードは、サーバーがクライアントの要求を正常に受信して処理したことを示します。一般的に使用される 2xx ステータス コードとその用途は次のとおりです。

  • 200 OK: リクエストは成功しました。サーバーはリクエストを正常に処理し、対応する情報を返しました。これは通常、最も一般的なステータス コードの 1 つです。
  • 201 作成されました: リクエストは成功し、作成されました。通常、新しいユーザーの追加や新しい記事の作成など、リソースを作成するリクエストに使用されます。

サンプル コード:

@app.route('/users', methods=['POST'])
def create_user():
    # 创建用户逻辑
    # ...
    return jsonify({'message': 'User created'}), 201
  • 204 コンテンツがありません: リクエストは成功しましたが、コンテンツがありません。リソースの削除など、特定のデータを返す必要のないリクエストを処理するために使用されます。

サンプル コード:

@app.route('/users/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):
    # 删除用户逻辑
    # ...
    return '', 204
  1. 3xx リダイレクト クラス (リダイレクト)

3xx ステータス コードは、クライアントからのさらなる操作が必要であることを示します。完全に質問してください。一般的に使用される 3xx ステータス コードとその用途は次のとおりです。

  • 301 Moved Permanently: 永続的なリダイレクト。要求されたリソースが新しい URL に移動されたため、新しい URL を使用してアクセスする必要があることを示します。

サンプルコード:

@app.route('/old-url')
def old_url():
    return redirect('/new-url', code=301)
  • 302 Found (または 307 Temporary Redirect): 一時的なリダイレクト。要求されたリソースが一時的に新しい URL に移動されましたが、クライアントは元の要求メソッド (GET/POST) を維持する必要があることを示します。

サンプル コード:

@app.route('/old-url')
def old_url():
    return redirect('/new-url', code=302)
  1. 4xx クライアント エラー クラス (クライアント エラー)

4xx ステータス コードは、クライアントのリクエストが正しくないことを示します。サーバーはそれを処理できません。一般的に使用される 4xx ステータス コードとその用途は次のとおりです。

  • 400 Bad Request: リクエストが正しくありません。通常、リクエストパラメータが欠落しているか、形式が正しくない場合に使用されます。

サンプルコード:

@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 権限なし: 権限がありません。リクエストには認証が必要ですが、クライアントが有効な資格情報を提供しなかったことを示します。

サンプル コード:

@app.route('/admin')
@auth_required
def admin_page():
    # ...
  • 404 Not Found: リソースが存在しません。要求された URL アドレスに対応するリソースがないことを示します。

サンプル コード:

@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 サーバー エラー クラス (サーバー エラー)

5xx ステータス コードは、サーバーの実行中にエラーが発生したことを示します。リクエストの処理中にエラーが発生しました。一般的に使用される 5xx ステータス コードとその用途は次のとおりです。

  • 500 Internal Server Error: サーバーの内部エラー。サーバーがリクエストを処理中に不明なエラーが発生したことを示します。

サンプル コード:

@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

HTTP ステータス コードを正しく設定することで、リクエストと応答をより適切に処理し、ユーザーに優れたユーザー エクスペリエンスを提供できます。実際の開発では、特定のビジネス ニーズと API 設計仕様に基づいて、適切な HTTP ステータス コードを選択することが非常に重要です。同時に、コードの可読性と保守性を向上させるために、数値を直接使用するのではなく、Web フレームワークによって提供されるステータス コード定数を使用することをお勧めします。

以上がHTTPステータスコードを設定する正しい方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。