Odpověď serveru 405 Method Not Allowed
Co je statusový kód 405
Statusový kód HTTP 405 (Method Not Allowed) označuje, že metoda požadavku, kterou klient použil, není podporována pro požadovaný zdroj. Tento kód může způsobit chyby a nedorozumění, pokud vývojáři nevědí, jak s tímto stavem pracovat.
Definice a význam
Status 405 indikuje, že server rozumí metodě požadavku, ale zvolená metoda není povolena pro daný URI. Například, pokud je URL určeno pouze pro GET požadavky a klient se pokusí použít POST, server vrátí status 405.
Scénáře, kdy vzniká chyba 405
- Pokud klient zasílá požadavek s metodou, která není povolena pro daný zdroj.
- Při pokusu o přístup k API s metodou, která není implementována.
- Při nesprávné konfiguraci serveru nebo aplikace.
Praktické příklady vzniku chyby 405
Chyba při použití metody POST místo GET
Pokud klient odešle POST požadavek na URL, která akceptuje pouze GET, server vrátí chybu 405. Například:
POST /api/users HTTP/1.1
Host: example.com
Chyba při přístupu k ресурсу, který podporuje pouze PUT
Pokud se klient pokusí odeslat GET požadavek na URL, která je určena pouze pro PUT, dojde k chybě 405.
Příklad s nesprávným URL a metodou požadavku
Při pokusu o přístup k URL, která neexistuje, nebo je nesprávně nakonfigurována, může server také vrátit status 405, pokud metoda není povolena.
Oprava chyby 405 v různých programovacích jazycích
PHP
V PHP je možné zkontrolovat metodu požadavku a vrátit odpovídající status. Například:
if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
http_response_code(405);
echo "Metoda není povolena.";
}
Ve frameworku jako Laravel se používají routy, které definují povolené metody pro každou cestu.
JavaScript (Node.js)
V Node.js s frameworkem Express můžete nastavit metody pro jednotlivé cesty. Příklad:
app.post('/users', (req, res) => {
res.status(405).send('Metoda není povolena.');
});
Správná konfigurace trasování zajistí, že chyby 405 budou správně ošetřeny.
Python (Flask)
V Pythonu můžete snadno nastavit trasy a ošetřit metody pomocí dekorátorů:
@app.route('/users', methods=['POST'])
def create_user():
return 'Metoda není povolena.', 405
Často se vyskytující chyby a způsoby jejich předcházení
- Nesprávná konfigurace serveru: Ujistěte se, že server je správně nastaven pro požadované metody.
- Chyby v trasování aplikace: Pravidelně kontrolujte, zda jsou všechny cesty správně nakonfigurovány.
- Doporučení pro testování API: Používejte nástroje pro testování API, abyste se ujistili, že všechny metody fungují, jak mají.
Doporučení pro zpracování statusu 405
- Upozorněte uživatele na nesprávné metody prostřednictvím jasných chybových zpráv.
- Důležitost dokumentace API pro vývojáře, aby věděli, jaké metody jsou povoleny.
- Nastavte logování pro sledování chyb 405 a analýzu jejich příčin.
Metoda | Popis | Odpověď |
---|---|---|
GET | Žádost o získání dat | 200 OK |
POST | Žádost o vytvoření nového zdroje | 201 Created |
PUT | Žádost o aktualizaci zdroje | 200 OK |
DELETE | Žádost o odstranění zdroje | 204 No Content |
Další kódy
Kód | Popis |
---|---|
405.0 | Metoda není povolena - Použitá metoda požadavku není povolena. |