Klient

W kontekście technologii i informatyki klient jest odbiorcą serwera lub tym, który żąda konkretnej usługi w systemie typu serwer. W większości przypadków klient znajduje się na innym terminalu komputerowym, do którego można uzyskać dostęp przez sieć.[1] Terminu tego użyto po raz pierwszy w odniesieniu do urządzeń, które nie były w stanie skonfigurować swoich sieci, jak również uruchamiać swoich programów w celu połączenia się z indywidualnym, zdalnym komputerem poprzez sieć. Są to tzw. głupie terminale, które zazwyczaj obsługiwane były przez procesory mainframe z podziałem czasu.

W prawie każdej firmie, korporacje wykorzystują klientów, mając swoją sieć korporacyjną mają komputer kliencki dla każdego ze swoich pracowników, którzy potrzebują dostępu do informacji z serwerów, z każdym z komputerów klienckich podłączonych do serwera macierzystego korporacji. Serwer ten zawierałby pliki i informacje, które mają zasadnicze znaczenie dla wydajności miejsca pracy, zapewniając jednocześnie dostęp do Internetu i treści na serwerze. [2]

Jeśli chodzi o przetwarzanie, każda praca wykonywana na serwerze nazywana jest pracą "po stronie serwera", podczas gdy wszelkie informacje i dane generowane lokalnie po stronie klienta nazywane są pracą "po stronie klienta".[3]

Funkcjonalność

Istnieją różne warianty klientów. Większość klientów to proste aplikacje lub nawet kompleksowy system, który uzyskuje dostęp do określonych usług poprzez serwer. W tym przypadku klient może połączyć się z serwerem poprzez gniazda domenowe, pamięć współdzieloną, a nawet poprzez protokoły internetowe, co jest najczęstszą metodą przekazywania informacji do klienta.

Klasyfikacja

Klienci są podzieleni na trzy typy:[4]

Klient cienki

Jest to program kliencki, który posiada bardzo minimalną funkcję, która wykorzystuje tylko te zasoby, które są dostarczane przez komputer macierzysty lub serwer. Jego zadanie jest dość proste: wyświetlać wyniki generowane przez serwer. Wszystko czego potrzebuje to serwer do wykonania ciężkiego liftingu (czyli przetwarzania). Cienkie klientki mogą być postrzegane jako usługa dla klientów poprzez interfejs użytkownika, który jest obsługiwany przez klientów. Cienkie klientki stają się lepszym rozwiązaniem, gdy serwer ma większą moc obliczeniową niż którykolwiek z jego odbiorców. Cienkie przetwarzanie klienckie jest jednym z bardziej naturalnych sposobów utrzymania usług obliczeniowych bez konieczności poświęcania mocy obliczeniowej komputera odbiorcy.

Gruby lub tłusty klient

Klient ten jest bezpośrednim przeciwieństwem tego, czym jest klient cienki i odnosi się do większości czynności przetwarzania, które nie są uzależnione od centralnych serwerów mainframe przetwarzających dane i informacje. Może jednak potrzebować źródła informacji (co najmniej jednego serwera) w celu załadowania i aktualizacji danych, a nawet administrowania samym programem. W większości przypadków programy antywirusowe należą do tego typu kategorii, ponieważ mogą one działać niezależnie, bez konieczności ciągłego połączenia z serwerem, chyba że istnieje zaplanowana aktualizacja i konkretne pobieranie. Pobieranie i przesyłanie danych musi być wykonane dla programu, aby być świadomym pewnych wirusów, jednocześnie przekazując informacje z powrotem do serwera źródłowego. Grube klientki są również wdrażane w miejscach pracy, gdzie host lub główny serwer ma dużą prędkość sieci, ograniczoną moc obliczeniową i ograniczoną ilość pamięci masowej. Dzieje się tak dlatego, że grubi klienci mogą działać prawie niezależnie.

Klient hybrydowy

Ten klient zawiera pewne cechy, które można znaleźć zarówno w klientach cienkich jak i grubych. Klient hybrydowy może pracować niezależnie, ale nadal może być zmuszony polegać na serwerze źródłowym dla podstawowych danych lub przechowywania takich danych.

Praca po stronie klienta a praca po stronie serwera

Strony internetowe działają albo po stronie klienta, albo po stronie serwera - przy czym strona klienta jest zwykle nazywana front-end, a strona serwera - back-end. Klient tej strony internetowej odnosi się do przeglądarki internetowej przed jej przeglądaniem. W większości przypadków języki kodowania przeznaczone do tworzenia stron internetowych działają albo po stronie serwera, albo klienta, co w dużej mierze zależy od sposobu ich działania.[1:1]

Kiedy klient generuje żądanie dotyczące określonej strony internetowej, żądanie to musi być najpierw przetworzone przez serwer WWW. Jeżeli to żądanie jest skryptem po stronie serwera (w tym przypadku Perl lub PHP) przed zwróceniem informacji do klienta, to skrypt jest wykonywany wewnątrz serwera i wyniki skryptu są zwracane do klienta.[5]

Po otrzymaniu przez klienta zwróconych informacji z serwera, które zawiera, skrypt po stronie klienta (np. JavaScript) w przeglądarce komputera użytkownika wykona skrypt przed wyświetleniem go na stronie internetowej.

Języki po stronie klienta mają następujące cechy:[5:1]

  • Zazwyczaj wykonywane głównie przy użyciu JavaScript, oprócz kodowania HTML i CSS, jak również.4
  • Wynika to z faktu, że JavaScript uruchamia skrypty na komputerze zaraz po załadowaniu strony.4.

Kodowanie po stronie serwera i języki mają następujące cechy:[3:1]

  • Języki po stronie serwera uruchamiają skrypty jeszcze przed załadowaniem kodu HTML.
  • Istnieje szeroka gama kodów, które są obecnie stosowane. Obejmuje to PHP, który jest jednym z najpopularniejszych, Ruby on Rails, ASP.NET i wiele innych języków.
  • Są to tzw. języki serwerowe, ponieważ skrypty nie znajdują się faktycznie na komputerze użytkownika, ale na serwerze, który wysyła kod HTML.

W istocie, większość stron internetowych używa zarówno języka klienta, jak i języka serwera. Chociaż obie te strony mogą wykonywać podstawowe funkcje z dowolnym problemem, niektóre funkcje mogą być wykonywane tylko przez języki po stronie klienta i kilka innych rzeczy, które mogą być również wykonywane przez języki po stronie serwera.

Krótko mówiąc, skryptowanie front-end daje przewagę nad wszystkim, co wymaga interakcji z użytkownikiem, czego przykładem jest gra wideo. Back-end scripting jest przydatny, gdy chodzi o złożone i dynamiczne dane, które muszą być załadowane, np. powiadomienie użytkownika, że jest on już zalogowany w urządzeniu lub nawet w innym urządzeniu.

Różnice pomiędzy serwerem sieciowym a klientem sieciowym

Pod względem sposobu działania, zarówno serwer WWW, jak i klient sieciowy (odbiorca) mają różne tryby pracy. Ponieważ omówiliśmy różnice między pracą po stronie serwera a pracą po stronie klienta, musimy wiedzieć, w jaki sposób te dwa elementy współpracują ze sobą, aby dostarczyć zawartość do użytkownika.[4:1]

Serwer WWW

Zasadniczo jest to system, który rozpatruje wniosek odbiorcy, dostarczając jednocześnie różne formy zawartości stron internetowych za pośrednictwem protokołu HTTP (HyperText Transfer Protocol) i przesyła pliki za pośrednictwem protokołu FTP (File Transfer Protocol). Gdy użytkownik wpisze adres URL na pasku adresu przeglądarki, serwer WWW będzie tym, który wyśle żądanie do miejsca, w którym zapisana jest domena. Wówczas informacje te będą wymagane i zostaną udostępnione przez serwer macierzysty. Przetwarzanie i udostępnianie strony internetowej odbiorcy (klientowi) jest podstawową funkcją strony internetowej.

Klient sieciowy

Klient sieciowy można porównać do oprogramowania lub przeglądarki internetowej, która jest albo zainstalowana na komputerze, albo już wbudowana w system komputera (np. IE). Przeglądarki te są następnie wykorzystywane do interakcji z serwerem internetowym na żądanie użytkownika. W tym przypadku jest to oprogramowanie konsumenckie (produkowane i rozwijane przez firmę w celu dostosowania do potrzeb użytkowników), które pobiera dane z serwerów. Klient i serwer są dwoma istotnymi komponentami połączenia, podczas gdy dwie różne maszyny również obsługują te komponenty. Klient sieciowy głównie żąda informacji, podczas gdy serwer sieciowy jest zasadniczo komputerem/procesorem, który jest specjalnie zaprojektowany do przyjmowania żądań z komputerów zdalnych i przesyłania tych informacji stronie żądającej. Główną funkcją klientów internetowych ma być "okno", w którym osoby fizyczne będą mogły przeglądać informacje przetwarzane przez treści znajdujące się po stronie serwera. Administrator sieci umożliwiłby wówczas połączenia z serwerem w celu wyświetlenia zapisanych informacji.

Jeśli chodzi o tworzenie stron internetowych, programiści, a także twórcy stron internetowych muszą wiedzieć, skąd pochodzi stały strumień informacji. Możliwość dostrzeżenia różnicy między pracą po stronie serwera a pracą po stronie klienta zwiększy wydajność strony internetowej, którą utrzymuje użytkownik.[1:2] Jeśli dana strona napotka problemy związane ze strumieniowym przesyłaniem treści i platform medialnych, które znajdują się na stronie internetowej, wówczas użytkownikowi i twórcy stron internetowych łatwiej będzie rozwiązać problem, ponieważ będą oni mieli już przegląd zalet i wad pracy po stronie serwera i klienta oraz skryptów.

Ponadto, umiejętność rozpoznania różnic pomiędzy różnymi typami klientów da deweloperom przewagę nad tym, w jaki sposób będą w stanie dopasować swojego klienta do jego odbiorców i grupy demograficznej, jednocześnie optymalizując możliwości klienta w oparciu o potrzeby jego użytkowników.


  1. https://www.computerhope.com/jargon/c/client.htm ↩︎ ↩︎ ↩︎

  2. https://www.techopedia.com/definition/437/client ↩︎

  3. https://learntomato.flashrouters.com/what-is-a-client-what-is-a-server-what-is-a-host/ ↩︎ ↩︎

  4. https://sites.google.com/site/clientserverarchitecture/clients-and-their-types ↩︎ ↩︎

  5. https://www.codeconquest.com/website/client-side-vs-server-side/ ↩︎ ↩︎