Sunucu yanıtı 207 Multi-Status
HTTP Durum Kodu 207 (Multi-Status)
HTTP durum kodu 207, bir yanıt içinde birden fazla durumu belirtmek için kullanılır. Bu kod, tek bir istekte birden fazla kaynağın durumu hakkında bilgi sağlamak gerektiğinde özellikle yararlıdır.
Kısa bir Genel Bakış
- Tanım ve Amaç: HTTP 207, bir yanıt içerisinde birden fazla kaynakla ilgili durumu belirtir.
- Ne Zaman Kullanılır: Birden fazla kaynağın durumunu aynı anda iletmek gerektiğinde kullanılır.
- Cevap Yapısı: Cevap genellikle XML veya JSON formatında olabilir ve her kaynağın durumu ile ilgili bilgi içerir.
Pratik Örnekler
Örnek 1: Birden Fazla Dosyanın İşlenmesi
Bir uygulama, kullanıcıdan birden fazla dosya yüklemesini isteyebilir. Kullanıcı dosyaları yüklediğinde, her dosyanın durumu ile ilgili bilgi sağlamak önemlidir.
POST /upload HTTP/1.1
Host: example.com
Content-Type: multipart/form-data
[Dosya Verileri]
Cevap:
HTTP/1.1 207 Multi-Status
Content-Type: application/xml
file1.txt
uploaded
file2.txt
error
Dosya boyutu çok büyük
Örnek 2: Birden Fazla Kaynağın Güncellenmesi
Kullanıcı, birden fazla kaynağı güncelleyebilir. Bu durumda, her bir güncellemenin sonucunu bildirmek için 207 kodu kullanılabilir.
PUT /update HTTP/1.1
Host: example.com
Content-Type: application/json
{
"resources": [
{"id": 1, "value": "Yeni Değer 1"},
{"id": 2, "value": "Yeni Değer 2"}
]
}
Cevap:
HTTP/1.1 207 Multi-Status
Content-Type: application/json
{
"responses": [
{"id": 1, "status": "updated"},
{"id": 2, "status": "not found"}
]
}
Örnek 3: Farklı Kaynaklardan Durumların Alınması
Bir uygulama, çeşitli kaynaklardan durum bilgisi almak isteyebilir. Bu durumda, 207 kodu ile her kaynağın durumu ile ilgili bilgi sağlanabilir.
GET /statuses HTTP/1.1
Host: example.com
Cevap:
HTTP/1.1 207 Multi-Status
Content-Type: application/json
{
"statuses": [
{"source": "source1", "status": "active"},
{"source": "source2", "status": "inactive"}
]
}
Hataları Düzeltme
Python
# Hatalı Kod
response = requests.put('http://example.com/update', json=data)
print(response.status_code) # Beklenen 207
Düzeltme Yöntemleri:
- Yanıtın durum kodunu kontrol et.
- Yanıt içeriğini inceleyerek hataları belirle.
JavaScript (Node.js)
const http = require('http');
http.get('http://example.com/statuses', (res) => {
console.log(res.statusCode); // Beklenen 207
});
Düzeltme Yöntemleri:
- Yanıtın durumunu kontrol et.
- Yanıt içeriğini inceleyerek hataları tespit et.
PHP
$response = file_get_contents('http://example.com/update');
if ($http_response_header[0] !== 'HTTP/1.1 207 Multi-Status') {
echo "Hata oluştu.";
}
Düzeltme Yöntemleri:
- HTTP başlıklarını kontrol et.
- Yanıt içeriğini inceleyerek hataları düzelt.
Olası Sorunlar ve Sınırlamalar
- Olası Hatalar: Yanlış format veya eksik bilgi.
- Sınırlamalar: Yanıt formatının karmaşıklığı.
- Optimizasyon Önerileri: Gereksiz veriyi azaltmak için yanıtları optimize et.
Başarılı Kullanım Örnekleri
Bazı servisler, durum kodu 207'yi etkili bir şekilde kullanmaktadır. Geliştiriciler, bu kodun sağladığı çoklu durum bilgisi ile uygulamalarında daha iyi kullanıcı deneyimleri sağlamaktadır.
Servis Adı | Kullanım Amacı |
---|---|
Örnek Servis 1 | Dosya yükleme durumu |
Örnek Servis 2 | Kaynak güncellemeleri |