REST nedir? HTTP nedir? HTTP metotlar nelerdir?

Hüseyin Aydın
3 min readNov 3, 2022

REST kelimesinin açılımı Representational State Transfer şeklindedir.

Türkçe karşılığı Temsili Durum Transferidir. REST aslında Web Servisi yahut Mikroservisler oluşturabilmemiz için kullandığımız yordamlardan birisidir.

Programlama dillerinden tamamen bağımsızdır. İstenilen bir programlama dili ve kütüphanelerle yapılabilir. Benim tavsiyem Spring Boot ile Web Servisleri yahut Mikroservisler yazılırsa tadından yenmez. (:

REST bir Web Servisi HTTP protokolü üzerinden çalışır.

REST API’ye örnek temsili resim:

REST aslında kullanımı SOAP Web Servislerine göre kolaydır. SOAP Web Servislerinde WSDL diye bir XML dosyası var. SOAP Web Servisleri Bu WSDL.xml dosyasında tanımlamalar olmadan veri transferi sağlamıyor, kullanımı zor ve mimarisi oldukça eski. SOAP 2000'li yılların başında popüler olan Web Servisleri idi. Hala bankalarda ve benzeri kurumlarda eskiden kalma Web Serivisi olarak varlığını sürdürmektedir.

SOAP Web Servislerine örnek temsili resim:

HTTP nedir?

Açılımı: Hyper Text Transfer Protocol.

Türkçe açılımı: Hiper Yazı Transferi Protokolü.

HTTP methods:

GET: Verileri almak için kullanılır. GET etmek zaten almak anlamına gelir. Bir şeyi GET’irmek gibi. (:

POST: Verileri göndermek için kullanılır. Aslında sunucu tarafında giden veri içerde işlenip veritabanların da kalıcı hale getirilir. POST kelimesi zaten ileti veya posta anlamına geliyor. Kısacası sunucuya postalanan veri. Zarf gibide düşünülebilir.

PUT: Veriler üzerinde değişiklik yapmak için kullanılır. Sunucu üzerindeki bir veri kaynağının içerisindeki verileri güncellemek için kullanılır. PUT kelime manası olarak koymak anlamına geliyor.

DELETE: Sunucu üzerindeki bir veritabanından belirli verileri yahut verilerin tamamını silmek için kullanılan sunucuya giden HTTP isteğidir. DELETE kelimesinden anlaşılacağı üzere silmek anlamına geliyor.

Temsili resim:

REST’in HTTP üzerinde kullanımı senaryosu:

Senaryo 1: Bir tane istemci(Client) düşünelim. Client yani istemci dediğimiz şey aslında bir cep telefonu, bilgisayar, tablet bilgisayar, akıllı televizyon, yahut herhangi bir akıllı cihaz içerisindeki istemci bir program olabilir. Örneğin Windows işletim sisteminin içerisinde yüklü olan bir internet tarayıcısı(Chrome). İstemci(Client) HTTP üzerinden sunucu(Server)’a istek(Request) atar. Server tarafında isteği karşılayan yer aslında Controller(kontrolör)’dir. Aslında burası bir Web API yani REST ile yazılmış bir Web Servisidir. Gelen istek içeride işlenir ve ona uygun bir cevap(Response) dönülür. Bu cevap(Response) düz bir text(yazı), html, XML(Extensible Markup Language), JSON(JavaScript Object Notation) veya CSV gibi veri formatları döner. Client(İstemci) bu cevabı(Response)’ı alır ve ekranda gösterir.

  1. Kullanım senaryosuna temsili resim:

Senaryo 2 : İstemci farklı bir sistem, sunucu ise farklı bir sistem olsun. Örneğin bankanın C# ile yazılmış POS Cihazı uygulaması olsun. Bankanın Server’inin da Java olduğunu düşünelim. Yani Java ile yazılmış sunucu tarafında çalışan RESTful Web Servisi olduğunu varsayalım. POS Cihazı C# sunucu ise Java. Peki bu ikisi nasıl anlaşacak. İşte Web Servislerinin asıl çıkış amacı budur. İki farklı sistemi görüştürmek ve anlaştırmak. Bu iki sistem arasında aslında veriler JSON, XML yahut her ikisinden de istenilen hangisi ise onunla haberleşme ve veri transferi sağlanır.

2. Kullanım senaryosuna temsili resim:

HTTP Durum Kodları:

Gelen isteklerin durumunu belirtmek için kullanılan durum kodları vardır. İstek başarılı mı? Başarısız mı? Kayıt gerçekleşti mi? Çakışma oldu mu? Sayfa bulunamadı mı? Gibi sorularımıza cevap olur bu durum kodları.

Durum kodlarına örnekler:

200 OK — İşlem başarılı demektir. Sıkıntı yok. (:

401 Unauthorized— Yetkisiz erişim denemesi olduğu zaman sunucu bu durum kodunu döner.

404 Not Found— İstenilen bir veri yahut istenilen bir sayfa yoksa sunucu bu durum kodunu döner.

409 Conflict — Veri kaynağındaki veriler ile sunucu tarafına gönderilen istekteki veri aynı ise yani çakışıyor ise sunucu bu durum kodunu döner.

500 Internal Server Error — İç sunucu hatasıdır. Sunucunun kendi içinde kendisinden kaynaklı bir sorun varsa o zaman bu durum kodunu döner.

--

--