HTTP Nedir?
HTTP, “Hypertext Transfer Protocol” (Hipermetin Transfer Protokolü) kısaltmasıdır ve internet üzerinde veri iletimini sağlayan bir iletişim protokolüdür. Temel olarak, web tarayıcıları ile web sunucuları arasındaki veri alışverişi için kullanılır. HTTP, web sayfalarının ve diğer web kaynaklarının tarayıcılarda nasıl görüntülendiğini ve etkileşimde bulunulduğunu düzenler.
HTTP’nin temel işlevleri şunlardır:
- Veri İletimi: HTTP, istemciden (genellikle bir web tarayıcısı) sunucuya veya sunucudan istemciye veri iletimini sağlar. Bu, web sayfalarının, metin, resim, video ve diğer medya türleri dahil olmak üzere farklı türde içeriği görüntülemek için tarayıcıya gönderilmesini içerir.
- İstek ve Yanıt: Bir istemci (örneğin, bir tarayıcı) bir web sunucusundan belirli bir kaynağı (örneğin, bir web sayfasını) almak için bir HTTP isteği gönderir. Sunucu bu isteği işler ve bir HTTP yanıtı ile yanıtlar. Yanıt, istemcinin isteğini kabul edip etmediğini, veriyi içerip içermediğini ve başka bilgileri içerir.
- Stateless (Durumsuz) Protokol: HTTP, durumsuz bir protokoldür, yani her istek ve yanıt, önceki isteklerle veya yanıtlarla ilişkilendirilmez. Her istek, kendi bağlamında işlenir ve sunucu, isteğe cevap verirken geçmiş isteklerin bilgisini tutmaz.
- TCP/IP Tabanlı: HTTP, genellikle TCP/IP (Transmission Control Protocol/Internet Protocol) üzerine kurulmuştur. Bu, güvenilir bir iletişim sağlar ve verilerin bütünlüğünü korur.
- Metotlar ve Durum Kodları: HTTP, farklı işlemleri gerçekleştirmek için metotlar (örneğin, GET, POST, PUT, DELETE) kullanır ve her işlemin sonucunu belirlemek için durum kodları (örneğin, 200 OK, 404 Not Found, 500 Internal Server Error) kullanır.
HTTP’nin en yaygın kullanımı, web tarayıcıları aracılığıyla web sayfalarını ve çevrimiçi içeriği görüntülemek için kullanılır. Ancak, HTTP, API (Application Programming Interface) çağrıları, veri aktarımı ve diğer internet tabanlı iletişim türleri için de kullanılabilir.
HTTPS (Hypertext Transfer Protocol Secure), HTTP’nin güvenli bir sürümüdür ve verilerin şifrelenerek iletilmesini sağlar. HTTPS, özellikle çevrimiçi alışveriş, bankacılık ve kişisel bilgilerin korunmasına odaklanan web siteleri için yaygın olarak kullanılır.
HTTP Durum Kodları Nasıl Sınıflandırılır?
HTTP durum kodları, genellikle beş farklı sınıfa ayrılır. Bu sınıflar, bir HTTP yanıtının genel kategorisini belirtir ve yanıtın ne tür bir olayı temsil ettiğini anlamamıza yardımcı olur. İşte HTTP durum kodlarının sınıflandırılması:
- 1xx – Bilgi İletisi (Informational):
- Bu sınıf, istemcinin isteğini işleme başlamak için bilgilendirme amacı taşır. İstemci, bu bilgileri alır ve isteği devam ettirebilir.
- Örnekler: 100 Continue, 101 Switching Protocols
- 2xx – Başarılı İşlem (Successful):
- Bu sınıf, istemcinin isteğin başarıyla işlendiğini veya kabul edildiğini gösterir. İstek başarıyla sonuçlandığında bu kodlar kullanılır.
- Örnekler: 200 OK, 201 Created, 204 No Content
- 3xx – Yönlendirme (Redirection):
- Bu sınıf, kaynağın yerini değiştirdiğini veya başka bir URL’ye yönlendirdiğini belirtir. İstemci, kaynağı yeni URL’de bulabilir.
- Örnekler: 301 Moved Permanently, 302 Found, 304 Not Modified
- 4xx – İstemci Hatası (Client Error):
- Bu sınıf, istemcinin yanlış bir şey yaptığını veya geçersiz bir istekte bulunduğunu gösterir. İstemci tarafından düzeltilmesi gereken hataları temsil eder.
- Örnekler: 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests
- 5xx – Sunucu Hatası (Server Error):
- Bu sınıf, sunucunun bir hata nedeniyle isteği işleyemediğini gösterir. Sunucu tarafından düzeltilmesi gereken hataları temsil eder.
- Örnekler: 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable
Bu sınıflandırma, bir HTTP yanıtının ne tür bir durumu temsil ettiğini hızlıca anlamamıza yardımcı olur. Her sınıf, belirli bir kategoriye ait olan durum kodlarını içerir. Bu sayede web geliştiricileri ve sistem yöneticileri, sorunları tanımlamak ve yanıtları uygun şekilde ele almak için bu kodları kullanabilirler.
HTTP Durum Kodları Neden Önemlidir?
HTTP durum kodları, web iletişiminde çok önemli bir rol oynarlar ve aşağıdaki nedenlerle önemlidirler:
- İşlem Sonuçlarını Belirtme: Durum kodları, bir HTTP isteğinin veya yanıtın nasıl işlendiğini açıkça belirtir. Bu, bir isteğin başarılı olduğunu, yönlendirildiğini, hatalı olduğunu veya başka bir durumda olduğunu hızlı bir şekilde anlamamıza yardımcı olur.
- Hata Ayıklama ve Sorun Giderme: Web geliştiricileri için HTTP durum kodları, hataları ayıklamak ve sorunları çözmek için çok önemlidir. Bir hata durumu oluştuğunda, durum kodu genellikle sorunun ne olduğunu gösterir.
- Otomasyon ve Otomasyon İşlemleri: Web servisler ve uygulamalar arası otomasyon için HTTP durum kodları çok önemlidir. Örneğin, bir API çağrısının başarısız olduğunu bildiren belirli bir durum kodu, otomasyon sistemlerinin bu hatayı ele almasına yardımcı olabilir.
- Kullanıcı Deneyimi: Kullanıcılar için HTTP durum kodları, web sayfalarının nasıl görüntülendiği ve davranış gösterdiği konusunda önemlidir. Örneğin, 404 durum kodu sayesinde bir sayfanın bulunamadığını belirtebiliriz ve kullanıcılara doğru yönlendirmeler yapabiliriz.
- Cache Kontrolü: Bazı HTTP durum kodları, özellikle 3xx kodları (Yönlendirmeler), önbellek kontrolü için kullanılır. Bu, tarayıcıların ve sunucuların sayfaları ve verileri nasıl önbelleğe alacaklarını anlamalarına yardımcı olur.
- Güvenlik: Bazı durum kodları, güvenlikle ilgili sorunları bildirebilir. Örneğin, 401 durum kodu yetkilendirme hatası gösterirken, 403 durum kodu erişim engellemesi gösterir.
- Standardizasyon: HTTP durum kodları, belirli bir standarda dayalıdır (RFC 2616). Bu, farklı web sunucuları ve istemcileri arasında uyumluluğu sağlar ve web üzerinde tutarlı bir deneyim sunar.
HTTP durum kodları, web trafiğini yönetmek, hataları tanımlamak ve kullanıcı deneyimini iyileştirmek için vazgeçilmez bir araçtır. İstemciler ve sunucular arasındaki iletişimde önemli bir rol oynarlar ve web geliştiricileri tarafından dikkatlice ele alınmalıdır.
HTTP Durum Kodları Ne Zaman Görülür?
HTTP durum kodları, web tarayıcıları ve web sunucuları arasındaki iletişimde kullanılır ve belirli durumları veya olayları tanımlamak için kullanılırlar. İşte HTTP durum kodlarının ne zaman görüldüğüne dair bazı örnekler:
- İstemci Tarafından Gönderilen İsteklerde:
- Tarayıcı, bir web sayfasını istemek için sunucuya bir GET isteği gönderdiğinde, sunucu 200 OK veya diğer başarılı kodları yanıt olarak gönderebilir.
- Bir kullanıcı bir web formu doldurup gönderdiğinde, tarayıcı bu veriyi sunucuya POST isteğiyle gönderir ve sunucu 200 OK veya diğer uygun bir yanıt kodu göndermelidir.
- Sunucu Tarafından Yanıtlarda:
- Bir sunucu, bir kaynağın başarıyla bulunduğunu ve gönderildiğini belirtmek için 200 OK kodunu kullanır.
- Bir kaynak istemci tarafından bulunamazsa, sunucu 404 Not Found veya başka bir benzeri kodla yanıt verir.
- Yetkilendirme gerektiren bir kaynağa erişim talebi, sunucu tarafından 401 Unauthorized kodu ile reddedilebilir.
- Yönlendirmelerde:
- Bir sunucu, kaynağın başka bir URL’ye taşındığını belirtmek için 301 Moved Permanently veya 302 Found gibi yönlendirme kodları gönderebilir.
- Hata Durumlarında:
- Sunucu, bir iç hata nedeniyle yanıt veremezse, 500 Internal Server Error kodu kullanılır.
- İstemci tarafından geçersiz bir istek gönderilirse, sunucu 400 Bad Request veya uygun bir hata kodu gönderebilir.
- Çeşitli Durum Kontrollerinde:
- Önbellek yönetimi için sunucu 304 Not Modified kodunu kullanabilir. Bu durum kodu, tarayıcının yerel önbelleğini kullanmasına olanak tanır ve veriyi tekrar indirmesini engeller.
HTTP durum kodları, web iletişimi sırasında her türlü durumu belirtmek için kullanılır ve genellikle istemciler ve sunucular arasındaki iletişimde otomatik olarak işlenir. Bu durum kodları, web geliştiricileri ve sistem yöneticileri tarafından sorunları tanımlamak, hata ayıklamak ve kullanıcı deneyimini iyileştirmek için kullanılır.
Tüm HTTP Durum Kodları ve Anlamları Nelerdir?
100 Durum Kodu: “Continue” İstemcinin devam etmesi gerektiğini belirten bir bilgi yanıtıdır. Genellikle bir istek gönderildikten sonra sunucunun isteği işlemeye başladığını ve isteği tamamlamasını beklediğini bildirir.
101 Durum Kodu: “Switching Protocols” Sunucunun iletişim protokollerini değiştirmek için isteği kabul ettiğini bildiren bir yanıttır. Örneğin, bir WebSocket bağlantısının kurulması için kullanılabilir.
102 Durum Kodu: “Processing” Sunucu, isteği almayı kabul etti, ancak yanıtını henüz tamamlamadı. Bu, uzun sürecek işlemler sırasında istemciye bir yanıt göndermek isteyen durumlar için kullanılır.
200 Durum Kodu: “OK” İstek başarılı bir şekilde işlendi ve sonuçlar başarıyla döndü.
201 Durum Kodu: “Created” İstek başarıyla işlendi ve yeni bir kaynak başarıyla oluşturuldu. Genellikle POST istekleri için kullanılır.
202 Durum Kodu: “Accepted” İstek kabul edildi, ancak işleme alındı ve tamamlanması için daha fazla süre gerekiyor.
203 Durum Kodu: “Non-Authoritative Information” Sunucu, yanıtın kendi kaynaklarından alınmadığını ve başka bir kaynaktan elde edildiğini belirtir.
204 Durum Kodu: “No Content” İstek başarılı bir şekilde işlendi, ancak sunucu boş bir yanıt gönderdi. Genellikle PUT veya DELETE işlemlerinde kullanılır.
205 Durum Kodu: “Reset Content” İstemcinin sayfayı sıfırlaması gerektiğini belirten bir yanıttır. Genellikle bir formun gönderilmesi sonucu kullanıcıyı başka bir sayfaya yönlendirmek için kullanılır.
206 Durum Kodu: “Partial Content” Sunucu, istemcinin yalnızca belirli bir aralıktaki verileri istediğini ve bu verileri başarıyla döndürdüğünü belirtir.
207 Durum Kodu: “Multi-Status” Davranışın birden çok kaynağı etkilediğini ve her bir kaynağın farklı bir durum koduyla yanıtlandığını belirten bir yanıttır.
210 Durum Kodu: “Content Different” Bu kod, kaynakların farklı varyantlarına erişim izni verildiğini belirtir.
300 Durum Kodu: “Multiple Choices” İstek, birden fazla seçenek sunuyor ve istemcinin bir seçim yapması gerekiyor. Örneğin, bir kaynağın birden fazla farklı temsilciye sahip olduğu durumlarda kullanılır.
301 Durum Kodu: “Moved Permanently” İstek kaynağı artık başka bir yerde bulunuyor ve istemcinin bu yeni konuma yönlendirilmesi gerekiyor.
302 Durum Kodu: “Found” İstek kaynağı geçici olarak başka bir yerde bulunuyor ve istemci geçici olarak yeni konuma yönlendiriliyor.
303 Durum Kodu: “See Other” İstek başka bir kaynağa yönlendirildi. Genellikle GET istekleri için kullanılır.
304 Durum Kodu: “Not Modified” İstemci tarafından önbellekte bulunan bir kaynak, sunucu tarafından değiştirilmediği sürece, sunucu bu durum kodunu gönderir ve istemci yerel önbelleğinden veriyi kullanabilir.
305 Durum Kodu: “Use Proxy” Sunucu, istemcinin isteği bir proxy sunucusu üzerinden yapmasını gerektiriyor.
307 Durum Kodu: “Temporary Redirect” İstek geçici olarak başka bir yere yönlendirildi. 302’ye benzer, ancak istemcinin orijinal isteği aynı yöntem ve veri ile tekrar denemesi gerekebilir.
400 Durum Kodu: “Bad Request” İstek, sunucu tarafından anlaşılmadı veya işlenemedi. Genellikle isteğin yanlış biçimlendirildiği durumlarda kullanılır.
401 Durum Kodu: “Unauthorized” İstek için kimlik doğrulama gereklidir ve istemci kimlik doğrulaması sağlamalıdır.
402 Durum Kodu: “Payment Required” Kullanılabilir bir kaynağın alınabilmesi için ödeme gereklidir, ancak bu durum pek yaygın değildir.
403 Durum Kodu: “Forbidden” İstek yasaklandı ve sunucu erişimi reddetti. İstemciye kaynağa erişim izni yok.
404 Durum Kodu: “Not Found” İstek kaynağı sunucuda bulunamadı.
405 Durum Kodu: “Method Not Allowed” İstek yöntemi (GET, POST, PUT, vb.) sunucu tarafından desteklenmiyor.
406 Durum Kodu: “Not Acceptable” Sunucu, istemcinin kabul edilemez bir yanıt türü istediğini belirtir.
407 Durum Kodu: “Proxy Authentication Required” Proxy sunucusu, istemciden kimlik doğrulama bilgilerini talep ediyor.
408 Durum Kodu: “Request Timeout” İstek zaman aşımına uğradı, yani sunucu belirli bir süre içinde isteği alamadı.
409 Durum Kodu: “Conflict” İstek, kaynak üzerinde bir çatışma yarattı ve bu çatışmanın çözülmesi gerekiyor.
410 Durum Kodu: “Gone” İstek kaynağı artık mevcut değil ve kalıcı olarak kaldırıldı.
411 Durum Kodu: “Length Required” Sunucu, isteğin bir içerik uzunluğu belirtmediğini belirtir.
412 Durum Kodu: “Precondition Failed” İstek, önişlem gereksinimlerini karşılamadı.
413 Durum Kodu: “Payload Too Large” İstek, sunucunun kabul edebileceğinden daha büyük bir veri yükü içeriyor.
414 Durum Kodu: “URI Too Long” URI (Uniform Resource Identifier) isteği, sunucunun işleyemeyeceği kadar uzun.
415 Durum Kodu: “Unsupported Media Type” Sunucu, istemcinin gönderdiği medya türünü desteklemiyor.
416 Durum Kodu: “Range Not Satisfiable” Sunucu, istemcinin talep ettiği aralığı karşılayamıyor.
417 Durum Kodu: “Expectation Failed” Sunucu, istemcinin beklediği bir beklentiyi karşılayamıyor.
422 Durum Kodu: “Unprocessable Entity” İstek, sunucu tarafından işlenemedi.
423 Durum Kodu: “Locked” İstek kaynağı, başka bir işlem tarafından kilitlendi ve şu anda kullanılamıyor.
424 Durum Kodu: “Failed Dependency” Bir isteğin bağımlılıkları başarısız oldu.
451 Durum Kodu: “Unavailable For Legal Reasons” İstek, yasal nedenlerle sunulamaz.
500 Durum Kodu: “Internal Server Error” Sunucu bir iç hata ile karşılaştı ve isteği işleyemedi.
501 Durum Kodu: “Not Implemented” Sunucu, isteğin desteklenmeyen bir özelliğini içeriyor.
502 Durum Kodu: “Bad Gateway” Sunucu, başka bir sunucudan gelen yanıtı düzgün bir şekilde iletemedi.
503 Durum Kodu: “Service Unavailable” Sunucu geçici olarak hizmet dışıdır ve istekleri işleyemiyor.
504 Durum Kodu: “Gateway Timeout” Sunucu, başka bir sunucudan yanıt almak için beklerken zaman aşımına uğradı.
505 Durum Kodu: “HTTP Version Not Supported” Sunucu, kullanılan HTTP sürümünü desteklemiyor.
507 Durum Kodu: “Insufficient Storage” Sunucu, isteği yerine getirmek için yetersiz depolama alanına sahip.
Screaming Frog İle HTPP Durum Kodları Nasıl Tespit Edilir?
Adım adım HTTP durum kodlarını nasıl tespit edeceğinize dair bir döküman.
- Screaming Frog SEO Spider’ı Başlatın:
- Screaming Frog SEO Spider’ı bilgisayarınıza indirin ve kurun.
- Programı başlatın.
- Web Sitesini Taramayı Başlatın:
- Screaming Frog’un ana ekranında, taramak istediğiniz web sitesinin URL’sini giriş kutusuna ekleyin.
- “Start” veya “Başlat” düğmesine tıklayarak taramayı başlatın.
- Tarama İşlemini İzleyin:
- Screaming Frog, web sitesini taramaya başlayacak ve tarama işlemi devam ederken ilerleme çubuğunu gösterecektir.
- Tarama tamamlandığında, taramanın sonuçları ana ekranda görüntülenecektir.
- HTTP Durum Kodları Raporunu İnceleyin:
- Tarama işlemi tamamlandığında, “Response Codes” veya “Yanıt Kodları” sekmesine geçin.
- Bu sekme, web sitenizin farklı URL’leri için alınan HTTP durum kodlarını listeler.
- HTTP durum kodlarına göre sayfa listesini inceleyebilirsiniz. Örneğin, “200 OK” durum kodları başarılı sayfaları temsil ederken, “404 Not Found” durum kodları eksik sayfaları temsil eder.
- Durum Kodlarını Analiz Edin:
- Listelenen her URL için HTTP durum kodunu inceleyerek sorunlu sayfaları ve hataları tespit edebilirsiniz.
- Özellikle “404 Not Found” gibi hataları belirleyerek, eksik sayfaları düzeltmeye veya yönlendirmeler eklemeye karar verebilirsiniz.