İstemci (Client) Nedir? İstekten Yanıta Çalışma Mantığı
İstemci (client), bir ağdaki sunucudan veri veya hizmet isteyen ve sunucunun yanıtını kullanıcıya ya da başka bir programa sunan yazılım veya cihazdır. Web tarayıcısı, mobil uygulama ve e-posta programı istemciye; web sunucusu, e-posta sunucusu ve veritabanı sunucusu hizmet sağlayıcıya örnektir. İstemci-sunucu ilişkisinde istemci isteği başlatır, sunucu isteği işler ve yanıt gönderir.
Bu yazıda (8)
- ›İstemciyi belirleyen şey cihaz değil, üstlendiği roldür
- ›Bir web sayfası açılırken gerçekleşen 5 aşama
- ›Tarayıcı, mobil uygulama ve e-posta programı neden istemcidir?
- ›İnce istemci ile güçlü istemci arasındaki görev paylaşımı
- ›İstemci, sunucu, DNS ve tarayıcı arasındaki farklar
- ›Çözümlü örnek: Tarayıcıdan bir haber sayfasına erişim
- ›Çözümlü örnek: Aynı bilgisayar ne zaman istemci, ne zaman sunucudur?
- ›Sık yapılan hatalar ve sınır durumları
İstemci (Client) Nedir? İstekten Yanıta Çalışma Mantığı
İnternette bir web sitesini açmak, hava durumu uygulamasını yenilemek, e-posta göndermek veya çevrim içi bir oyuna bağlanmak tek bir cihazın yaptığı işlem gibi görünür. Oysa bu işlemlerde genellikle en az iki rol vardır: hizmeti isteyen istemci ve veriyi ya da işlemi sağlayan sunucu.
İstemci kavramını anlamak, yalnızca bilgisayar ağlarını öğrenmek için değil, web tarayıcısının, mobil uygulamaların ve çevrim içi hizmetlerin nasıl çalıştığını kavramak için de önemlidir. Burada kritik nokta şudur: İstemci her zaman yalnızca fiziksel bir bilgisayar anlamına gelmez. Bir tarayıcı gibi yazılım da istemci olabilir; telefon, tablet veya bilgisayar gibi donanım da belirli bir iletişimde istemci rolünü üstlenebilir.
Bu nedenle 'istemci nedir?' sorusunun yanıtı, cihazın adına değil, iletişimdeki görevine bakılarak verilir. Bir cihaz bir işlemde istemci, başka bir işlemde sunucu olabilir.
İstemciyi belirleyen şey cihaz değil, üstlendiği roldür
İstemci (client), bir sunucuya bağlanarak belirli bir hizmeti kullanmak veya verilere erişmek isteyen taraftır. İstemci; bilgisayar, telefon, tablet gibi bir donanım ya da web tarayıcısı, mobil uygulama, e-posta yazılımı ve veritabanı aracı gibi bir yazılım olabilir.
Bir bileşeni istemci olarak tanımlamak için üç soruya bakılabilir:
- Başka bir sistemden veri veya hizmet talep ediyor mu?
- Bu talebi bir ağ üzerinden iletiyor mu?
- İletişim, istemci-sunucu modeli içinde mi yürütülüyor?
Bir sistem başka bir sistemden hizmet ya da veri talep ediyor ve bu talep istemci-sunucu iletişimi içinde yürütülüyorsa istemci rolündedir. Yanıtın kullanıcıya gösterilmesi istemci olmanın zorunlu koşulu değildir. Örneğin bir web tarayıcısı, kullanıcının seçtiği web sayfasını talep eder ve sunucudan gelen HTML, CSS, görsel veya başka içerikleri işleyerek sayfayı ekranda oluşturur.
Sunucu ise istemcinin talebini karşılayan taraftır. Sunucunun görevi yalnızca veri göndermek değildir; gelen isteği değerlendirebilir, gerekli veriyi bulabilir, bir işlem gerçekleştirebilir ve ardından istemciye yanıt döndürebilir. Dolayısıyla istemci 'isteyen', sunucu ise 'sağlayan ve işleyen' roldür.
Ancak bu ayrım cihazlar arasında değişmez bir etiket değildir. Aynı bilgisayar bir web sitesine bağlanırken istemci olabilir; kendi üzerindeki dosya paylaşım hizmetini başka bilgisayarlara açtığında ise sunucu rolü üstlenebilir. Bu durum, istemci ve sunucu kavramlarının fiziksel cihaz adından çok iletişimdeki işleve bağlı olduğunu gösterir.
Bir web sayfası açılırken gerçekleşen 5 aşama
İstemci-sunucu iletişimi basitçe 'talep et ve yanıt al' mantığıyla açıklanabilir. Bir web sayfasına erişim örneğinde süreç 5 temel aşamada incelenebilir:
-
İstek hazırlanır: Kullanıcı tarayıcıya bir web adresi yazar veya bir bağlantıya tıklar. Tarayıcı, istenen kaynağa erişmek için uygun ağ isteğini oluşturur. Web iletişiminde bu istek HTTP ya da HTTPS gibi protokollere göre hazırlanır.
-
Hedef bulunur: İstemcinin bağlanacağı sunucunun ağ üzerindeki adresine ulaşılması gerekir. Alan adı kullanılıyorsa DNS, bu alan adının karşılık geldiği IP adresini bulma sürecinde rol oynar. IP adresi, ağdaki hedefi tanımlamak için kullanılan adres bilgisidir.
-
İstek sunucuya iletilir: Hazırlanan istek ağ üzerinden hedef sunucuya gönderilir. İsteğin içinde hangi kaynağın istendiği ve iletişim için gerekli diğer bilgiler bulunabilir.
-
Sunucu yanıt üretir: Sunucu isteği alır, işler ve uygun bir yanıt hazırlar. Bu yanıt, bir web sayfasının metinlerini, görsellerini, stil dosyalarını veya başka verileri içerebilir. İstenen kaynak bulunamadığında ya da sunucu isteği karşılayamadığında yanıtın niteliği farklılaşabilir.
-
İstemci yanıtı işler: Tarayıcı, sunucudan gelen verileri doğrudan ham biçimde bırakmaz; bunları yorumlayarak kullanıcıya görüntüler. Böylece kullanıcı, arka plandaki istek ve yanıt trafiği yerine oluşturulmuş web sayfasını görür.
Bu 5 aşamanın her birinde farklı bir sorun oluşabilir. DNS çözümlemesi başarısızsa doğru sunucuya ulaşılamayabilir; ağ bağlantısı yoksa istek gönderilemeyebilir; sunucu yanıt üretmezse istemci bekleyebilir; tarayıcı yanıtı işleyemezse veri gelmiş olsa bile sayfa beklenen biçimde görüntülenmeyebilir. Bu nedenle 'site açılmıyor' sorunu her zaman yalnızca istemciden veya yalnızca sunucudan kaynaklanmaz.
Tarayıcı, mobil uygulama ve e-posta programı neden istemcidir?
İstemci türü, kullanılan hizmete göre değişir. En görünür örnek web tarayıcısıdır. Chrome, Firefox veya Edge gibi tarayıcılar web sunucularından sayfa talep eder; gelen içeriği yorumlar ve kullanıcıya bir arayüz olarak sunar. Bu yüzden tarayıcı, web istemcisi olarak değerlendirilebilir.
Ağ üzerinden çalışan bir mobil uygulama da istemci rolü üstlenebilir. Örneğin sosyal medya veya hava durumu uygulaması, hizmetin verilerini kendi içinde üretmek yerine ilgili sunucudan talep edebilir. Uygulama, sunucudan aldığı veriyi kullanıcıya sıcaklık, gönderi listesi veya başka bir arayüz biçiminde gösterir. Burada telefonun kendisi, uygulama ve sunucu arasında görev paylaşımı vardır; istemci rolünü özellikle sunucuyla iletişim kuran uygulama üstlenir.
E-posta istemcileri de benzer biçimde e-posta sunucularıyla iletişim kurar. Outlook veya Thunderbird gibi programlar, e-postaları almak, göndermek ve kullanıcıya göstermek için sunucu hizmetlerinden yararlanır. Programın ekranda bir gelen kutusu göstermesi, arka plandaki sunucu iletişiminin istemci tarafından kullanıcıya anlaşılır hâle getirildiğini gösterir.
Çevrim içi oyun istemcileri; oyun sunucularından güncellemeleri, çevrim içi oturum bilgilerini veya çok oyunculu deneyim için gerekli verileri talep edebilir. Veritabanı istemcileri ise bir veritabanı sunucusuna bağlanarak sorgulama ve veri yönetimi işlemlerinin yapılmasını sağlar.
Bu örneklerin ortak özelliği, kullanıcı arayüzünün bulunması değil, başka bir sistemden hizmet veya veri talep etmeleridir. Bu nedenle bir yazılımın istemci olup olmadığını anlamak için adına değil, hangi sisteme istek gönderdiğine bakılmalıdır.
İnce istemci ile güçlü istemci arasındaki görev paylaşımı
İnce istemci (thin client), işlemlerin ve veri depolamanın önemli bölümünü merkezi bir sunucuya bırakan istemci yaklaşımıdır. Bu tür istemcide yerel cihazın görevi daha sınırlı olabilir: sunucuya bağlantı kurmak, kullanıcı girdilerini iletmek ve sunucudan gelen uygulama görüntüsünü kullanıcıya sunmak.
Bu modelde uygulamanın çalıştırılması ve verilerin saklanması ağırlıklı olarak sunucu tarafında gerçekleşir. İstemci cihazın işlem gücü ve yerel depolama ihtiyacı daha düşük olabilir; buna karşılık istemci ile sunucu arasındaki bağlantı, hizmetin kullanılabilmesi açısından önem kazanır.
Buna karşılık daha fazla işlemi kendi üzerinde yapan bir istemci, sunucudan aldığı veriyi yerel olarak işleyebilir. Örneğin bir uygulama, sunucudan aldığı verileri cihazda görüntüleme, sıralama veya kullanıcı arayüzüne dönüştürme işlemlerinin bir bölümünü yapabilir. Bu iki yaklaşım arasında kesin bir cihaz sınıflandırması yapmak yerine, iş yükünün nerede gerçekleştiğine bakmak daha doğrudur.
İnce istemci kavramı 'istemci hiçbir işlem yapmaz' anlamına gelmez. İnce istemcinin de bağlantıyı kurması, kullanıcı girdilerini iletmesi ve gelen çıktıyı göstermesi gerekir. Ayrıca uygulamanın hangi bölümünün istemcide, hangi bölümünün sunucuda çalıştığı hizmete göre değişebilir. Bu nedenle 'tüm işlem gücü mutlaka sunucudadır' ifadesi yerine, 'işlem ve depolamanın büyük bölümü merkezi sunucuya bırakılır' demek daha isabetlidir.
İstemci, sunucu, DNS ve tarayıcı arasındaki farklar
Bu kavramlar aynı iletişim zincirinin farklı parçalarını ifade eder:
- İstemci: Hizmet veya veri isteyen taraftır. Tarayıcı ve ağ üzerinden çalışan mobil uygulama buna örnektir.
- Sunucu: İstemcinin isteğini karşılayan, veriyi sağlayan veya istenen işlemi gerçekleştiren taraftır.
- Tarayıcı: Web içeriklerine erişmek ve bu içerikleri görüntülemek için kullanılan bir istemci yazılımıdır. Her istemci tarayıcı değildir; e-posta programı da istemci olabilir.
- DNS: Alan adını ilgili IP adresiyle eşleştirme sürecinde kullanılan sistemdir. DNS, istemcinin sunucuya erişmesine yardımcı olur; istemcinin kendisi değildir.
- IP adresi: Bir cihazın veya ağ arayüzünün adresidir. Bu adresi kullanan cihaz ya da yazılım, yaptığı iletişime göre istemci veya sunucu rolü üstlenebilir.
- Web (WWW): İnternet üzerinde web sayfaları ve bağlantılı içeriklerle çalışan hizmetler bütünüdür. İnternet ile Web aynı kavram değildir; Web, internet altyapısını kullanan hizmetlerden biridir.
- HTTP ve HTTPS: İstemci ile web sunucusu arasındaki web iletişiminin kurallarını belirleyen protokol ailesidir. HTTPS, HTTP iletişiminin güvenli bağlantı mekanizmalarıyla kullanıldığı biçimdir.
Bu ayrım özellikle sınav sorularında önemlidir. 'İstemcinin adresini bulur' ifadesi istemciyi değil DNS'in rolünü; 'web sayfasını ekranda gösterir' ifadesi çoğunlukla tarayıcının rolünü anlatır. 'Veriyi talep eden' ifadesi ise istemciyi işaret eder.
Çözümlü örnek: Tarayıcıdan bir haber sayfasına erişim
Verilenler: Kullanıcı bir tarayıcı açıyor, bir web adresine gidiyor ve sayfanın ekranda görüntülenmesini bekliyor. Bu senaryoda istemciyi, sunucuyu ve iletişim sırasını belirleyelim.
Çözüm adımları:
-
İstemciyi belirle: Kullanıcının kullandığı tarayıcı, web sayfasını talep eden yazılımdır. Bu nedenle bu iletişimde istemci tarayıcıdır.
-
Sunucuyu belirle: Web sayfasının içeriklerini sağlayan ve tarayıcıdan gelen isteği işleyen sistem, web sunucusudur. Sunucu; sayfanın HTML içeriğini, görsellerini veya gerekli diğer dosyalarını gönderebilir.
-
Adres çözümleme aşamasını ayır: Kullanıcı bir alan adı yazdıysa, istemcinin hedef sunucunun IP adresine ulaşmasında DNS rol oynar. DNS, sayfanın içeriğini sağlayan sunucu değildir; hedef adresin bulunmasına yardımcı olan ayrı bir bileşendir.
-
İstek-yanıt ilişkisini kur: Tarayıcı sayfa isteğini gönderir, sunucu bu isteği işler ve yanıtı yollar. Tarayıcı yanıtı alıp yorumlar.
-
Sonucu açıkla: Ekranda haber sayfasının görünmesi, istemcinin sunucudan aldığı verileri kullanıcı arayüzüne dönüştürmesiyle gerçekleşir.
Sonuç: Bu senaryoda tarayıcı istemci, web sunucusu hizmet sağlayan taraf, DNS ise sunucu adresine ulaşma sürecinde yardımcı olan sistemdir. İnternet bağlantısının bulunması tek başına sayfanın görüntüleneceğini garanti etmez; DNS, ağ, sunucu ve istemcinin yanıtı işleme aşamalarından herhangi biri sorunlu olabilir.
Çözümlü örnek: Aynı bilgisayar ne zaman istemci, ne zaman sunucudur?
Verilenler: Bir bilgisayar aynı anda bir web sitesini açıyor ve kendi üzerinde dosya paylaşım hizmeti çalıştırıyor. Bu bilgisayarın tek bir rolü olup olmadığını inceleyelim.
Çözüm adımları:
-
Web sitesine erişimi değerlendir: Bilgisayar, başka bir sistemde bulunan web sayfasını talep ediyor. Bu işlem sırasında bilgisayar istemci rolündedir.
-
Dosya paylaşımını değerlendir: Aynı bilgisayar, başka cihazların erişmesi için kendi üzerindeki dosyaları bir hizmet aracılığıyla sunuyor. Bu işlem sırasında bilgisayar sunucu rolündedir.
-
Rolleri birbirinden ayır: İstemci ve sunucu rolleri cihazın bütününe kalıcı olarak atanmış değildir. Aynı cihaz, farklı bağlantılarda farklı görevler üstlenebilir.
-
İletişim yönünü kontrol et: Veriyi veya hizmeti isteyen taraf istemci; isteği karşılayan taraf sunucudur. Bu ayrım, cihazın masaüstü, dizüstü ya da telefon olmasından bağımsızdır.
Sonuç: Bilgisayar aynı anda hem istemci hem de sunucu olabilir. 'Sunucu yalnızca büyük ve ayrı bir makinedir' düşüncesi, istemci-sunucu modelinin rol temelli yapısını gözden kaçırır.
Sık yapılan hatalar ve sınır durumları
-
İstemciyi yalnızca cihaz sanmak: İstemci rolünü yazılım da üstlenebilir. Tarayıcı, e-posta programı ve veritabanı aracı bunun örnekleridir.
-
Tarayıcı ile istemciyi eş anlamlı kullanmak: Tarayıcı bir istemci türüdür; fakat istemci kavramı e-posta istemcilerini, oyun istemcilerini ve başka ağ yazılımlarını da kapsar.
-
Sunucunun her zaman ayrı bir bilgisayar olduğunu düşünmek: Bir bilgisayar belirli bir hizmeti başka cihazlara sunduğunda sunucu rolü üstlenebilir. Aynı cihaz başka bir hizmeti talep ederken istemci olabilir.
-
DNS'i sunucu sanmak: DNS, alan adını IP adresiyle eşleştirme sürecinde görev alır. Web sayfasının içeriğini sunan asıl web sunucusuyla aynı rolü taşımaz.
-
IP adresini istemciyle karıştırmak: IP adresi, ağdaki bir hedefin adres bilgisidir. Bir IP adresine sahip cihazın istemci mi sunucu mu olduğu, yaptığı iletişime göre belirlenir.
-
İstemci-sunucu modelini yalnızca web sayfalarıyla sınırlamak: E-posta, çevrim içi oyun, mobil uygulama ve veritabanı işlemleri de istemci-sunucu iletişimine örnek olabilir.
-
İnce istemciyi 'işlem yapmayan cihaz' sanmak: İnce istemci, iş yükünün önemli bölümünü sunucuya bırakır; bağlantı kurma, kullanıcı girdisini iletme ve çıktıyı gösterme gibi görevler yine istemci tarafında gerçekleşebilir.
-
Her bağlantı sorununu istemciye bağlamak: İstek istemciden çıksa da sorun DNS çözümlemesinde, ağ bağlantısında, sunucuda veya yanıtın işlenmesinde olabilir. Sorun giderirken 5 aşamalı iletişim zinciri ayrı ayrı incelenmelidir.
Telefonunuzdaki hava durumu uygulamasını açıp bulunduğunuz konumun verilerini yenilediğinizde uygulama istemci gibi davranır. Uygulama, hava durumu hizmetinin sunucusundan güncel veriyi ister; sunucu yanıtı gönderir; uygulama da bu ham veriyi sıcaklık ve yağış bilgileri gibi anlaşılır alanlara dönüştürerek ekranda gösterir. Uygulamanın ekranı istemcinin kullanıcıya sunduğu sonuçtur; verinin kaynağı ise sunucu tarafındaki hizmettir.
TYT/AYT düzeyinde bilişim veya ağ sorularında önce 'veriyi kim istiyor, kim sağlıyor?' sorusunu sorun. Veriyi talep eden taraf istemci, talebi karşılayan taraf sunucudur. Tarayıcı istemciye örnektir; DNS ise alan adı ile IP adresi arasındaki eşleştirmede rol oynar ve istemciyle aynı kavram değildir. Bir cihazın aynı anda hem istemci hem sunucu olabileceğini, rolün cihaza değil yapılan iletişime bağlı olduğunu unutmayın. Web sayfası örneğinde sıralamayı 5 adımla hatırlayabilirsiniz: istek hazırlanır, hedef bulunur, istek iletilir, sunucu yanıt üretir, istemci yanıtı işler.
Sık sorulan sorular
İstemci ile sunucu arasındaki temel fark nedir?
İstemci, bir hizmeti veya veriyi talep eden taraftır. Sunucu ise bu talebi karşılayan, veriyi sağlayan veya istenen işlemi gerçekleştiren taraftır. Bu roller fiziksel cihazdan çok iletişimdeki göreve göre belirlenir.
Bir web tarayıcısı neden istemci sayılır?
Tarayıcı, web sunucusundan sayfa ve ilgili içerikleri talep eder. Gelen verileri işleyerek kullanıcıya gösterir. Bu nedenle tarayıcı, web istemcisi olan bir yazılımdır.
Bir cihaz aynı anda hem istemci hem sunucu olabilir mi?
Evet. Bir bilgisayar bir web sitesine bağlanırken istemci, kendi üzerindeki dosya paylaşım hizmetini başka cihazlara sunarken sunucu rolünde olabilir. Her rol, farklı iletişimdeki göreve göre değerlendirilir.
DNS istemci midir?
DNS, alan adının karşılık geldiği IP adresine ulaşma sürecinde görev yapan bir sistemdir. İstemci, DNS'ten yararlanabilir; ancak DNS'i istemcinin kendisi veya web sayfasının asıl sunucusu olarak tanımlamak doğru değildir.
İnce istemci ne anlama gelir?
İnce istemci, işlem ve veri depolama yükünün önemli bölümünü merkezi bir sunucuya bırakan istemci yaklaşımıdır. İstemci cihaz bağlantı, kullanıcı girdisi ve görüntüleme gibi görevleri sürdürebilir.
İstemci yanıtı almasına rağmen içerik neden görüntülenmeyebilir?
İstemcinin gelen veriyi işleyememesi, gerekli bileşenlerden birinin eksik olması veya yanıtın beklenen biçimde olmaması gibi nedenler olabilir. Bu nedenle iletişimde yalnızca verinin gelip gelmediği değil, istemcinin bu veriyi nasıl işlediği de incelenir.
- •İstemci (Client) Nedir ve Ne İşe Yarar?atombilisim.com.tr
- •Thin Client Nedir? - Blog - Yako Teknoloji |yakoteknoloji.com
- •İstemci (Client) Nedir? - Monster Blogblog.monsternotebook.com.tr