url

 


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):

  1. 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:

      vbnet

      GET /index.html HTTP/1.1 Host: www.example.com
  2. 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:

      makefile

      POST /submit-form HTTP/1.1 Host: www.example.com Content-Type: application/x-www-form-urlencoded Content-Length: 50
  3. 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:

      makefile

      PUT /user/123 HTTP/1.1 Host: www.example.com Content-Type: application/json Content-Length: 68
  4. 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:

      sql

      DELETE /user/123 HTTP/1.1 Host: www.example.com
  5. 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:

      makefile

      PATCH /user/123 HTTP/1.1 Host: www.example.com Content-Type: application/json Content-Length: 25
  6. 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:

      bash

      HEAD /index.html HTTP/1.1 Host: www.example.com
  7. 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:

      makefile

      OPTIONS / HTTP/1.1 Host: www.example.com
  8. 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:

      makefile

      TRACE / HTTP/1.1 Host: www.example.com

Ö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 KODLARI:

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 KoduAçıklamaKategoriAçıklama (Detaylı)
1xxBilgi KodlarıBilgilendirmeİstemciye, isteğin alındığı ve işlemenin devam ettiği bilgisini verir.
100ContinueBilgilendirmeİstemci, sunucudan bir yanıt alabilir, ancak yanıtın tamamlanması için devam etmesi gerekir.
101Switching ProtocolsBilgilendirmeİstemci ve sunucu, belirli bir protokolü değiştirmek için anlaşmaya varmışlardır.
2xxBaşarı KodlarıBaşarıİstek başarıyla tamamlanmıştır.
200OKBaşarıİstek başarıyla işlenmiş ve yanıt doğru bir şekilde dönmüştür.
201CreatedBaşarıYeni bir kaynak başarıyla oluşturulmuştur.
202AcceptedBaşarıİstek kabul edilmiştir, ancak işlem tamamlanmamıştır.
204No ContentBaşarıİstek başarıyla işlenmiştir, ancak dönecek içerik yoktur.
3xxYönlendirme KodlarıYönlendirmeİstemci, işlemi tamamlamak için başka bir kaynağa yönlendirilmelidir.
301Moved PermanentlyYönlendirmeKaynak kalıcı olarak başka bir URL'ye taşınmıştır.
302FoundYönlendirmeKaynak geçici olarak başka bir URL'ye taşınmıştır.
303See OtherYönlendirmeİstemci, başka bir URL'yi kullanarak isteği tekrarlamalıdır.
304Not ModifiedYönlendirmeKaynak, istemcinin son isteği ile aynı olduğundan, tekrar yüklemeye gerek yoktur.
307Temporary RedirectYönlendirmeKaynak 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.
400Bad RequestHata (İstemci)İstek geçersizdir veya yanlış biçimlendirilmiştir.
401UnauthorizedHata (İstemci)İstemci, kimlik doğrulaması yapmadan kaynağa erişmeye çalışmıştır.
403ForbiddenHata (İstemci)İstemcinin kaynağa erişim izni yoktur.
404Not FoundHata (İstemci)Kaynak bulunamadı.
405Method Not AllowedHata (İstemci)İstemci, sunucunun desteklemediği bir HTTP metodunu kullanmıştır.
408Request TimeoutHata (İstemci)İstemci, sunucuya belirli bir süre içinde yanıt gönderememiştir.
429Too Many RequestsHata (İstemci)İstemci çok fazla istek göndermiştir.
5xxSunucu Hatası KodlarıHata (Sunucu)Sunucuda bir sorun meydana gelmiştir.
500Internal Server ErrorHata (Sunucu)Sunucu, isteği işleme sırasında bir hata almıştır.
502Bad GatewayHata (Sunucu)Sunucu, bir başka sunucudan hatalı bir yanıt almıştır.
503Service UnavailableHata (Sunucu)Sunucu, geçici olarak hizmet verememektedir (bakım, yoğunluk vb.).
504Gateway TimeoutHata (Sunucu)Sunucu, bir başka sunucuya bağlanmaya çalışırken zaman aşımına uğramıştır.
505HTTP Version Not SupportedHata (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.