Tarayıcıda, adres çubuğuna “http://peptr.net” yazıp “enter” dediğinizde, arka planda neler döndüğünü merak ettiniz mi? İşte bu yazı, sizin bu merakınızı gidermek için yazıldı. Haydi başlayalım.

HTTP Nedir?

HTTP (Hypet Text Transfer Protocol / Hiper Metin Transferi Protokolü), verileri bir makineden başka bir makineye internet üzerinden aktarmak için geliştirilen metin tabanlı iletişim stratejisidir.

Yani siz tarayıcıda “http://peptr.net” yazıp “enter” dediğinizde, arka planda tarayıcınız sizin için bir HTTP isteği oluşturur ve bunu sunucuya iletir. Sunucudan gelen yanıta göre de size anlamlı bir safa oluşturur.

Metin tabanlı dememizin sebebi, giden ve gelen bu isteklerin kullanıcı tarafından da okunabilir olmasıdır.

İsteklerin Anatomisi

Bir HTTP isteği oluştururken belli bir yapıya ihtiyaç duyuyoruz. Bunlar:

    • Method (Yöntem): İsteğin türü (GET, POST, PUT vs.)
    • Host (Sunucu): İsteğin yapılacağı adres.
    • Path (Yol): Sunucuda ziyaret edilecek yol.
    • HTTP Version: Versiyon işte :
  • Headers (Başlıklar): İsteği yapan bilgisayar / tarayıcı bilgileri.
  • Query String (Argümanlar): Ek gönderilen parametreler.
  • Body (İçerik): İsteğin içeriği.

Başında yıldız olanlar, bizim olmazsa olmazlarımız. Diğerleri, olmasa da olur. Şimdi, tarayıcıda yaptığımız bir istek arka planda nasıl işliyor görelim.

Örnek Link: https://blog.peptr.net/?s=docker

Yukarıda ki link blogda Docker ile alakalı yazıları getiriyor. Şimdi bunu inceleyelim, bakalım sunucuya ne tür bir istek gitmiş.

GET /?s=docker HTTP/2
Host: www.blog.peptr.net
User-Agent: my-user-agent
  1. satır yöntemi (GET), Yolu (/), Parametreleri (s=docker) ve HTTP versiyonunu işaret ediyor (HTTP/2)
  2. satır isteğin yapılacağı adresi işaret ediyor.
  3. satır tarayıcı ve bilgisayar bilgilerini içeriyor.

HTTP İstek Türleri

Bir HTTP isteği yapıldığında mutlaka isteğin türü/yöntemi/methodu da belirtilmelidir. Bu yöntemler isteğin hangi amaçla yapıldığını belirtir.

GET: Sunucudan veri alınırken bu yöntem kullanılır.
POST: Sunucuya veri yollanırken bu yöntem kullanılır.
PUT: Sunucuda ki bir veri güncellenirken bu yöntem kullanılır.
DELETE: Sunucuda ki bir veri silinirken bu yöntem kullanılır.

GET ve POST en çok kullanılanları. Diğer yöntemler için bu linki kullanabilirsiniz.

Sorgu Dizesi ve İstek Gövdesi

Bazen isteklere ek parametreler eklememiz gerekebilir. Örneğin giriş yapmak için kullanıcı adı ve şifre bilgilerimizi göndermemiz gerekebilir. Burada bilgileri ya sorgu dizeleri aracılığı ile yada istek gövdesinde gönderiyoruz.

GET /search?q=test&z=peptr HTTP/2
Host: blog.peptr.net

Örneğin burada, search isimli sayfaya q parametresi ile test, z parametresi ile peptr değerlerini gönderdik.

Not: Sorgu dizeleri, istisnai durumlar haricinde GET yönteminde kullanılır.

Eğer ki istek gövdesinde değerlerimizi göndermek istiyorsak o zaman yapı aşağıda ki hale geliyor.

POST /admin HTTP/2
Host: blog.peptr.net

{"username": "yeg", "password": "test"}

Bu şekilde de isteğin gövdesinde kullanıcı adı ve şifreyi gönderebildik. Görebildiğiniz gibi bu da genellikle POST işleminde kullanılan yöntem.

Yazımız burada sona eriyor, kafanıza takılan kısımları yorum olarak ekleyebilirsin.