HTTP Methods

Mert KILIÇASLAN
5 min readSep 29, 2023

--

Herkese Selamlar,

Bu yazımda HTTP Metotlarını sade bir dil ile hem sizlere faydalı olmasını düşündüğüm hem de kendi yazdığım bir yazıyla bilgilerimi tazelemeyi amaçladığım güzel bir yazı hazırlamaya çalıştım. Umarım faydalı olur…

HTTP Nedir?

HTTP, “Hypertext Transfer Protocol”ün kısaltmasıdır.

İnternet üzerinden veri transferi için kullanılan bir protokoldür.

HTTP, sunucu ve istemci arasında bilgi alışverişi sağlar.

İstemci, bir web sayfası ya da uygulama gibi kaynaklara erişmek istediğinde, sunucudan bu kaynaklara erişmek için istekte bulunur ve sunucu da bu isteği yerine getirir.

Daha iyi anlamak ve kavramak için kısaca şöyle diyebiliriz, HTTP olmadan web sayfalarınızı görüntüleyemez, mail alamaz ve Medium üzerinde bir kullanıcı profili oluşturamayız. :=)

HTTP’nin Temel İşlevleri

  • Veri İletimi: HTTP, web sunucusundan istemcilere veri aktarımını sağlar. Bu veriler; metin, HTML sayfaları, CSS, resimler, videolar gibi tüm online içerikleri içerebilir.

HTTP’nin bu işlevi, web tarayıcılarının web sayfalarını indirip görüntülemesini sağlar.

İstemciler, sunucuların barındırdığı verilere erişmek için HTTP kullanır.

  • İstekler ve Yanıtlar: HTTP, istemcilerin sunuculara istekte bulunmalarını ve sunucuların bu isteklere yanıt vermelerini düzenler. İstemciler, web sayfalarını ‘talep etmek’ için çeşitli HTTP metotlarını kullanırlar.

Örneğin, “GET” metodu, bir web sayfasını talep etmek için, “POST” metodu sunucuya veri göndermek için kullanılır. Sunucular, bu isteklere yanıt verir ve gerekli veriyi ileterek istemcilere hizmet sunarlar.

  • Hata Yönetimi: HTTP, hata yönetimini de içerir. Eğer istemciler bir kaynağı eksik bir şekilde talep ederse veya sunucular bir isteği işleyemezse, HTTP, ‘özel’ hata kodları döndürür.

Örneğin, “404 Not Found” hatası, istenilen kaynağın sunucuda bulunamadığını belirtir.

Bu hata kodları, hem istemcilere hem de geliştiricilere sorunları tanımlama ve giderme konusunda gerçekten çok faydalı olur.

HTTP Metotları

HTTP’nin temel işlevini kavradıktan sonra HTTP metotlarının önemini anlamak daha kolay olacaktır.

HTTP metotları, bir istemcinin sunucuya ne tür bir istekte bulunduğunu belirtir.

1. GET

GET metodu, adından da anlaşılacağı gibi, sunucudan bir kaynağı almak için kullanılır. Get metodu sayesinde web sayfalarını görüntüleyebilir ve verilere erişebiliriz.

Get metodu, sunucuya bir istekte bulunarak, belirli bir kaynağı almak/görüntülemek amacıyla kullanılır.

GET isteği yalnızca veri almak için kullanılır ve sunucu üzerinde herhangi bir değişiklik yapmaz.

Kullanım Alanları

  • Web Sayfası Görüntüleme: Tarayıcılar, web sayfalarını görüntülemek için GET metodunu kullanır.
  • Veri Alımı: API’lar, GET metodu aracılığıyla veri sağlar.

2. POST

POST metodu, sunucuya veri göndermek için kullanılır.

POST isteği, sunucunun belirtilen kaynağı işlemesini ve veriyi kabul etmesini sağlar. Bu metot, sunucu tarafında bir kaynağı oluşturmak, güncellemek veya silmek gibi farklı değişiklikler yapabilir.

Kullanım Alanları

  • Kimlik Doğrulama: Kullanıcı adı ve şifre gibi hassas bilgilerimiz POST isteği ile sunucuya gönderilir.
  • Veri Yükleme: Sunucuya dosya yükleme işlemi sırasında POST metodunu kullanmış oluruz.

3. PUT

PUT metodu, sunucu üzerindeki belirli bir kaynağı güncellemek veya oluşturmak için kullanılır.

PUT metodu, veri üzerine yazma işlemi gerçekleştirir. Yani sunucu, belirtilen URI’deki kaynağı, istemcinin gönderdiği veriyle değiştirir veya oluşturur.

Kullanım Alanları

  • Veri Güncelleme: Profil güncelleme veya ürün bilgisi güncellemek vb. işlemler için kullanılır.
  • Veri Oluşturma: Yeni bir kullanıcı oluşturmak için kullanılır.

4. DELETE

DELETE metodunu, sunucudaki belirli bir kaynağı silmek veya kaldırmak için kullanılan bir HTTP metodu olarak tanımlayabiliriz.

Bu metot, sunucu tarafında belirli bir kaynağı siler ve bu kaynağa artık erişemeyiz. Delete işlemi geri alınamaz.

Kullanım Alanları

  • Kaynak/Dosya Silme: Bir sunucudaki belirli bir kaynak/veri/dosyayı silmek için kullanılır.

5. HEAD

HEAD metodu, “GET” isteği gibi çalışır ancak ufak bir fark vardır. Dönen yanıt yalnızca başlık bilgilerini içerir.

HEAD isteği, kaynağın boyutu, türü, değişiklik tarihi gibi bilgilere erişim sağlar, ancak kaynağın içeriğini almadan sunucudan bu bilgileri alır.

Bu, kaynağın büyük olduğu veya verinin aktarılmasının gereksiz olduğu durumlarda daha kullanışlıdır.

Kullanım Alanları

  • Link Geçerliliği Kontrolü: Web sayfaları veya diğer kaynaklar, belirli URL’lerde bulunan bağlantıların geçerliliğini kontrol etmek için HEAD metodu kullanabilir.

Bu, kullanıcıların bir bağlantıya tıklamadan önce bağlantının hala geçerli olduğunu belirlemelerine yardımcı olur.

  • Veri Bilgisi: Kaynak hakkında bilgi almak için kullanılır.

6. PATCH

PATCH metodu, sunucudaki belirli bir kaynağın güncellenmesi için kullanılır.

Diğer kaynak güncelleme metodundan olan PUT’dan farkı, PATCH Metodunun sadece belirli değişikliklerin yapılmasına izin vermesidir.

Yani, tüm kaynağı değiştirmek yerine, sadece belirli alanları güncellemek için kullanılır.

Kullanım Alanları

  • Kısmi Veri Güncelleme: Bir kaynağın yalnızca belirli alanlarını güncellemek için kullanabiliriz.

Örneğin, Medium profil bilgimizi güncellememiz ya da bir blog yazısında yalnızca başlık/açıklama değiştirmek için kullanılabilir. Bu mantıkta düşünebiliriz.

  • Veri Temizleme: Belirli verileri temizlemek/silmek için kullanılabilir.

7. OPTIONS

OPTIONS metodu, sunucunun belirli bir kaynağa veya sunucuya yönelik olarak hangi HTTP metotlarının kullanılabileceğini sorgulamak için kullanılan bir HTTP metodudur.

Bu, özellikle bir sunucunun ne tür işlemler gerçekleştirebileceği veya ne tür kimlik doğrulama yöntemlerini kabul edebileceği gibi bilgilere erişim sağlamamıza yarar.

Kullanım Alanları

  • Sunucu Bilgisi: Sunucunun hangi HTTP versiyonlarını ve özellikleri desteklediğini belirlemek için kullanılabilir.
  • API Tanımı: Sunucu, belirli API ve kaynakların nasıl kullanılacağını belirtir.
  • ***CORS Kontrolü*** (Kafa karışıklığı olmaması için sade ve konudan kopmadan anlaşılır bir şekilde yazı olması için detayına değinmiyorum. Fakat eğer CORS’u ilk defa duyuyorsanız şimdi CORS hakkında ufak bir araştırma yaparak yeni bir bilginin kilidini açabilirsiniz.)

8. TRACE

TRACE isteği, istemci tarafından gönderilen isteğin sunucu tarafından nasıl işlendiğini görmek için kullanılır.

Bu metot, sunucu ile istemci arasındaki iletişimin nasıl yapıldığını ve belirli bir kaynağa erişimin nasıl gerçekleştiğini anlamak için kullanırız.

Bu metot ile hata ayıklama, izleme ve güvenlik duvarı ayarlarının doğru olduğunu doğrulama gibi durumlarda oldukça elverişlidir.

Kullanım Alanları

  • Hata Ayıklama: HTTP isteğinin sunucu tarafından nasıl işlendiğini ve nasıl yanıt verildiğini izlemek için kullabiliriz.

Bu, hata ayıklama süreçlerini kolaylaştırır ve isteğin her aşamasını anlamak için oldukça kullanışlıdır.

  • Ağ İzleme: Ağ trafiğini izlemek ve belirli isteklerin nasıl yönlendirildiğini anlamak için kullanırız.

Bu, ağ performansını izlemek ve hata ayıklama yapmak için kullanışlıdır.

Her metodu tek tek açıkladık ve kullanım alanlarından bahsettik. Fakat daha göz önünde ve anlaşılabilir kısa açıklamalarını da tekrar paylaşmakta fayda var :=)

GET = Belirli bir kaynağı almak için kullanılır.

POST = Sunucuya veri göndermek için kullanılır.

PUT = Belirli bir kaynağı güncellemek veya oluşturmak için kullanılır.

(Tüm kaynak verisini tamamen değiştirir.)

PATCH = Belirli bir kaynağı güncellemek için kullanılır.

(Kaynağı tamamen değiştirmek yerine sadece belirli değişiklikleri uygular.)

DELETE = Belirli bir kaynağı silmek için kullanılır. Kaynağı tamamen siler.

OPTIONS = Sunucunun belirli bir kaynağa erişim izinlerini ve desteklediği HTTP metotlarını sorgulamak için kullanılır.

HEAD = Belirli bir kaynağın başlık bilgilerini almak için kullanılır. İçeriği almadan sadece başlık bilgilerini getirir.

TRACE = İstemci ve sunucu arasındaki iletişimi izlemek için kullanılır.

Bu yazıda HTTP metotlarının temel işlevlerini ve yaygın kullanım alanlarını daha anlaşılır ve basit bir dil ile inceledik.

HTTP’nin temel işlevlerini ve metotlarını anlamamızı kolaylaştırmak için hazırlanmış yazımı okuduğunuz için teşekkür ederim.

Umarım sizlere de faydalı olmuştur çünkü bu yazıyı hazırlamak HTTP Metotlarını daha iyi bir şekilde kavramama yardımcı oldu :=)

--

--