URL Kullanımı
Url tarayıcıda internet sayfalarına erişmek için kullanılan alana yazılan web sayfalarının yolunu belirten metindir, bir Url belirli formatta yazılır;
URL formatı: "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
"http:" : Kullanılan protokolü belirtir. "https" diye bir şey çıkarsa karşınıza bu sunucu bilgisayarda ilgili site için "SSL" sertifikasının kullanıldığı anlamına gelir tek farkı daha güvenli client-server haberleşmesinin gerçekleştirilmesidir.
"//" : Kullanılan protokol ile sunucu(host) adresini ayırmak için kullanılır.
host [ ":" port ] : host, bir web sitesinin adresini belirtir(www.siteAdı.com gibi) ve port numarası ise sunucu bilgisayarda web sitesini görüntülemek için gelen isteklerin takip edildiği port numarasıdır, port numarası yazılmazsa varsayılan olarak 80 kabuledilir.
[ abs_path [ "?" query ]] : abs_path, sitenin alt sayfalarının yollarını ve [ "?" query ] kısmı ise Http protokolünde eğer "Get" metodu ile sunucuya istek yapılırsa URL kısmına eklenen verileri belirtmektedir.
Misal vermek gerekirse; bir tarayıcı(chrome, opera, firefox vb.) açın ve adres çubuğu kısmına
"http://www.trthaber.com" ya da "www.trthaber.com.tr/" ya da "http://www.trthaber.com.tr:80" ya da "www.TRTHABER.com.tr/"(burada trthaber sitesini öylesine seçtim) yazın ve sayfaya giriş yapın her seferinde aynı sayfa karşınıza gelecektir yani port numarasını ve "http" yazılmasa da varsayılan olarak tarayıcı arka tarafta sunucuya istek yollarken requeset mesajına bu bilgileri ekliyor.
Http Requests(İstek) Çalışma Mantığı
Http protokünde sunucuya istek yollarken kullanılabilecek 8 adet istek türü vardır ama istemcilerin bu request'lerin hepsini kullanmasına izin verilmez, bunun sebebi güvenlik içindir, bunlar;
1_) Get: Bu request isteğinde sadece Head kısmı bulunur ve sunucudan dosya istemek için kullanılır ve eğer request mesajına veri eklemek gerekiyorsa veriler URL'e eklenir.
2_) Post: Bu request isteğinde Head ve Body kısımları bulunur ve Get metoduna göre daha güvenli bir Http request yöntemidir. Head kısmında request'in temel bilgileri yeralır ve Body kısmında sunucuya gönderilecek olan verileri içeren bir .html dosyası bulunur.
3_) Head : Get ile yakın çalışır sadece "status line" ve "header section" verilerini almak için kullanılır. Bu request isteğinde sadece Head kısmı bulunur ve sunucu bu isteğe sadece Head kısmı bulunan bir response(cevap) ile karşılık verir.
4_) Put: Hedef kaynağın(Url) dosyalarını yollanan ile değiştirilmesini sağlar.
5_) Delete : Hedef kaynağın(Url) dosyalarını silmek için kullanılır.
6_) Connect : Url ile belirlenen sunucuya bir kanal oluşturmak için kullanılır.
7_) TRACE : Url yolu ile mesaj döngüsü testi yapmak için kullanılır.
8_) Options : Bir WEb sunucu tarafından desteklenen Http metodlarını öğrenmek için kullanılır.
*_) Get ve Post method'ları bir biri yerine kullanılabilir. Post metodu Head ve Body kısımları içerir, Get metodu ise sadece Head kısmını içerir. Request'lerin Head kısmında mesaj ile ilgili veriler bulunur, bu veriler Url bilgisi, kullanılan request metodu(yukarıda 8 tene olduğu belirtilmişti), kullanılan Http protokol sürüm bilgisi, mesajın ömrü vb. bilgilerden oluşmaktadır. Get metodu ile sunucuya bir request mesajı yollanırken eğer bir takım veriler de gönderilmek isteniyorsa bu veriler Url'ye eklenmek sureti ile gönderilmektedir, bunun nedeni ise Get metodunun Body kısmının olmamasıdır, yollanan veriler Url'e eklenince bu adres çubuğunde görünmektedir ve bu metod güvenlik açıkları barındırmaktadır önemli veriler bu metod ile sunucuya yollanmamalıdır. Bir Url en fazla 7607 karakterden oluşur.
![]() |
Request Message |
Get ve Post İşlemleri Nedir
Bir istemci(internete bağlanmak için tarayıcılar kullanılır ve aslında istemci kullanılan tarayıcı oluyor) sunucudan istekte bulunurken bu isteği web sayfalarını görüntülemek için yapar, bir web sayfasına girilebilmek için ya adres çubuğuna sitenin domain adı(bu sitenin adresidir "www.google.com.rt" gibi) girilmelidir ya da bir arama motoru kullanılmalıdır. "www.youtube.com" sitesine girelim youtube'ta ilk giriş sayfasında "html 'form' etiketlerinden 2 tane bulunuyor" bu etiketler arasında bulunan elemanlar bunlar "input" elemanları olur(input elemnalarının type ettribute'üne ne yazarsak o eleman olarak görünür eğer 'text' yazarsak metin kutusu olur, bu Html bilgisidir) sunucuya istek gönderirken kullanılır. "form" etiketinin method attribute(öz nitelik)'ü sunucuya yapılacak olan isteğin türünü belirtmek için kullanılır bu tür "get" ya da "post" olabilir, belirtilmezse "get" olarak kabuledilir. Sunucuya Http protokolü ile gönderilen mesaj'daki veriler sadece "form" etikiti içerisinde bulunan "input" elemanlarının verileridir ve bu "input" elemanlarının verileri "name" attribute'leri kullanılarak sunucuya gönderilir.
Yani tarayıcıda bulunan form etiketi içerisinde bulunan input etiketlerindeki veriler input elemanlarının "name" attribute'leri kullanılarak sunucuya yollanabiliyor, kullanılan metod Get ise veriler Url adresine ekleniyor, kullanılan metod Post ise veriler mesajın Body kısmına bir html dosyasına yazıldıktan sonra ekleniyor ve form submit edildiğinde sunucuya istek gönderiliyor, sunucu kendine gelen mesajdaki verileri html sayfasındaki input elemanlarının name özelliklerini kullanarak alıyor ve gerekli işlemleri yapıyor ve sonrasında istemciye sonucu bir mesaj olarak iletiyor, bu mesaj Get ve Post istekleri için çoğu zaman Head ve Body kısımlarını içerir ve tarayıcı istekten sonra sunucunun kendisine gönderdiği mesajı yorumlar ve istenen web sayfasını görüntüler.
Bu anlattıklarımı resimlerle bir örnek üzerinden adım adım anlatacağım. Youtube sitesinde arama alanıma bir yazı yazıp butona basıldığında neler olduğunu ifade etmeye çalışacağım;
1_) www.youtube.com sayfasına giriş yapalım ve Trendler saylası açıldı(bu yapılmasa da olur);
2_) Chrome tarayıcı kullanılarak "f12" ile "Developer Tools" açıldı ve burada "Ctrl + F" basılarak "
3_) "form" etiketi içinde bulunan "input" elemanının tipi "text" ve arama alanı kısmını oluşturuyor, "name" özelliği "search_guery" kullanılarak aranmak istenen veri sunucuya gönderiliyor. "form" elemanı "GET" metodunu kullanıyordu biz arama alanına "doğa" yazalım ve ara butonuna basalım ve sayfa submit olsun(sunucuya gitsin), burada arama verisi Url'ye eklenecektir(Get metodu kullanıldığı için) ve arama yaptığımızda;
4_) "https://www.youtube.com/results?search_query=doğa" şeklinde bir Url karşımıza geliyor eğer burada POST metodu kullanılsaydı "?search_query=doğa" kısmı olmayacaktı, get metodu request isteğinde sadece Head kısmı barındırdığı için get metodu ile sunucuya veri göndermek istendiğinde yollanacak veriler Url kısmına eklenerek sunucuya gönderiliyor ama bu yöntem pek güvenli olmadığından hashas veriler bu şekilde yollanmamalı bunun yerine Post tercihedilmelidir ve Url uzunluğu en fazla 1706 karakter olabiliyor.
Sunucu aranmak istenen kelimeyi(bu örnekte 'doğa') aldı ve arka tarafta( hangi programlama dili ve teknoloji kullanılarak geliştirme yaptılarsa araştırmak lazım!) kullanılan programlama dili arama yapılan kelimeyi aldı veri tabanında aradı ve geriye cevap olarak bir Http response gönderdi bu mesajda hem Head hem de Body kısmı var tarayıcımız bu mesajı çözümledi ve alttaki sayfayı gösterdi bize.
Sonuç olarak bir web sitesinin iki kısmı vardır; biri her kes tarafından görüntülenen UI(User Interface, Kullanıcı Arayüzü) ki tarayıcı ile görüntülenen kısım burasıdır ve diğer kısım ise sunucu üzerinde çalışan kısmı ki bu kısım tarayıcılardan ilgili web sayfası için gelen istekleri yorumlar ve ilgili backend işlemlerini yaparak sunucuda görüntülenecek sayfaları ve kullanılacak dökümanları(resim, .css, .js vb. dosyaları) tarayıcıya Http protokolünü kullanarak gönderir.
Burada Http protokolünün basit bir şekilde nasıl çalıştığı Get ve Post metodları açıklanmak sureti ile anlatlmaya çalışılmıştır.
0 yorum