Nội dung

    Phản hồi máy chủ 421 Misdirected Request

    HTTP Trạng thái 421 (Yêu cầu sai địa chỉ)

    HTTP trạng thái mã 421 (Misdirected Request) cho biết rằng yêu cầu đã được gửi đến một máy chủ không thể xử lý chính xác yêu cầu đó. Điều này có thể xảy ra khi khách hàng gửi yêu cầu tới một máy chủ không được cấu hình để xử lý yêu cầu cụ thể đó. Trong bài viết này, chúng tôi sẽ xem xét các nguyên nhân gây ra mã trạng thái này, các ví dụ về tình huống có thể xảy ra cũng như cách khắc phục trên nhiều ngôn ngữ lập trình khác nhau.

    421 - Misdirected Request

    Nguyên nhân gây ra mã trạng thái 421

    • Lỗi cấu hình của khách hàng
      • Các URL hoặc tên miền không chính xác
      • Cấu hình sai của máy chủ proxy
    • Vấn đề với cân bằng tải
      • Lựa chọn sai máy chủ để xử lý yêu cầu
      • Thiếu hỗ trợ cho nhiều máy chủ ảo trên máy chủ
    • Vấn đề về định tuyến
      • Ghi chú DNS không chính xác
      • Lỗi trong cấu hình thiết bị mạng

    Ví dụ thực tiễn về mã trạng thái 421

    1. Tình huống với tên miền không chính xác

      Khi khách hàng gửi yêu cầu đến www.example.com, nhưng máy chủ chỉ được cấu hình cho example.com.

    2. Vấn đề với máy chủ proxy

      Khách hàng sử dụng máy chủ proxy, mà có thể định tuyến sai yêu cầu đến máy chủ.

    3. Lỗi trong cấu hình nhiều máy chủ

      Yêu cầu được xử lý bởi máy chủ không được thiết kế để làm việc với nội dung hoặc API cụ thể.

    Cách khắc phục lỗi 421 trên các ngôn ngữ lập trình khác nhau

    Ngôn ngữ lập trình Cách khắc phục
    JavaScript (Node.js)
    const http = require('http');
    
    const options = {
        hostname: 'example.com',
        port: 80,
        path: '/api/resource',
        method: 'GET',
    };
    
    const req = http.request(options, (res) => {
        if (res.statusCode === 421) {
            console.error('Lỗi 421: Yêu cầu sai. Vui lòng kiểm tra URL.');
        }
    });
    req.end();
                    
    Python (requests)
    import requests
    
    try:
        response = requests.get('http://example.com/api/resource')
        response.raise_for_status()
    except requests.exceptions.HTTPError as err:
        if response.status_code == 421:
            print("Lỗi 421: Vui lòng kiểm tra địa chỉ yêu cầu.")
                    
    PHP
    $url = 'http://example.com/api/resource';
    $response = file_get_contents($url);
    
    if ($http_response_header[0] == 'HTTP/1.1 421 Misdirected Request') {
        echo "Lỗi 421: Yêu cầu sai. Đảm bảo bạn đang sử dụng địa chỉ chính xác.";
    }
                    

    Mã trạng thái 421 (Misdirected Request) có thể phát sinh từ nhiều lỗi liên quan đến định tuyến hoặc cấu hình không đúng. Việc xử lý và khắc phục lỗi này là cần thiết để đảm bảo sự hoạt động chính xác của API và cải thiện tương tác với khách hàng.