REST nedir?

REST Mimari Üslûbu ve HTTP Protokolü

Sırrı KÖMÜR
Kodcular
4 min readNov 6, 2022

--

Photo by Toa Heftiba on Unsplash

REST (Representational State Transfer) nedir?

REST bir protokol değildir, mimari üsluptur, mimari ilkeler dizisidir. Üslup, bir şeyin oluş ve yapış biçimini belirler. Bu itibarla REST üslubu, aslında, servislerin belirli başka bir servisin kullanımı için istemci ile sunucu arasındaki istek-yanıt sisteminin deposu görevini görür. Bu ne demektir?

  • Bir “Pastacı Dükkânı” düşünelim. Bizler müşteri olarak bu dükkâna gidiyor ve bir pasta için sipariş vermek adına pastacıyı çağırıyoruz.
  • Pastacı bize: “Ne büyüklükte bir pasta istersiniz?” diye sorar.
    Biz de “Büyük boy.” diye cevap verdiğimizi varsayalım.

Bu örneğin varsayımsal grafiği bu şekildedir. Peki buradaki JSON ve HTTP nedir?

JSON (JavaScript Object Notation) nedir?

JSON bir veri formatıdır. Bu format, kullanıcı-sunucu arasındaki iletişim için veri depolayıp iletmek için kullanılır. İsminde JavaScript geçmesine bakmayın, mevcut dillerde sık kullanılan, oldukça basit bir veri formatıdır.

HTTP (Hyper Text Transfer Protocol) nedir?

HTTP bir protokoldür. Bu protokol kullanıcı-sunucu arasındaki kuralları belirler.

Şu an bu yazıyı okuyorsunuz. Okumak için bir bağlantıya tıkladınız. Mevcut sayfaya girdiğiniz anda sunucuya, “Ben bu sayfaya erişmek istiyorum.” diye bir istek gönderilir. Sunucu buna yanıt olarak kendi bünyesindeki sayfanın uygulamasını size gönderir ve siz görüntülersiniz.

HTTP, OSI’nin Uygulama Katmanında yer alır. OSI (Open Systems Interconnection) ağlarının/iletişim sistemlerinin birbirleriyle iletişim kurmasını sağlayan bir modeldir.

Request nedir?

Request (İstem/Talep), sizin başka ağ/sistem/sunucu ile iletişiminizde bilgi alma veya gönderme isteminizi belirtir.

Response nedir?

Response (Yanıt), kullanıcının iletişim istemine karşılıktır. Kullanıcının birey olmasına gerek yok, başka bir sistemde olabilir.

REST’in temel amacı, istemci ile sunucu arasındaki bağın ortak bir uçta/noktada/durakta bağlamaktır. Böylelikle istemci ve sunucu tarafında yapılanlar ayrılacaktır. Bu durum bizlere, modülerlik kazandırır. Modüllerin kendi içinde gelişmesi; hız, güvenirlik, performans ve ölçeklenebilirlik anlamında bize yardımcı olur. Depolamanın sorunlarını bertaraf ederek farklı platformlarda çalışabilirliği arttırmaktadır.

Bu durumun daha doğrusu durumsuzluğun kendi içinde işlem gördüğü ve diğer sistemlerle arasında doğrudan bağlantı olmadığı için dış sistemleri etkilemeden güncelleme yapabilmesi, üstünde durulması gereken bir konudur.

HTTP Request ve Response İçerikleri Nelerdir?

HTTP Request içeriği nedir?

  1. HTTP Versiyon Tipi
    ör:
    HTTP/0.9, HTTP/1.0, HTTP/1.1, HTTP/2, HTTP/3
  2. URL
    ör: https://medium.com/@sirricankomur
  3. HTTP Yöntemi/Fiili (HTTP Method/Verb)
    ör: GET, POST, PUT, HEAD, DELETE, PATCH, OPTIONS, CONNECT, TRACE
  4. HTTP İstem Başlıkları (HTTP Request Headers)
  5. İsteğe bağlı HTTP Gövdesi (HTTP Body)

HTTP Response içeriği nedir?

  1. HTTP Durum Kodu (Status Code)
    ör: 1xx, 2xx, 3xx, 4xx, 5xx
  2. HTTP Yanıt Başlıkları (Response Headers)
  3. İsteğe bağlı HTTP Gövdesi (Response Body)

Request ve Response İçeriklerine Nasıl Bakabilirim?

Bu içerikleri görebilmek için tarayıcıda sayfaya sağ tıklayıp “İncele” seçeneğine tıklayarak Geliştirme Ortamını açın. Ardından “Network” sekmesine tıklayınız. Bu sekme açıkken URL’ye gitmek istediğiniz sayfayı yazınız ve “Enter”a basınız. Geliştirme Ortamında, request ve response içeriklerine “Network” sekmesinin altındaki “Headers” sekmesinde ulaşabilirsiniz.

HTTP Metotları/Yöntemleri/Fiileri nelerdir?

GET Metodu

GET yöntemi, belirtilen kaynağın temsil edilmesini ister. GET istekleri yalnızca veri almak için kullanılır.

POST Metodu

POST yöntemi, belirtilen kaynağa bir varlık gönderir ve genellikle sunucuda bir değişikliğe neden olur. Bu değişiklik oluşturma, güncelleme vs. olabilir. Genellikle oluşturma işlemleri için kullanılır.

PUT Metodu

PUT yöntemi, POST metoduna benzerdir. Genellikle güncelleme işlemleri için kullanılır. POST ile farkı, mevcut temsilleri kullanarak bir istem gönderir. Ayrıca, POST kullanımı yeni kaynak ayırırken, PUT mevcut kaynağı kullanır.

HEAD Metodu

HEAD yöntemi, bir GET isteğiyle aynı, ancak yanıt gövdesi olmadan bir yanıt ister. Bu metodu genellikle büyük dosyaları indirmeden evvel kontrol için kullanırız.

DELETE Metodu

DELETE yöntemi, belirtilen kaynağı siler.

PATCH Metodu

PATCH yöntemi bir kaynağa kısmi değişiklikler uygular.

OPTIONS Metodu

OPTIONS yöntemi, hedef kaynak için iletişim seçeneklerini ister ve alır.

CONNECT Metodu

CONNECT yöntemi, hedef kaynak tarafından tanımlanan sunucuya çift yönlü bir tünel oluşturur.

TRACE Metodu

TRACE yöntemi, hedef kaynağa giden yol boyunca hata ayıklama amaçlı bir mesaj geri döngü testi gerçekleştirir.

HTTP Durum Kodları (Status Codes) nelerdir?

  1. Bilgilendirici yanıtlar (Informational responses) (100–199)
  2. Başarılı yanıtlar (Successful responses) (200–299)
  3. Yönlendirme mesajları (Redirection messages) (300–399)
  4. İstemci hata yanıtları (Client error responses) (400–499)
  5. Sunucu hata yanıtları (Server error responses) (500–599)

Öğrenmek ve öğretmek için çıktığım bu yolculukta, yazımı alkışlayarak bana destek olabilir misin?

Medium bizlere, her gönderi için 50 alkışa (clapping) kadar izin veriyor. Yazarlara destek olmak için beğendiğiniz kadar alkış atabilirsiniz.

--

--