ПредишенСледващото


Бележки programmistera HTTP в Ява
Модерни рамки доста добре абстрахират от данните за ниско ниво на собствената си реализация. От една страна е добре - опростява живота ни, но от друга страна не ни дава още една причина да се научи на основните неща. Това е вярно за голям брой въпроси и области на информационните технологии, но в тази серия, ние ще се съсредоточи върху HTTP за протокол (често скрита зад JSP, JSF и т.н.) и как да го използва в Java.

Http - протокол за сътрудничество между двете програми, клиента и сървъра, които могат да се движат по съвсем различен и много отдалечени една от друга на машините. Клиент нарича приложение, което използва някакъв вид услуга, предоставяна от друго приложение - сървъри, обикновено на отдалечен компютър. Почти винаги клиентът започва да изходящи връзки, и сървърът слуша за входящи връзки (от клиента), въпреки че има и изключения.

Първото нещо, което да се разбере - как е взаимодействието на клиент-сървър. Как те намерят помежду си и как да общуват. За да направите това, нека си спомним, младши университетски курсове и опресняване знанията си от мрежови протоколи. Ако съкращенията OSI и TCP / IP не ви въведат в застой безопасно преминете по-нататък. За тези, които не се опитват да елементарно части на главата, с право да се разчита на тяхната наличност в интернет, напомням:

Моделът OSI беше предложена от Международната организация на ISO (Международната организация по стандартизация) през 1984. Всички мрежови функции в модела са разделени в 7 нива:

Разпределение на модела OSI протоколи


В този случай, по-високи нива изпълняват по-сложни, глобален проблем, който се използва от по-ниски нива. както и да ги управлявате. Целта на по-ниско ниво - осигуряване на най-високо ниво на обслужване. и най-високо ниво не са важни подробности за изпълнението на тези услуги. По-ниските нива на извършване на прости и специфични функции. В идеалния случай, всеки слой е свързан само с тези, които са в непосредствена близост до него (над и под него). На горното ниво съответства на задача заявление в момента приложение, по-нисък - директно предаване на сигнали на по-комуникационен канал.

Към днешна дата, основният стека протокол е TCP / IP. Този протокол стека се яви на OSI и печели популярност.

Разпределителни протоколи за нивата на TCP / IP модел

приложен
"Ниво 7"

напр. TCP. UDP. SCTP. DCCP
(Протоколи за маршрутизация като OSPF. Които работят на върха на IP. Са част от слой на мрежата)

За TCP / IP е IP (IP)
(Поддръжка на протоколи като ICMP и IGMP работят на върха на ПР, но също така принадлежат към мрежовия слой. ARP протокол е независима дъщерна протокол работи на върха на физическия слой)

напр. физическата среда и принципите на кодиране на информация, Т1. E1


И при двата модела HTTP е приложния слой и използва собствен прилагане на протокола, при по-ниски нива. Помислете за всички нива - задача, далеч извън обхвата на една статия. Ето защо, аз ще се огранича тук, за да кратко описание на един от протоколите на транспортния слой, т.е. ПЗР, която се основава директно на HTTP.

Сървърът при стартиране казва на операционната система, която ще "заемат" специфичен порт (или няколко пристанища). След това, всички пакети, които пристигат на този порт на компютъра, операционната система ще предават този сървър. Те казват, че сървърът "слуша" до пристанището.

Клиент от заявките за връзка от операционната система на всяко неизползвано пристанище за временно ползване, и изтъква, че в пакети, изпратени като източник пристанището. След този порт да го приема пакети отговор от сървъра.

Е, че е дошло времето да се опита да се възползва от знанията и да преминем от думи към Java =)

Ключови часове за изпълнението на програмите за сътрудничество чрез TCP са java.net.Socket и java.net.ServerSocket.

По-долу са кодовете прости TCP сървър и клиент. Сървърът предава на конзолата всичко, което идва от клиента.


сървърни и клиентски кодове са доста прости и е малко вероятно да доведе до трудности. Основното нещо, което е необходимо, за да разберат себе си, че гнезда дават възможност да се създаде прозрачна връзка между двата отдалечени приложения, след което между тях, за трансфер на данните не се извършва по-сложни за четене / писане общ поток.

По мое мнение, TCP разбиране е минималната основа за разбирането на HTTP. В следващата част ще се опитам да дам минимално представителство директно за Http протокол и стандарт API в Java за нейното изпълнение.

Подкрепете проекта - споделете линка, благодаря!