Клиент – сървър: Разлика между версии

Изтрито е съдържание Добавено е съдържание
м Робот Промяна: zh:客户端/服务器结构
много интерестна лекция. Що ли и ние не го учим така в ТУ-Габрово?
Ред 1:
'''Клиент-сървър''' е тип [[мрежова архитектура]] която отделя [[клиент]]а от [[сървър]]а, и е най-често се използва в [[компютърна мрежа|компютърни мрежи]]. Всеки клиент или сървър свързан с мрежата може също така да бъде използван като възел. Най-елементарните типове клиент-сървър [[Софтуерна архитектура|архитектури]]
<div id="todomessage" class="toccolours" cellspacing="4" style="width:75%; margin:1em auto;">
[[Картинка:Baustelle.svg|left|70px|Табела за ремонт]]
'''Тази статия се нуждае от подобрение.'''<br/>
Необходимо е: ''форматиране''. Ако желаете да помогнете на Уикипедия, просто щракнете на <b class="plainlinks">[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|action=edit}} редактиране]</b> и нанесете нужните корекции.<br clear="all"/></div>
[[Категория: Статии за редактиране]]
Като правило комуникацията от типа клиент-сървър се състои от две части - от една страна е програмата сървър, от друга страна е програмата клиент. Постигането на определен резултат при използване на този тип програми винаги е свързано с комуникация между двете страни. Правилното тълкуване е следното "Програма-сървър <--- Двупосочен процес на комуникация ---> Програма-клиент".
Например, при сърфиране в Интернет, вашият браузер е в ролята на клиент, който подава заявка по определен комуникационен протокол към сървъра, където са разположени търсените от вас интернет страници.
 
КатоНай-елементарният правило комуникацията от типатипов клиент-сървър [[Софтуерна архитектура|архитектура]] се състои от две части - от една страна е програмата сървърсървъра, от друга страна е програмата клиентклиента. Постигането на определен резултат при използване на този тип програми винаги е свързано с комуникация между двете страни. Правилното тълкуване е следното "Програма-сървър <--- Двупосочен процес на комуникация ---> Програма-клиент".
За да работи гореописаната схема, трябва да бъдат изпълнени няколко определени условия:
 
==Характеристики==
* сървърът да ppppp;
 
;Характеристики на Клиента:
* да има определени (известни и за двете страни) правила за комуникация.
Всяка услуга от страна на сървъра трябва да се предлага с предварително известни параметри (в компютърната терминология това са комуникационните протоколи и специфичните ports - "портове").
 
:Подава заявки
Идеята е проста - програмата-клиент трябва да получи това което очаква. Това е същото както да влезете в произволен супермаркет с идеята да си закупите месо - предварително знаете че не може да направите това от щанда за млечни продукти, трябва да си го купите от щанда за месо.
:Изчаква отговор
:Свързва се до малък брой сървъри едновременно
:Взаимодейства си с крайните потребители чрез [[графичен интерфейс]]
 
2. Отговор;Характеристика на Сървъра:
Според IANA - (най грубото определение на IANA е организацията за определяне на стандартите използвани в Интернет – http://www.iana.org), портовете се разппределят на три основни категории:
:Пасивеност ([[Господар-подчинен|slave]])
:Чака за заявки от клиенти
:При получавана на заявки, ги обработва и след това отговаря
:Получава заявки от голямо количество клиенти
:Не контактува директно с крайният потребител
 
* Well known ports от 0 до 1023. Тези портове са предназначени са за стандартни услуги - например познатите на всички пренос и некриптиран достъп до електронна поща (SMTP:25 и POP3:110), достъп до интернет страници чрез броузери (HTTP:80) и др.
* Регистрирани портове от 1024 до 49151- използват се от определени програми, например сървърът на счетоводната програма Maconomy, по подразбиране използва за комуникация с клиентите си порт 4444;
* Динамични портове (частни портове) от 49152 до 65535 - използват се за осъществяване на текущи комуникационни връзки (sockets) - виж по-долу.
Още малко за портовете . . . В жаргонната ИТ терминология, обикновенно се казва, че сървърът "подслушва" или "слуша" на определен порт. Например стандартните уеб услуги на сървърите "слушат" за заявки от браузерите на порт 80;
 
==Портове==
Как на практика става обмена на информация при комуникация "Клиент-Сървър":
* програмите клиенти трябва да подават заявки за определена услуга към съответния порт на сървъра;
* след приемането на заявката сървърът трябва да информира браузерът, че връзката ("сокета") е изградена и комуникацията ще продължи по друга двойка портове - идеята е да се освободи стандартния порт на сървъра, за да може той да обслужва едновременно много клиенти;
* комуникацията продължава по друга двойка потрове;
 
Например, приПри сърфиране в [[Интернет]], вашият браузер[[браузър]]ът е в ролята на клиент, който подава [[заявка]] по определен [[комуникационен протокол]] към сървъра, където са разположени търсените от вас интернет страници.
Опростено, с разговорна човешка терминология, може да опишем комуникацията така:
 
Всяка [[услуга]] от страна на сървъра трябва да се предлага с предварително известни [[параметър|параметри]] (в компютърната терминология това са комуникационните протоколи и специфичните ports - "портове").
1. Питане на Клиент (Браузер) от свободен порт на вашия компютър (например 50&nbsp;001) към порт 80 на уеб сървър "www.edikoysi.bg":
* здравей, аз съм браузер Сафари и искам да заредя твоята заглавна страница (www.edikoysi.bg/index.html).
2. Отговор на Сървъра:
* здравей Сафари, аз съм сървър "www.edikoysi.bg". Потвърждавам твоята заявка за www.edikoysi.bg/index.html е получена от 50001 и я прехвърлям от моя стандартен (well known) порт 80 към моя свободен свободен порт (динамичен) 60001.
3. Отговор на Браузер на Клиента:
* разбрано сървър "www.edikoysi.bg", потвърждавам, че комуникацията между теб (www.edikoysi.bg/) и мен, ще продължи от мой порт 50001 към твой 60001.
4. Сървърът (www.edikoysi.bg) отбелязва, че порт 60001 вече е зает за комуникация с този клиент. Сървърът започва да очаква сигнал за прекратяване на сесията от браузера на клиента.
 
Според [[ИАНА]], портовете се разпределят на три основни категории:
С две думи, сокетът (параметрите на комуникацията) с браузера на този конкретен клиент е изграден. Стандартният порт 80 на сървъра е освободен и услугата е достъпна отново и за други браузери. Сървърът е готов да започне обслужване на други клиенти подали заявка за същата услуга към него.
 
* WellДобре knownизвестни portsпортове от 0 до 1023. Тези портове са- предназначени са за стандартни услуги - например познатите на всички пренос и некриптиран достъп до електронна поща (SMTP:25 и POP3:110), достъп до интернет страници чрез броузери (HTTP:80) и др.
Примерни стандартни портове на сървъри в TCP/IP комуникацията:
* Регистрирани портове от 1024 до 49151- използват се от определени програми;
* порт 25 - smtp - обмен на електронна поща между сървъри,
* Динамични портове (частни портове) от 49152 до 65535 - използват се за осъществяване на текущи комуникационни връзки (sockets) - виж по-долу.
* порт 80 - http - уеб браузери,
* порт 110 - pop3 - получаване на електронна поща от сървъра.
 
==Обмен на информация==
* За пълна информация по предназначението на портовете в TCP/IP комуникацията вижте Wikipedia ТУК (http://en.wikipedia.org/wiki/List_of_well-known_ports_(computing)).
КакРед на практика става обмена на информация при комуникация "Клиент-Сървър":
* програмите клиенти трябва да подават заявки[[заявка]] за определена услуга към съответния порт на сървъра;
* след приемането на заявката сървърът трябва да информира браузерътбраузера, че връзката ("сокета") е изградена и комуникацията ще продължи по друга двойка портове - идеята е да се освободи стандартния порт на сървъра, за да може той да обслужва едновременно много клиенти;
* комуникацията продължава по друга двойка потрове;
 
===Пример===
1*. ПитанеЗапитване на Клиент (Браузер) от свободен порт на вашия компютър (например 50&nbsp;001) към порт 80 на уеб сървър "www.edikoysi''name.com'' - Заявка за зареждане на главната страница на www.''name.bg":com''
* Отговор на Сървъра - Потвърждение на заявката получена през порт 50&nbsp;001 и прехвърлянето й от порт 80 към порт 60001
* разбраноОтговор сървърна "www.edikoysi.bg", потвърждавам,Клиента:Потвърждаване че комуникацията между теб (www.edikoysi.bg/)Сървъра и менКлиента, ще продължи от мойклиентски порт 50001 към твойсървърен порт 60001.
4.* Сървърът (www.edikoysi.bg) "отбелязва", че порт 60001 вече е зает за комуникация с този клиент. Сървърът започва да очаква сигнал за прекратяване на сесията от браузера на клиента.
 
[[Категория:Интернет]]