Hacker's PHP

Xakep, номер #043, стр. 043-046-5


и так далее...

После заголовка идет уже непосредственно HTML-документ, который обрабатывается броузером и выводится на экран в виде web-страницы. Понятно? Раз так, подумай, как работают FTP, Telnet, Smtp, Irc и прочие клиенты. Да так же! Просто у них свой собственный язык, свой собственный протокол! Именно поэтому на PHP можно выписывать полноценные клиенты, ничем не уступающие по возможностям тем, что ты ежедневно пользуешь. Именно таким образом пишут "пауков", "ботов", короче - проги, которые самостоятельно расхаживают по web'у, причем делают это не хуже любого юзера - таким софтом пользуются все поисковые машины при индексации сайтов, на этом основаны все те накрутчики голосований, счетчиков, брутфорсеры, и прочий софт, который мы с тобой пишем ;).

The конец

Краткий курс по работе с socket'ами из-под PHP подошел к концу. Правда, PHP красивее перла? :). А главное - яснее и короче: ни один из скриптов в этой статье не перевалил и за 30 строк. Это притом, что в них довольно много воды - html'я. На чистом plain code будет еще меньше.

А Perl? Одни заголовки броузеру+подключение модулей - уже строк пять ;))).

Как бы то ни было, все эти скрипты - всего лишь примеры реализации клиентских частей некоторых web-приложений, эти примеры довольно четко отражают весь процесс взаимодействия клиента с сервером, показывают, как это взаимодействие осуществляется. Теперь ты уже и сам, наверное, сможешь написать клиентскую часть к какому-нибудь сервису, что весьма отрадно.

А в следующий раз мы, может быть, напишем настоящего irc-бота =). Причем я обязуюсь систематично изложить весь процесс его написания, чтобы ты сам мог его модифицировать, добавляя новые оригинальные функции.

P.S. Если у тебя возникли трудности с пониманием программ либо же проги просто не заработали на твоем хостинге - отпиши мне, очень может быть, что помогу. Я специально не стал нигде выкладывать скрипты - пока будешь перебивать их из журнала, может что-то осядет в твоем мозгу. Да, качнуть используемые в программах классы можно здесь: http://x-p.nm.ru/classes/index.html

Если хостер опять там что-то удалил (как уже несколько раз делал!), то можешь отписать мне - через некоторое время пришлю.

P.P.S. Автор статьи не занимается spam'ом. Спамлист, что на скрине, попал в его руки вместе с очередным рекламным письмом. Автор выступает резко против спама, его бы воля, всем бы спамерам ноги повыдергивал ;).

Про Сокеты

Большинство сетевых приложений состоит из двух частей: клиента и сервера. Существует масса примеров такого типа приложений: IRC-клиент и IRC-сервер, броузер и web-сервер, клиент FTP и сервер FTP. Весь процесс связи клиента с сервером на уровне приложения сводится к отправке серверу запроса и получения ответа на него. Для этого PHP (и многие другие языки) используют сокеты Беркли (Berkeley), которые служат интерфейсом общего назначения для сетевых транспортных служб. Сокеты являются конечными пунктами связи; в системе клиент-сервер клиент является одной сокетой, а сервер - другой. Эти две точки связаны между собой абстрактным "каналом связи", основанном на вполне реальном кабеле (радиоканале, спутнике, чем угодно).

Назад на стр. 043-046-4  Содержание  Вперед на стр. 043-046-6