Sunucu yanıtı 405 Method Not Allowed
HTTP 405 Durum Kodu Nedir?
HTTP 405 (Method Not Allowed) durum kodu, istemcinin kullandığı istek metodunun, istenen kaynak için desteklenmediğini gösterir. Bu durum, geliştiricilerin karşılaşabileceği hatalar ve yanlış anlamalar yaratabilir. Özellikle, doğru istek metodunu kullanmadıklarında, hata mesajlarıyla başa çıkmakta zorlanabilirler.
405 Hatasının Ortaya Çıkabileceği Senaryolar
- İstemcinin GET yerine POST metodunu kullanması
- Sadece PUT destekleyen bir kaynağa erişim sağlanması
- Yanlış URL ve istek metodu kombinasyonu
Pratik Örnekler
1. POST Metodunun Kullanılması
Bir web uygulaması, belirli bir URL'ye yalnızca GET istekleriyle erişimi destekliyorsa, istemci bir POST isteği gönderdiğinde 405 hatası alacaktır.
2. Sadece PUT Desteği Olan Kaynaklar
Bir API yalnızca veri güncelleme işlemleri için PUT metodunu destekliyorsa, GET veya DELETE gibi farklı bir metod kullanıldığında 405 hatası ile karşılaşılır.
3. Yanlış URL ve İstek Metodu
Eğer istemci, yanlış bir URL ile birlikte hatalı bir istek metodu kullanırsa, bu da 405 hatasına yol açabilir.
405 Hatasının Farklı Programlama Dilleri ile Çözümü
PHP
if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
http_response_code(405);
echo "Method Not Allowed";
}
Laravel gibi çerçevelerde, istek metodunu işlemek için route tanımlamalarında middleware kullanarak bu hatayı yönetebilirsiniz.
JavaScript (Node.js)
const express = require('express');
const app = express();
app.post('/api/resource', (req, res) => {
res.status(405).send('Method Not Allowed');
});
Express ile metodları işlemek ve doğru durum kodlarını döndürmek için route yapılandırmalarını kullanabilirsiniz.
Python (Flask)
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/api/resource', methods=['PUT'])
def resource():
return jsonify(message="Resource updated"), 200
@app.route('/api/resource', methods=['GET', 'POST'])
def resource_error():
return "Method Not Allowed", 405
Dekoratörler kullanarak yalnızca belirli metodları kabul eden rotalar oluşturabilirsiniz.
Sık Karşılaşılan Hatalar ve Önleme Yöntemleri
- Yanlış sunucu yapılandırması
- Uygulama yönlendirmelerinde hatalar
- API metodlarının doğruluğunu test etme önerileri
405 Durum Kodunu Yönetme Önerileri
- Kullanıcıları yanlış metodlar hakkında bilgilendirmek
- Geliştiriciler için API belgelerinin önemi
- Hata 405'lerin izlenmesi için loglama ayarlarının yapılandırılması
İstek Metodu | Desteklenen Metotlar | Hata Kodu |
---|---|---|
GET | GET | 405 |
POST | PUT | 405 |
DELETE | PUT | 405 |
Ek Kodlar
Kod | Açıklama |
---|---|
405.0 | Yönteme izin verilmedi - Kullanılan istek yöntemine izin verilmiyor. |