Şunu söyleyeyim, Editör masasında böyle küçük araçlara hep zaafım var. Açık konuşayım — 401 ile 403 arasını hâlâ bazen iki saniye düşünmeden geçemiyorum (evet, doğru duydunuz). Geçen ay, 2026 Şubat’ında İstanbul’daki bir SaaS projesinin hata ekranlarını kontrol ederken yine aynı şeye takıldım. Dur bir dakika. “Bunu neden tek sayfada tutmuyoruz?” diye sordum kendi kendime.
İşte bu yazının çıkış noktası tam orası. HTTP durum kodları çoğu geliştiricinin kafasında 200, 301, 404 ve 500 civarında başlıyor, sonra bir sis çöküyor üstüne — ve gerçek hayatta işin can sıkıcı kısmı da tam o sisli bölgede gizleniyor: yetkilendirme karmaşası, oran sınırlama tuzakları, önbellek davranışları, yönlendirme hataları… yani günlük debug hayatının ekmeği bunlar, başka bir şey değil.
Neden Böyle Bir Referans İşe Yarıyor?
Dürüst olmak gerekirse, Basit görünüyor. Evet, öyle. Ama bazen en basit şey en çok zaman kazandırır, hani o meşhur kural işte — burada da tam olarak o var. Yeni sekme açıp RFC’yi aramak, Stack Overflow’da yarım cevap kovalamak, beş dakika sonra nereye gittiğini unutmak… bunların yerine tek sayfada kodu bulmak bayağı rahatlatıyor aslında.
Hmm, bunu nasıl anlatsamdı…
Benzer bir şeyi 2024 Kasım’ında Ankara’daki bir ürün ekibinde bizzat yaşamıştım. Frontend tarafında çalışan arkadaşımız her deploy sonrası “401 mi dönmeliydik yoksa 403 mü?” diye soruyordu; ortada dokümantasyon vardı. Aradığını anında göstermiyordu, hep bir şeyler arasında kayboluyordu. Küçük bir liste halinde kodları görmek, inanır mısınız, takımın iletişimini bile hızlandırmıştı o süreçte.
Buradaki asıl mesele sadece liste yapmak değil; doğru bağlamı vermek. Mesela “Unauthorized” kelimesi İngilizcede kafa karıştırıyor çünkü adı Unauthorized ama pratikte çoğu durumda “kimlik doğrulama gerekiyor” demek daha doğru hissediliyor — iki şey aynı görünüyor, değil mi, ama debug ederken fark muazzam. Bu tür nüanslar görünmez kalınca hata çözümü uzuyor. Uzuyor da uzuyor…
Kısa bir not düşeyim buraya.
Küçük referans araçlarının gücü karmaşık olmalarında değil; doğru bilgiyi tek hamlede gösterebilmelerinde yatıyor. Arayan kişi ne düşündüğünü yarıda kesmeden cevaba ulaşıyorsa araç işini yapmış demektir.
36 Kodluk Yapı Nasıl Çalışıyor?
Güzelliği yalın olmasında. Veri modeli birkaç alandan oluşuyor: — ki bu tartışılır — kod numarası, ad, RFC referansı, kısa açıklamalar — bazen Japonca veya İngilizce metinle destekleniyor (bizzat test ettim). Mantıklı değil mi? Devasa bir şey yok yani; hafif, okunabilir, kolay filtrelenebilir bir yapı kuruyorsun ve bitti.
Bir de şu var: tek satırlık açıklama fikri kulağa ufak tefek geliyor ama kullanıcı deneyiminde ciddi fark yaratıyor, bunu küçümsememek lazım. Liste içinde uzun paragraflar olunca göz yoruluyor; kullanıcı daha ilk taramada pes ediyor, sayfayı kapatıyor, aradığını başka yerde arıyor. Ben bunu 2023 yazında kendi yan projemde test etmiştim — küçük bir hata sözlüğü yapıyordum o dönem. Üç cümleyi geçen açıklamaların neredeyse hiç okunmadığını, analytics’e baktığımda net olarak gördüm.
| Kod | Ad | Kısa yorum |
|---|---|---|
| 200 | OK | İş tamam |
| 401 | Unauthorized | Kimlik doğrulama eksik ya da yanlış |
| 403 | Forbidden | Erişim var ama izin yok |
| 404 | Not Found | Kaynak bulunamadı |
| 418 | I’m a teapot | Evet, biraz şaka ama RFC’de yeri var |
| 429 | Too Many Requests | Tepede bekleyen rate limit duvarı |
Böyle bir tablo görünce aklınıza şu geliyor olabilir: “Tamam güzel de niye bu kadar uğraşılmış?” Haklı soru. Çünkü pratikte aradığın şey çoğu zaman kodun — kendi adıma konuşayım — teknik tanımı değil; onunla ne yapılacağını anlamak oluyor — ikisi çok farklı şeyler. Hızlı karar vermek için kısa açıklama şart, başka türlü olmuyor (buna dikkat edin)
Ara Bulma Deneyimi: Koddan Değil İfadeden Yakalamak
Şunu söyleyeyim, İyi arama özelliği olmayan mini referansların ömrü kısa oluyor. Bu kadar net söyleyeyim. Kullanıcı bazen kodu biliyor ama adını unutuyor; bazen de “authentication required” gibi bir cümleyi hatırlıyor ama numarayı bilmiyor (yanlış duymadınız). Hmm, bu durumda ne yapıyorsunuz şu an? Muhtemelen Google’a gidiyorsunuz. O yüzden aramanın hem rakamda hem isimde hem de açıklamada çalışması bence kritik, tartışmasız. Rate Limiting Deep Dive: Token Bucket, Leaky Bucket ve Sliding Window yazımızda bu konuya da değinmiştik.
function matches(item, query) {
const q = query.trim().toLowerCase();
if (!q) return true;
return (
String(item.code).includes(q) ||
item.name.toLowerCase().includes(q) ||
item.en.toLowerCase().includes(q) ||
item.ja.includes(q)
);
}
İlginç olan şu ki, Bu eşleşme mantığında hoşuma giden şey şu: kullanıcıyı düşünmeye zorlamıyorsun. “40” yazınca bütün 400 serisi geliyor, “too many” deyince 429 çıkıyor, “” yazınca ilgili kodlar listeleniyor. Arayüzün akıllı hissettirmesi için sihirli bir numara gerekmiyor aslında — düzgün düşünülmüş birkaç satır JavaScript yetiyor, o kadar.
Bilmem anlatabiliyor muyum, Neyse, çok dağıttım (ki bu çoğu kişinin gözünden kaçıyor). Konumuza dönelim: bu basitlik küçük ekiplerde altın değerinde oluyor. Startup tarafında genelde iki kişi aynı anda hem frontend hem dokümantasyon işiyle boğuşuyor zaten; enterprise tarafta ise onlarca ekip ortak dil istiyor ve standartlaştırılmış küçük araçlar burada fena iş çıkarmıyor (şaşırtıcı ama gerçek)
Kullanıcı Neyi Seviyor, Neyi Sevmiyor?
Sevilen taraf belli. Hızlı erişim, sade tasarım, düşük yük süresi. Sayfa hafif olunca mobilde bile açılması keyif veriyor; üstelik build zinciri yoksa bakım maliyeti de düşüyor, herkes mutlu. Bu ne anlama geliyor? Gel gelelim, her güzel şeyin bir gölgesi olur. ekranda ile ilgili önceki yazımız yazımızda bu konuya da değinmiştik. Daha fazla bilgi için Honda Super-N Avrupa’ya Geliyor: Retro Mini, Büyük Merak yazımıza bakabilirsiniz.
Beni en çok düşündüren nokta şu oldu: çok dilli açıklamalar iyi bir fikir, bunu söylemiyorum,. Ölçek büyüdükçe içerik tutarlılığı zorlaşıyor. Bir dilde kısa ve net olan ifade diğerinde fazla teknik kalabiliyor ya da tam tersi oluyor. Peki bunu neden söylüyorum? Hele bir de de kurumsal ekiplerde bu küçük tutarsızlıklar sessiz sedasız birikirken gözden kaçabiliyor.
- Kazanç: Tek sayfada hızlı erişim
- Kazanç: Kod / isim / anahtar kelime ile arama — bunu es geçmeyin
- Kazanç: Düşük bağımlılık ve sade bakım
- Zayıf nokta: İçerik büyürse düzen ihtiyacı artar
- Zayıf nokta: Aşırı minimalist yapı bazı kullanıcılara dar gelebilir
- Zayıf nokta: RFC detaylarına derin dalış yapmak isteyenler için tek başına yetmeyebilir
Küçük startup için nasıl duruyor?
Küçük ekipte bu yaklaşım bayağı mantıklı. Herkesin derdi farklı oluyor ama sorun çözme biçimi ortak kalıyor — işte tam bu noktada değer yaratıyor. Bir kişi backend log’una bakarken diğeri müşteri desteğine cevap veriyor olabilir; tek sayfalık status code referansı ikisinin arasında köprü kuruyor, ortak dil sağlıyor.
Kurumsal ekipte nasıl duruyor?
Bak şimdi, Büyük organizasyonda ise mesele biraz daha politika işi oluyor — evet, biraz sıkıcı, biliyorum (evet, doğru duydunuz). Avantaj standart terminoloji sağlamak; dezavantaj ise içerik yönetiminin sıkı disiplin istemesi. Bir şirket içi wiki’ye göre daha hızlıdır ama resmi dokümantasyon kadar ağır değildir… tam ortada bir yerde durur yani, garip bir konumdur ama işlevseldir.
Bence Asıl Ders Ne?
Lafı gevelemeden söyleyeyim. Bu tür araçlar gösterişten değil faydadan güç alıyor. İşte, hTTP durum kodları gibi temel konular bile sürekli karıştırılıyorsa problem sadece kullanıcının bellek kapasitesinde değil — bilgi sunumunda da olabilir, çoğu zaman da orada.
Editör olarak ben bu haberi ilk gördüğümde “tamam işte” dedim çünkü fazlalık yoktu. Gereksiz animasyon yoktu. Karmaşık menüler yoktu. Hatta abartılı UX iddiası bile yoktu — sadece işe yarayan bir şey vardı, başka bir şey değil. Bazen beklediğim kadar parlak olmayan projeler bana daha çok şey öğretiyor; burada da tam öyle oldu. Crimson Desert’te Intel Desteği: Arc Sahneye Çıkıyor yazımızda da bu konuya değinmiştik. Django’dan AWS Cognito’ya: Kurumsal SSO’da Dönüm Noktası yazımızda da bu konuya değinmiştik.
Dikkat Edilmesi Gerekenler ve Pratik İpuçları
Şöyle söyleyeyim, Böyle bir referansı kendi ekibiniz için yapacaksanız önce kapsamı küçültün derim — bunu gerçekten ciddiye alın. Tüm HTTP evrenini tek seferde toplamak yerine en çok kullanılan kodlarla başlayın; ihtiyaç oldukça genişlersiniz (kendi tecrübem). İlk sürümde mükemmeli kovalamak neredeyse her zaman geciktiriyor çünkü (en azından benim deneyimim böyle)
Buna ek olarak açıklamaları eylem odaklı tutun. Mesela sadece “forbidden” yazmak yerine “kimlik doğrulanmış ama erişim yok” gibi net anlatımlar çok daha faydalı oluyor. Kullanıcının elindeki sorun soyutsa bile metnin somut olması işleri kolaylaştırıyor — bu küçük. Etkisi büyük bir fark.
- Kod adlarını ezberlenebilir düzeyde tutun. (bu kritik)
- Açıklamaları tek satırda bırakmaya çalışın.
- Aynı anda hem sayı hem kelime hem bağlam üzerinden arayın.
- Daha fazla kod eklerken kategorileri renklerle ayırın ama gözü yormayın.
- Sadece geliştiriciyi değil destek ekibini de düşünün.
Sıkça Sorulan Sorular
401 ile 403 arasındaki fark nedir?
401 genelde kimlik doğrulama gerekiyor ya da giriş bilgileri geçersiz demektir. 403 ise kullanıcı tanınmıştır ama ilgili kaynağa erişim izni yoktur.
418 gerçekten gerçek bir HTTP kodu mu?
Evet, gerçektir fakat daha çok esprili bir örnek olarak bilinir.
RFC 2324 içinde yer alır ve klasik HTTP kullanımında pek karşına çıkmaz.
Yine de reference listelerinde bulunması hoş bir detaydır.
Neden tek satırlık açıklamalar tercih ediliyor?
Kullanıcı uzun paragraf okumadan hızlıca anlam almak ister.
Tek satırlık ifade hem taranabilirliği artırır hem de ekran kalabalığını azaltır.
En çok da hata ayıklarken bu hız ciddi fark yaratır.
Böyle bir araç hangi ekipler için daha faydalıdır?
Küçük startup ekipleri kadar destek masası olan büyük şirketler için de işe yarar.
Backend geliştiriciler, frontend ekipleri ve teknik destek çalışanları aynı dili konuşur.
En büyük kazanç da zaten burada ortaya çıkar.
Kaynaklar ve İleri Okuma
Proje GitHub Sayfası (benzer kaynak)
RFC Editor — HTTP Semantics (RFC 9110)
MDN Web Docs — HTTP response status codes
Bu içerik işinize yaradı mı?
Benzer içerikleri kaçırmamak için beni sosyal medyada takip edin.



