HTTP (Hypertext Transfer Protocol), web üzerindeki iletişimi yöneten temel protokoldür. HTTP, istemci (tarayıcı) ve sunucu arasında veri alışverişi yaparken kullanılan çeşitli metodlar sunar. Bu metodlar, istemcinin sunucuya yaptığı isteklerin türünü belirtir. Her HTTP metodunun farklı bir işlevi vardır.
HTTP Yöntemleri (HTTP Methods):
-
GET
-
Amaç: Sunucudan veri almak için kullanılır.
-
Açıklama: GET isteği, sunucudan bir kaynağın içeriğini almak için kullanılır. Bu, web sayfası görüntüleme veya API'den veri çekme gibi işlemleri kapsar.
-
Özellikler: GET istekleri genellikle tarayıcıda görsel olarak görünür (örneğin, URL çubuğunda). GET istekleri genellikle veri göndermez ve statik olarak sayfa yükler.
-
Örnek:
-
-
POST
-
Amaç: Sunucuya veri göndermek için kullanılır.
-
Açıklama: POST isteği, sunucuya veri gönderilmesi gereken durumlarda kullanılır. Örneğin, bir form doldurulup gönderildiğinde veya bir kayıt işlemi yapıldığında POST kullanılır.
-
Özellikler: POST isteği, veri içerir ve bu veriler HTTP gövdesinde gönderilir. GET'in aksine URL'de görünmez.
-
Örnek:
-
-
PUT
-
Amaç: Sunucudaki bir kaynağı güncellemek veya yeni bir kaynak oluşturmak için kullanılır.
-
Açıklama: PUT, belirli bir kaynağın içeriğini tamamen değiştirmek için kullanılır. Eğer kaynak mevcut değilse, PUT ile yeni bir kaynak oluşturulabilir.
-
Özellikler: PUT isteği, genellikle sunucuya tüm kaynak verisini içerir ve kaynak tam olarak belirtilen veriyle değiştirilir.
-
Örnek:
-
-
DELETE
-
Amaç: Sunucudan bir kaynağı silmek için kullanılır.
-
Açıklama: DELETE isteği, belirli bir kaynağı sunucudan kaldırmak amacıyla kullanılır. Bu, genellikle veri silme işlemlerinde kullanılır.
-
Özellikler: DELETE isteği, kaynağın kendisini siler, ancak her zaman başarılı olup olmadığına göre sunucudan yanıt alırsınız.
-
Örnek:
-
-
PATCH
-
Amaç: Sunucudaki bir kaynağın kısmi olarak güncellenmesi için kullanılır.
-
Açıklama: PATCH, PUT’a benzer şekilde kaynağı günceller, ancak yalnızca değiştirilen kısımları gönderir. Bu, kaynakta daha küçük, hedefli değişiklikler yapılmasına olanak tanır.
-
Özellikler: PATCH, tam veri yerine sadece değişiklikleri içerir ve veri daha küçük olur.
-
Örnek:
-
-
HEAD
-
Amaç: Sunucudan sadece başlık bilgilerini almak için kullanılır.
-
Açıklama: HEAD isteği, GET isteğiyle aynı şekilde çalışır, ancak yalnızca yanıtın başlıklarını döner. Veri içeriği döndürülmez. Bu, genellikle sayfa veya kaynak hakkında ön bilgi almak için kullanılır.
-
Özellikler: HEAD, verinin kendisini değil, yalnızca meta verilerini döndürür.
-
Örnek:
-
-
OPTIONS
-
Amaç: Sunucunun hangi HTTP metodlarını desteklediğini öğrenmek için kullanılır.
-
Açıklama: OPTIONS isteği, sunucunun bir kaynağa karşı hangi metodları desteklediğini öğrenmek için kullanılır. Örneğin, sunucu bir kaynağa GET ve POST metodlarını destekliyor olabilir.
-
Özellikler: Sunucudan dönen yanıt, hangi metodların kullanılabileceğine dair bilgi içerir.
-
Örnek:
-
-
TRACE
-
Amaç: Sunucunun gelen isteği nasıl algıladığını görmek için kullanılır.
-
Açıklama: TRACE isteği, sunucunun, istemci tarafından gönderilen isteği nasıl aldığını geriye doğru takip eder. Bu, genellikle ağ hatalarını teşhis etmek için kullanılır.
-
Özellikler: TRACE, güvenlik nedenleriyle çoğu sunucuda kapalıdır.
-
Örnek:
-
Özetle HTTP Yöntemlerinin Kullanım Amacı:
-
GET: Veri almak için.
-
POST: Veri göndermek için.
-
PUT: Kaynağı tamamen güncellemek için.
-
DELETE: Kaynağı silmek için.
-
PATCH: Kaynağı kısmi olarak güncellemek için.
-
HEAD: Yalnızca başlık bilgilerini almak için.
-
OPTIONS: Desteklenen HTTP metodlarını öğrenmek için.
-
TRACE: İletişim yolundaki hataları tespit etmek için.
HTTP durum kodları, istemcinin (tarayıcı veya diğer uygulamalar) sunucudan aldığı yanıtların durumunu belirtir. Her HTTP durumu, yanıtın başarılı olup olmadığını, hataları ve diğer durumları açıkça belirtir. HTTP durum kodları, üç ana kategoriye ayrılır: Başarılı (2xx), Yönlendirme (3xx), Hata (4xx ve 5xx).
İşte HTTP durum kodlarının detaylı bir tabloyu:
Durum Kodu | Açıklama | Kategori | Açıklama (Detaylı) |
---|---|---|---|
1xx | Bilgi Kodları | Bilgilendirme | İstemciye, isteğin alındığı ve işlemenin devam ettiği bilgisini verir. |
100 | Continue | Bilgilendirme | İstemci, sunucudan bir yanıt alabilir, ancak yanıtın tamamlanması için devam etmesi gerekir. |
101 | Switching Protocols | Bilgilendirme | İstemci ve sunucu, belirli bir protokolü değiştirmek için anlaşmaya varmışlardır. |
2xx | Başarı Kodları | Başarı | İstek başarıyla tamamlanmıştır. |
200 | OK | Başarı | İstek başarıyla işlenmiş ve yanıt doğru bir şekilde dönmüştür. |
201 | Created | Başarı | Yeni bir kaynak başarıyla oluşturulmuştur. |
202 | Accepted | Başarı | İstek kabul edilmiştir, ancak işlem tamamlanmamıştır. |
204 | No Content | Başarı | İstek başarıyla işlenmiştir, ancak dönecek içerik yoktur. |
3xx | Yönlendirme Kodları | Yönlendirme | İstemci, işlemi tamamlamak için başka bir kaynağa yönlendirilmelidir. |
301 | Moved Permanently | Yönlendirme | Kaynak kalıcı olarak başka bir URL'ye taşınmıştır. |
302 | Found | Yönlendirme | Kaynak geçici olarak başka bir URL'ye taşınmıştır. |
303 | See Other | Yönlendirme | İstemci, başka bir URL'yi kullanarak isteği tekrarlamalıdır. |
304 | Not Modified | Yönlendirme | Kaynak, istemcinin son isteği ile aynı olduğundan, tekrar yüklemeye gerek yoktur. |
307 | Temporary Redirect | Yönlendirme | Kaynak geçici olarak başka bir URL'ye yönlendirilmiştir ve istemci bu URL'yi kullanmalıdır. |
4xx | İstemci Hatası Kodları | Hata (İstemci) | İstemcinin yaptığı istekte bir sorun vardır. |
400 | Bad Request | Hata (İstemci) | İstek geçersizdir veya yanlış biçimlendirilmiştir. |
401 | Unauthorized | Hata (İstemci) | İstemci, kimlik doğrulaması yapmadan kaynağa erişmeye çalışmıştır. |
403 | Forbidden | Hata (İstemci) | İstemcinin kaynağa erişim izni yoktur. |
404 | Not Found | Hata (İstemci) | Kaynak bulunamadı. |
405 | Method Not Allowed | Hata (İstemci) | İstemci, sunucunun desteklemediği bir HTTP metodunu kullanmıştır. |
408 | Request Timeout | Hata (İstemci) | İstemci, sunucuya belirli bir süre içinde yanıt gönderememiştir. |
429 | Too Many Requests | Hata (İstemci) | İstemci çok fazla istek göndermiştir. |
5xx | Sunucu Hatası Kodları | Hata (Sunucu) | Sunucuda bir sorun meydana gelmiştir. |
500 | Internal Server Error | Hata (Sunucu) | Sunucu, isteği işleme sırasında bir hata almıştır. |
502 | Bad Gateway | Hata (Sunucu) | Sunucu, bir başka sunucudan hatalı bir yanıt almıştır. |
503 | Service Unavailable | Hata (Sunucu) | Sunucu, geçici olarak hizmet verememektedir (bakım, yoğunluk vb.). |
504 | Gateway Timeout | Hata (Sunucu) | Sunucu, bir başka sunucuya bağlanmaya çalışırken zaman aşımına uğramıştır. |
505 | HTTP Version Not Supported | Hata (Sunucu) | Sunucu, istemcinin kullandığı HTTP versiyonunu desteklememektedir. |
Kategoriler:
-
1xx (Bilgi Kodları): Bu kodlar, isteğin alındığı ve işlemeye devam edildiği bilgisini verir.
-
2xx (Başarı Kodları): İstek başarıyla tamamlanmış ve yanıt doğru şekilde alınmıştır.
-
3xx (Yönlendirme Kodları): İstemci, işlemi tamamlamak için başka bir kaynağa yönlendirilmelidir.
-
4xx (İstemci Hatası Kodları): İstemcinin yaptığı istekte bir sorun vardır. Genellikle kullanıcı hatasından kaynaklanır.
-
5xx (Sunucu Hatası Kodları): Sunucuda meydana gelen hatalar ve aksaklıkları belirtir.