- Konu sahibi
- #1
HTTP, web tarayıcısı ile sunucu arasında bilgi alışverişini sağlayan iletişim protokolüdür. Tarayıcı bir URL istediğinde sunucuya HTTP isteği gönderir; sunucu da istenen sayfayı, dosyayı veya sonucu bir HTTP yanıtı olarak döndürür. Bir web sitesinin nasıl çalıştığını anlamak için temel olarak istek, yanıt, yöntem, başlık ve durum kodu kavramlarını bilmeniz yeterlidir.
Bir sayfayı açtığınızda işlem genellikle şu sırayla ilerler: Tarayıcı, örneğin
Bir web sayfası yalnızca tek bir HTTP isteğinden oluşmayabilir. HTML belgesi geldikten sonra tarayıcı, CSS dosyaları, JavaScript dosyaları, görseller ve yazı tipleri için ek istekler de gönderebilir. Bu nedenle sayfanın açılmasındaki sorun yalnızca ana HTML dosyasından değil, bağlı kaynaklardan da kaynaklanabilir.
Varsayımsal olarak tarayıcı şu isteği gönderebilir:
Burada
HTTP yöntemi, isteğin amacını belirtir. Web yönetiminde en sık karşılaşacağınız yöntemler şunlardır:
Bu yöntemler yalnızca isim değildir; sunucu, istemcinin ne yapmak istediğini yönteme göre yorumlar. Örneğin bir sayfayı görüntülemek için
Sunucunun yanıtındaki üç haneli durum kodu, isteğin sonucunu hızlıca gösterir. İlk rakam, kodun genel sınıfını belirtir:
Örneğin
HTTPS, HTTP iletişiminin TLS ile şifrelenmiş biçimidir. HTTPS kullanıldığında istemci ile sunucu arasındaki iletişimin gizliliği ve iletim sırasında değiştirilmesine karşı bütünlük korunur; ayrıca tarayıcı, sunucunun sertifikasını doğrulamaya çalışır.
HTTP ve HTTPS aynı web iletişimi modelini kullanır; ikisinde de istek, yanıt, yöntem ve durum kodları vardır. Fark, iletişimin güvenlik katmanıdır. HTTPS kullanılması sitenin içeriğinin doğru, güvenilir veya zararsız olduğunu tek başına kanıtlamaz. Sertifika, bağlantının belirli alan adıyla güvenli kurulmasına yardımcı olur; sitenin sunduğu bilgilerin doğruluğunu veya uygulamanın güvenli kodlandığını garanti etmez.
Web sitesi yöneticisi olarak pratik karar şudur: Kullanıcı girişi, form, ödeme, yönetim paneli veya kişisel veri içeren tüm iletişimlerde HTTPS kullanılmalıdır. Yalnız HTTP üzerinden çalışan bir siteye erişimde tarayıcının güvenlik uyarılarını görmezden gelmemeli; alan adının doğru olduğunu, sertifikanın geçerli olduğunu ve sitenin HTTPS sürümüne yönlendirme yapıp yapmadığını kontrol etmelisiniz.
Tarayıcıda bir sayfa açılmıyorsa önce görülen HTTP durum kodunu ve adres çubuğundaki alan adını kontrol edin.
Bir yönlendirme sorunu varsa
HTTP bir program değil, istemci ile sunucunun nasıl iletişim kuracağını tanımlayan bir protokoldür. Web sunucusu ve tarayıcı bu protokolü uygulayan yazılımlardır.
Şifrelenmemiş HTTP trafiği, özellikle ortak veya güvenilmeyen ağlarda gizlilik ve bütünlük riski taşır. Hassas veri içeren sitelerde HTTPS kullanılmalıdır; HTTPS de sitenin içerik olarak güvenilir olduğunu tek başına kanıtlamaz.
200 OK yalnızca o HTTP isteğinin başarılı yanıtlandığını gösterir. Sayfanın ihtiyaç duyduğu başka dosyalar veya API çağrıları 404, 403, 500 gibi farklı kodlar döndürebilir; tarayıcının geliştirici araçlarındaki Ağ bölümü bu istekleri ayrı ayrı gösterir.
HTTP nasıl çalışır?
Bir sayfayı açtığınızda işlem genellikle şu sırayla ilerler: Tarayıcı, örneğin
example.com/hakkimizda adresindeki kaynağı almak için sunucuya istek gönderir. Bu istekte hangi kaynağın istendiği, kullanılacak HTTP yöntemi ve ek bilgiler bulunabilir. Sunucu isteği değerlendirir; ardından durum kodu, yanıt başlıkları ve gerekiyorsa HTML içeriğiyle cevap verir.Bir web sayfası yalnızca tek bir HTTP isteğinden oluşmayabilir. HTML belgesi geldikten sonra tarayıcı, CSS dosyaları, JavaScript dosyaları, görseller ve yazı tipleri için ek istekler de gönderebilir. Bu nedenle sayfanın açılmasındaki sorun yalnızca ana HTML dosyasından değil, bağlı kaynaklardan da kaynaklanabilir.
Basit bir istek ve yanıt örneği
Varsayımsal olarak tarayıcı şu isteği gönderebilir:
Kod:
GET /hakkimizda HTTP/1.1
Host: example.com
Accept: text/html
Burada
GET, sunucudan bir kaynağın alınmak istendiğini; /hakkimizda, istenen yolu; Host ise isteğin hangi alan adına yöneltildiğini belirtir. Sunucu başarılı bir yanıt verdiğinde buna benzer bir sonuç dönebilir:
Kod:
HTTP/1.1 200 OK
Content-Type: text/html
<h1>Hakkımızda</h1>
200 OK, isteğin başarıyla işlendiğini gösterir. Content-Type başlığı, dönen içeriğin HTML olduğunu belirtir. Yanıt gövdesindeki HTML ise tarayıcının kullanıcıya göstereceği içeriği taşır.HTTP yöntemleri ne işe yarar?
HTTP yöntemi, isteğin amacını belirtir. Web yönetiminde en sık karşılaşacağınız yöntemler şunlardır:
| Yöntem | Temel amacı | Tipik kullanım |
|---|---|---|
| GET | Bir kaynağı almak | Web sayfasını veya API verisini görüntülemek |
| POST | Veri göndermek veya sunucuda işlem başlatmak | Form göndermek, kullanıcı oluşturmak |
| PUT | Bir kaynağı bütünüyle değiştirmek | Bir kaydın tamamını güncellemek |
| PATCH | Bir kaynağın belirli bölümünü değiştirmek | Yalnızca e-posta alanını güncellemek |
| DELETE | Bir kaynağı silmek | Bir kaydı veya dosyayı kaldırmak |
| HEAD | Gövde olmadan yanıt bilgilerini almak | Kaynağın başlıklarını ve durumunu kontrol etmek |
GET kullanılırken, form verisini sunucuya göndermek için çoğunlukla POST kullanılır. GET isteğiyle sunucudaki veriyi değiştirmek veya silmek gibi yan etkili işlemler tasarlanmamalıdır. Arama gibi salt okunur sorguların URL parametreleriyle iletilmesi ise farklıdır.HTTP durum kodları nasıl yorumlanır?
Sunucunun yanıtındaki üç haneli durum kodu, isteğin sonucunu hızlıca gösterir. İlk rakam, kodun genel sınıfını belirtir:
| Kod aralığı | Anlamı | Örnek ve yorum |
|---|---|---|
| 100–199 | Bilgilendirme | İşlemin ara aşamasına ilişkin yanıtlar |
| 200–299 | Başarılı | 200 OK: İstek başarıyla işlendi |
| 300–399 | Yönlendirme veya önbellek bilgisi | 301: Kalıcı olarak başka adrese taşındı; 304: Değişmedi |
| 400–499 | İstemci isteğiyle ilgili sorun | 404: Kaynak bulunamadı; 403: Erişim reddedildi |
| 500–599 | Sunucu tarafı sorun | 500: Genel sunucu hatası; 503: Hizmet geçici olarak kullanılamıyor |
404 Not Found, istenen yolun sunucuda bulunamadığını gösterir; bu sonuç tek başına sunucunun tamamen kapalı olduğunu kanıtlamaz. URL'de yazım hatası, yanlış yönlendirme, eksik dosya veya uygulamanın kaynağı üretmemesi de aynı sonuca yol açabilir. 500 Internal Server Error ise sunucunun isteği işlerken beklenmeyen bir sorun yaşadığını gösterir; bu durumda web sunucusu, uygulama ve hata günlükleri birlikte incelenmelidir.HTTP ile HTTPS arasındaki fark
HTTPS, HTTP iletişiminin TLS ile şifrelenmiş biçimidir. HTTPS kullanıldığında istemci ile sunucu arasındaki iletişimin gizliliği ve iletim sırasında değiştirilmesine karşı bütünlük korunur; ayrıca tarayıcı, sunucunun sertifikasını doğrulamaya çalışır.
HTTP ve HTTPS aynı web iletişimi modelini kullanır; ikisinde de istek, yanıt, yöntem ve durum kodları vardır. Fark, iletişimin güvenlik katmanıdır. HTTPS kullanılması sitenin içeriğinin doğru, güvenilir veya zararsız olduğunu tek başına kanıtlamaz. Sertifika, bağlantının belirli alan adıyla güvenli kurulmasına yardımcı olur; sitenin sunduğu bilgilerin doğruluğunu veya uygulamanın güvenli kodlandığını garanti etmez.
Web sitesi yöneticisi olarak pratik karar şudur: Kullanıcı girişi, form, ödeme, yönetim paneli veya kişisel veri içeren tüm iletişimlerde HTTPS kullanılmalıdır. Yalnız HTTP üzerinden çalışan bir siteye erişimde tarayıcının güvenlik uyarılarını görmezden gelmemeli; alan adının doğru olduğunu, sertifikanın geçerli olduğunu ve sitenin HTTPS sürümüne yönlendirme yapıp yapmadığını kontrol etmelisiniz.
Bir HTTP sorununu ilk aşamada nasıl ayırırsınız?
Tarayıcıda bir sayfa açılmıyorsa önce görülen HTTP durum kodunu ve adres çubuğundaki alan adını kontrol edin.
4xx kodları çoğunlukla istek, yetki, URL veya kaynakla ilgili sorunlara; 5xx kodları ise sunucu, uygulama, proxy veya upstream hizmetindeki sorunlara işaret eder. Ancak durum kodu yalnızca başlangıç bilgisidir; kesin nedeni bulmak için ilgili sunucu ve uygulama günlüklerindeki aynı istek zamanını ve yolu incelemek gerekir.Bir yönlendirme sorunu varsa
301 ve 302 yanıtlarının hedef adreslerini kontrol edin. Sonsuz yönlendirme, HTTP ile HTTPS arasında karşılıklı yönlendirme veya hatalı alan adı yapılandırması varsa tarayıcı sayfayı açmayabilir. 200 görülmesi de sayfanın her açıdan sorunsuz olduğu anlamına gelmez; HTML başarılı gelse bile CSS, JavaScript, görsel veya API istekleri ayrıca hata verebilir.Sık sorulan sorular
HTTP bir program veya sunucu mudur?
HTTP bir program değil, istemci ile sunucunun nasıl iletişim kuracağını tanımlayan bir protokoldür. Web sunucusu ve tarayıcı bu protokolü uygulayan yazılımlardır.
HTTP kullanmak güvenli midir?
Şifrelenmemiş HTTP trafiği, özellikle ortak veya güvenilmeyen ağlarda gizlilik ve bütünlük riski taşır. Hassas veri içeren sitelerde HTTPS kullanılmalıdır; HTTPS de sitenin içerik olarak güvenilir olduğunu tek başına kanıtlamaz.
200 OK gördüğüm hâlde neden sayfa düzgün çalışmayabilir?
200 OK yalnızca o HTTP isteğinin başarılı yanıtlandığını gösterir. Sayfanın ihtiyaç duyduğu başka dosyalar veya API çağrıları 404, 403, 500 gibi farklı kodlar döndürebilir; tarayıcının geliştirici araçlarındaki Ağ bölümü bu istekleri ayrı ayrı gösterir.