Durum kodları · 1xx–5xx
5xx: 500, 502, 503, 504 ve retry sınırı
Uygulama, gateway ve upstream hatalarını aynı torbaya atma.
Kavramı anlayalım
500 Internal Server Error beklenmeyen sunucu koşuludur; kullanıcıya stack trace veya bağlantı sırrı dönülmemelidir. 501 Not Implemented sunucunun gerekli işlevi desteklememesidir. 502 Bad Gateway proxy veya gateway’nin upstream’den geçersiz yanıt almasıdır. 504 Gateway Timeout upstream yanıtını zamanında alamamayı anlatır. Logda hangi hop’un kod ürettiğini bilmeden “backend kesin çöktü” denemez.
503 Service Unavailable geçici kapasite veya bakım durumunu anlatabilir. Retry-After saniye ya da HTTP-date biçiminde olabilir; bu alan isteğin yeniden denenmesini güvenli yapmaz. POST işlenmiş ama yanıt proxy’ye ulaşmamış olabilir. Timeout ve 5xx sonrasında tekrar ödeme almak gerçek bir risktir. Idempotency key, tekrarların atomik kaydı ve işlem sonucunu sorgulama endpoint’i gibi uygulama sözleşmeleri gerekir.
505 sürüm desteği, 506 içerik pazarlığında yapılandırma döngüsü, 507 yetersiz depolama, 508 WebDAV döngüsü, 511 ağ giriş gereksinimi gibi özel durumları ayrı öğren. 511 normal uygulama login kodu değildir; captive portal bağlamındadır. 520 gibi bazı proxy sağlayıcı kodları standart IANA HTTP kodu değildir. Retry sayısı ve toplam süre sınırlı olsun; exponential backoff ve jitter ile yükü büyütme, fakat kalıcı hatayı sonsuza kadar deneme.
Proxy loglarını teşhis ederken ve güvenli retry planlarken.
504 alan POST’un hiç çalışmadığını varsaymak.
Aynı konu. Üç farklı derinlik.
HTTP/1.1 500 Internal Server ErrorKorelasyon kimliğiyle iç logu incele; stack trace’i dışarı verme.
Bu sayfa dış sunuculara istek göndermez. HTTP mesajları temsili, HTTP/1.1 biçiminde okunabilir gösterimlerdir; HTTP/2 ve HTTP/3 wire formatı değildir. example.test ayrılmış öğretim alan adıdır. Komut ve JavaScript örneklerini yalnız kendi test ortamında uygula; gerçek token veya cookie yayımlama.
Önce kendin dene.
Ödeme isteği 504 döndü. Aynı işlemi yeni anahtarla tekrar göndermek güvenli mi?
Çözümü ve açıklamasını göster
Check existing operation; reuse the original idempotency contract.Hayır. İlk ödeme gerçekleşmiş olabilir; yeni anahtar deduplication’ı aşabilir.