HTTP İstek Metotları Nelerdir?

HTTP Nedir? Nasıl Çalışır?

HTTP temelde World Wide Web (www) için istemci — server veri iletişiminin temelini (protokolünü, kurallarını) oluşturarak, web sayfalarında yer alan hiper metin bağlantılarını (hypertext links) kullanarak web sayfalarını yüklemek için kullanılır.

Tipik bir HTTP akışı, bir sunucuya istekte bulunan istemci (genellikle web tarayıcı) ve ardından bir yanıt mesajı döndüren sunucuyu (server) içerir.

HTTP akışı içerisinde sunucu ve istemci birbirine gönderdikleri istek mesajları, yanıtlar üzerinden iletişim sağlar.

  • İstemci tarafından bir kaynağı almak için gönderilen mesajlar istek (request) ve sunucu tarafından gönderilen isteğe döndürülen cevaplar yanıt (response) olarak adlandırılır.
http://www.steves-internet-guide.com/http-basics/

Temel HTTP Bileşenleri Nelerdir?

  • user-agent (istemci aracısı)
  • proxy (vekil sunucular)
  • web serverlardır (sunucular)

İstemciden web serverlara (sunuculara) iletilen istekler user-agent (istemci aracısından) yada istemci aracısı ile sunucu arasında bir vekil ikincil sunucu görevi gören proxyler üzerinden iletilir.

Tipik istemci aracısı genellikle web browserlar yani kullanıcıların internet tarayıcılarıdır ancak bir web servera istek yalnızca reel kullanıcı user-agentlarından iletilmez. Web de tarama gerçekleştiren bot (örümcekler) yada çeşitli istek gönderebilen uygulamalarda user-agent olarak istek oluşturabilir.

İstemciden gönderilen istekler (reel kullanıcı user-agent’ı olup olmaması fark etmeksizin) ilgili serverlara iletilir ve yetkili serverlar istekler ile alakalı yanıtlar döndürür. İstemci tarafından gönderilen istek, kaynakların barındırıldığı sunucudan önce vekil görevi gören başka bir proxy sunucusuna oradan da ana sunucuya iletilebilir. Bu tarz bir senaryoda ana sunucudan dönen yanıtlarda istemciye gitmeden önce proxy yani vekil sunucuya gider.

  • Proxy sunucusuna örnek olarak cloudflare proxy serverlar örnek verilebilir.

Proxy serverlar ana sunucuların güvenlik amacıyla gizlenmesi, istek ve yanıtların cachelenerek istemci — server iletişiminin hızlanması gibi süreçlerde görev alırlar.

– İstemci (User-Agent)

  • HTTP akışı içerisinde gerçekleşen istemci server iletişiminde istemci tarafında user-agent rolünü genellikle tarayıcılar üstlenir ve istemci adına bir web sayfasına ulaşmak amacıyla servera yada serverın vekil sunucusu görevi gören proxy servera istek gönderir.
  • İstek proxy sunucu tarafından alınmış ise isteğin gönderildiği web sayfası ile alakalı bilgilere erişilmek üzere alınan istek ana sunucuya gönderilebilir yada istek gönderilen kaynağa ilişkin bir önbellek (cache) proxy sunucusunda mevcut ise önbelleğin güncelliği kontrol edilip yanıt döndürülür.
  • Proxy sunucuda herhangi bir önbellek mevcut değil ise istek gönderilen kaynak ile alakalı talep ana sunucuya iletilir. Proxy (vekil) bir sunucunun kullanılmadığı durumda istemci istekleri doğrudan web sayfasının barındırıldığı ana sunucuya gider. İstemci — server iletişiminde DNS serverları gibi çok çeşitli serverlarda farklı görevler üstlenir ancak temelde HTTP istemci (user-agent) — server veri alışveriş modeli basitleştirilmiş hali ile bu şekildedir.
  • İstemci (user-agent) tarafından erişilmek üzere istek gönderilen web sayfası ile alakalı HTML dokümanı içeren yanıt, sunucu tarafından web tarayıcıya iletilir ve web tarayıcı ilgili kaynağı parse ederek (ayrıştırarak, işleyerek) sayfayı oluşturan ekstra kaynaklar ile alakalı yeni istekler gönderir.
  • İstek gönderilen web sayfasını oluşturan CSS, JS, resimler vb sayfa üstü statik kaynaklarda HTTP istek — yanıt akışı ile elde edilir ve web sayfası buna göre oluşturulur.

NOT: İstemci tarafından erişilmek üzere istek gönderilen web sayfalarının tümü için HTTP 200 (OK) yanıt kodu döndürülemeyebilir. İstek gönderilen kaynak yönlendirildiyse (301,302,307), silindiyse (HTTP 404,410) yada sunucu kaynaklı bir hata söz konusu ise HTTP (500 ve türevi) yanıt kodları sunucu tarafından döndürülebilir.

– Web Server (Web Sunucuları)

HTTP isteği gönderilen bir dokümanın kaynaklarının birden fazla sunucuda barındırılması ve istek sonrası kaynakların farklı farklı sunuculardan çekilerek yüklenmesi mümkündür. Bir veya birden fazla sunucu tek bir web sayfasını yada web sayfasının belirli bölümlerini oluşturabilir.

– Proxy (Vekil Sunucular)

Proxyler, ara sunucular olarak istemciden gelen isteklerin doğrudan iletilmesinde, filtrelenmesinde, yetkilendirilmesinde, istek yükünün dağıtılmasında ve önbelleklenmesinde görev alabilirler. Üstlendikleri göreve göre HTTP başlıklarında açık olarak görüntülenebilir yada gizli kalabilirler.

HTTP Mesajları Nedir?

HTTP veri alışverişi sürecinde gerçekleşen iki tip mesaj grubu vardır. Bunlar:

  • HTTP İstek Mesajları (Request): Sunucuda bir eylemi tetiklemek için istemci tarafından gönderilen isteklere ait mesajlardır.
  • HTTP Yanıt Mesajları (Response): HTTP isteklerine verilen yanıtlar ; Sunucu tarafından gönderilen isteklere verilen yanıtlar ve sunucunun gönderdiği yanıta istemcinin verdiği yanıtlar.

HTTP İsteği Nedir?

İstemciden gönderilen HTTP istek mesajları, isteklerin kapsamı ile alakalı veriler kodlanmış (encoded) şekilde internet ağı üzerinden yetkili, aracı sunuculara aktarılır.

Bir HTTP isteği birden çok bileşenin birleşimi ile oluşur.

Bunlar:

  1. HTTP istek satırı
  2. URL — İstemci, istekte bulunmak ve kaynağa erişmek için gereken bilgileri içeren bir URL’nin bileşenlerini kullanır. Bir URL’nin bileşenleri, erişilmek istenilen kaynağı açıklar. (URL Bileşenleri: HTTP Schema (HTTP — HTTPS), Domain (Host), URL Yolu (Path), Söz dizimi (parametreler))
  3. HTTP versiyonu ( Örn: HTTP 1/1, 2 yada 3)
  4. HTTP metodu (GET, POST vb)
  5. HTTP istek başlığı (HTTP Request Header)
  6. HTTP İstek Gövdesi (HTTP Request Body) — HTTP istek gövdesi opsiyoneldir.

HTTP İstek Metodları

İstemci isteğin gönderildiği sunucuda yapmak istediği işlemi methodlar aracılığı ile HTTP mesajlarını kullanarak aktarır.

Klasik bir HTTP akışında gönderilen HTTP istek metoduna (yöntemine) bağlı olarak sunucu, genellikle istemciye bir HTML dokümanını istek çıktısı olarak döner.

Sunucu gönderilen HTTP isteğine bağlı olarak her zaman bir çıktı dönmek durumunda da değildir. İstemciden gönderilen istek ile sunucu üzerindeki bir verinin silinmesi, güncellenmesi gibi talepler iletilebilir.

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE
  • PATCH
  • OPTIONS
  • CONNECT
  • TRACE

En yaygın iki HTTP yöntemi şunlardır: GET ve POST.

GET Metodu

GET, belirli bir kaynaktan veri istemek için kullanılır.

  • GET istekleri önbelleğe alınabilir.
  • GET istekleri tarayıcı geçmişinde kalır.
  • GET istekleri yer imlerine eklenebilir.
  • Hassas verilerle uğraşılırken GET istekleri asla kullanılmamalıdır.
  • GET isteklerinin uzunluk kısıtlamaları vardır.
  • GET istekleri yalnızca veri istemek için kullanır.

POST Metodu

POST, bir kaynak oluşturmak/güncellemek için bir sunucuya veri göndermek için kullanılır.

POST ile sunucuya gönderilen veriler, HTTP isteğinin istek gövdesinde saklanır.

  • POST istekleri asla önbelleğe alınmaz.
  • POST istekleri tarayıcı geçmişinde kalmaz.
  • POST istekleri yer imlerine eklenemez.
  • POST isteklerinin veri uzunluğu konusunda herhangi bir kısaltması yoktur.

Aşağıdaki Tabloda GET ve POST’u karşılaştıralım:

PUT Metodu

PUT, bir kaynak oluşturmak/güncellemek için bir sunucuya veri göndermek için kullanılır.

POST ve PUT arasındaki fark, PUT isteklerinin önemsiz olmasıdır. Yani, aynı PUT isteğini birden çok kez çağırmak her zaman aynı sonucu verir. Buna karşılık, bir POST isteğini art arda çağırmak, aynı kaynağı birden çok kez oluşturmanın yan etkilerine sahiptir.

HEAD Metodu

HEAD, GET ile neredeyse aynıdır, ancak yanıt gövdesi yoktur.

Başka bir deyişle, GET /users bir kullanıcı listesi döndürürse, HEAD /users aynı isteği yapacak ancak kullanıcı listesini döndürmeyecektir.

HEAD istekleri, büyük bir dosya veya yanıt gövdesini indirmeden önce olduğu gibi, gerçekten bir GET isteği yapmadan önce bir GET isteğinin ne döndüreceğini kontrol etmek için kullanışlıdır.

DELETE Metodu

DELETE, belirtilen kaynağı siler.

PATCH Metodu

PATCH, bir kaynağa kısmi değişiklikler uygulamak için kullanılır.

OPTIONS Metodu

OPTIONS, hedef kaynak için iletişim seçeneklerini açıklar.

CONNECT Metodu

CONNECT, istenen kaynakla iki yönlü bir iletişim (bir tünel) başlatmak için kullanılır.

TRACE Metodu

TRACE, hedef kaynak için yolu test eden bir mesaj geri döngü testi gerçekleştirmek için kullanılır.

  • Hata ayıklama amaçları için kullanışlıdır.

More Reading

Post navigation