Home  >  Article  >  Web Front-end  >  Correct way to set HTTP status code

Correct way to set HTTP status code

WBOY
WBOYOriginal
2024-01-05 08:32:341114browse

Correct way to set HTTP status code

How to correctly set the HTTP status code requires specific code examples

HTTP status code is a status representation returned by the server to the client during network communication. It Used to inform the client of the processing status of the current request. When designing and developing web applications, it is particularly important to correctly set the HTTP status code. It can help us better handle requests and responses, and provide users with a better user experience. This article will introduce common HTTP status codes and how to set them correctly, while providing code examples.

  1. 1xx Informational

1xx status code indicates that the server has received the client's request but is still processing it. In most cases, these status codes are not commonly used by developers.

  1. 2xx Success class (Success)

2xx status code indicates that the server successfully received and processed the client's request. The following are commonly used 2xx status codes and their uses:

  • 200 OK: The request was successful. The server successfully processed the request and returned the corresponding information. This is usually one of the most common status codes.
  • 201 Created: The request was successful and created. Usually used for requests to create resources, such as adding new users or creating new articles.

Sample code:

@app.route('/users', methods=['POST'])
def create_user():
    # 创建用户逻辑
    # ...
    return jsonify({'message': 'User created'}), 201
  • 204 No Content: The request is successful but there is no content. Used to handle requests that do not need to return specific data, such as deleting resources.

Sample code:

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

3xx status code indicates that further operations from the client are required to complete ask. The following are commonly used 3xx status codes and their uses:

  • 301 Moved Permanently: Permanent redirection. Indicates that the requested resource has been moved to a new URL and should be accessed using the new URL.

Sample code:

@app.route('/old-url')
def old_url():
    return redirect('/new-url', code=301)
  • 302 Found (or 307 Temporary Redirect): Temporary redirection. Indicates that the requested resource has been temporarily moved to a new URL, but the client should still maintain the original request method (GET/POST).

Sample code:

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

4xx status code indicates that the client’s request is incorrect. The server cannot handle it. The following are commonly used 4xx status codes and their uses:

  • 400 Bad Request: The request is incorrect. Usually used when request parameters are missing or formatted incorrectly.

Sample 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 Unauthorized: Unauthorized. Indicates that the request requires authentication, but the client did not provide valid credentials.

Sample code:

@app.route('/admin')
@auth_required
def admin_page():
    # ...
  • 404 Not Found: The resource does not exist. Indicates that the requested URL address does not have a corresponding resource.

Sample 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. 5xx Server Error Class (Server Error)

5xx status code indicates that an error occurred while the server was processing the request mistake. The following are commonly used 5xx status codes and their uses:

  • 500 Internal Server Error: Server internal error. Indicates that an unknown error occurred while the server was processing the request.

Sample 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

By correctly setting the HTTP status code, we can better handle requests and responses and provide users with a better user experience. In actual development, it is very important to choose the appropriate HTTP status code based on specific business needs and API design specifications. At the same time, in order to improve the readability and maintainability of the code, it is recommended to use the status code constants provided by the web framework instead of using numbers directly.

The above is the detailed content of Correct way to set HTTP status code. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn