Obsah

    Kód odpovědi serveru 501 Not Implemented

    HTTP Status 501 (Not Implemented)

    HTTP status kód 501 (Not Implemented) signalizuje, že server nepodporuje funkcionalitu potřebnou k provedení požadavku. To se může stát, když server neuznává HTTP metodu použitou v požadavku, nebo když není schopen zpracovat danou akci. Tento článek podrobně prozkoumá, co tento status kód znamená, uvádí praktické příklady jeho výskytu a způsoby, jak opravit chyby v různých programovacích jazycích.

    501 - Not Implemented

    Příčiny vzniku statusu 501

    • Neznámá HTTP metoda
      • Příklady použití nestandardních metod, jako je PATCH nebo PROPFIND.
    • Omezení serverového softwaru
      • Servery, které nepodporují určité funkce nebo možnosti.
    • Chyby konfigurace
      • Nesprávná nastavení na serveru nebo v aplikaci.

    Praktické příklady vzniku statusu 501

    1. Příklad s použitím nestandardní metody

      Například, pokud server přijme požadavek s metodou PROPFIND, zatímco podporuje pouze GET a POST.

    2. Příklad s zastaralými knihovnami

      Pokud je použita stará verze webového serveru, která nepodporuje moderní metody nebo funkčnost.

    3. Příklad s konfiguračními chybami

      Nesprávné nastavení webového serveru, které blokuje provádění určitých požadavků.

    Oprava chyb vedoucích ke statusu 501 v různých programovacích jazycích

    Programovací jazyk Oprava Příklad kódu
    PHP Kontrola a aktualizace webového serveru (např. Apache nebo Nginx) pro podporu potřebných metod.
    if ($_SERVER['REQUEST_METHOD'] == 'PROPFIND') {
        header("HTTP/1.1 501 Not Implemented");
        echo "Metoda není podporována.";
        exit;
    }
                    
    Python (Flask) Zajistěte, že váš serverový kód podporuje všechny požadované metody.
    from flask import Flask, abort
    
    app = Flask(__name__)
    
    @app.route('/example', methods=['GET', 'POST'])
    def example():
        abort(501)  # Vraťte 501, pokud metoda není podporována
                    
    Node.js (Express) Přidání zpracování metod, které nejsou podporovány.
    const express = require('express');
    const app = express();
    
    app.use((req, res, next) => {
        if (req.method === 'PROPFIND') {
            return res.status(501).send('Metoda není podporována.');
        }
        next();
    });
                    

    V této článku jsme prozkoumali status kód 501 (Not Implemented), jeho příčiny vzniku, příklady a způsoby opravy chyb v kódu na různých programovacích jazycích. Tento status kód je důležitým ukazatelem toho, že server není schopen provést požadavek, a pochopení jeho příčin a řešení pomůže vývojářům efektivněji odstraňovat vzniklé problémy.