Главная страница
Навигация по странице:

  • Бери, не жалко! Итак, браузер “стучится” по найденному адресу на определенный порт (по умолчанию — 80-й).Браузер

  • Web-сервер

  • Идем от реальности: текущие предложения хостинг-провайдеров

  • Настраиваем инструментарий: Denwer

  • Шаг 1 Рис . 10. Запускаем установочный файл. Не боимся, вирусов в нем нет!Шаг 2 Рис . 11. Действительно хотим. Иначе зачем бы мы запускали инсталляторШаг 3

  • Шаг 5 Рис . 13. Здесь разработчики своими словами объясняют, что такое виртуальный диск. 12 Лекция 1 Шаг 6

  • Основы web-программирования. Лекции 14 Сергей Львович Островский


    Скачать 1.82 Mb.
    НазваниеЛекции 14 Сергей Львович Островский
    Дата21.01.2019
    Размер1.82 Mb.
    Формат файлаpdf
    Имя файлаОсновы web-программирования.pdf
    ТипЛекции
    #64660
    страница2 из 11
    1   2   3   4   5   6   7   8   9   10   11

    Таблица перевода в двоичную и шест- надцатеричную системы счисления









    10 2 16


    
    ПрОЛетая над мирОм WEb-ПрОграммирОвания
    ся ), каждому компьютеру (устройству), подклю- ченному к сети, выдается четырехбайтовый (поэтому и IPv4) числовой адрес, который принято записывать через точки. Например, так: 200.100.020.010.
    Как именно компьютер получает IP-адрес, что такое маски, подсети и пр. — все это очень интересно, но ле- жит за рамками нашего курса. Впрочем, надо сделать одно важное для нас замечание. Среди всех IP-адресов есть некоторое множество особенных. Эти особенные адреса не используются в Интернете, а применяются для организации локальных сетей и иных служебных нужд.
    А самый особенный из всех особенных адресов — адрес
    127.0.0.1. Этот адрес всегда соответствует данному ком- пьютеру. То есть на самом деле ваш компьютер имеет как минимум два IP-адреса, и один из них — 127.0.0.1.
    Как это проверить? Например, посредством стан- дартной программы ping — она есть в любой системе.
    Ping — это универсальный “тук-тук”, он предназначен лишь для того, чтобы проверить, живет ли кто-нибудь в “домике” (по данному IP-адресу). Вот как выглядит процесс “пингования” адреса 127.0.0.1.
    Рис. 2. “Пингуем” наш собственный компьютер
    Хотя компьютеры в сети узнают друг друга именно по IP- адресам, людям не очень удобно иметь дело с числами. (Ко- нечно, есть хороший контрпример — телефонные номера.
    Но так уж сложилось исторически.) Поэтому с самого на- чала в Сети была введена система так называемых “домен- ных имен”. А система установления соответствий между именами и IP-адресами получила название DNS — Domain
    Name System. За преобразование имен в адреса отвечают специальные DNS-серверы, которые (мы несколько упро- щаем модель) хранят огромные таблицы из двух столбцов.
    Левый столбец — адрес, правый — имя.
    Кстати, практически на любом компьютере (на ва- шем — точно) тоже имеется свой маленький “DNS-сер- верок”. Его роль выполняет файл hosts (в Windows XP он лежит по адресу system32/drivers/etc). Записи в этом файле как раз и устанавливают соответствие между именами и адресами хостов. Найдите файл hosts у себя на компьютере и посмотрите на его содержимое. Ско- рее всего вы увидите примерно следующее (Пример 2 внизу страницы).
    Чтобы окончательно убедиться, что все это работает, можете проделать два простых эксперимента. Сначала попробуйте “пингануть” хост localhost. Результат, как вы видите ниже, практически совпадает с показанным на предыдущей иллюстрации, с той лишь разницей, что утилита ping сначала определила, какой компьютер со- ответствует адресу 127.0.0.1 (SOM — имя компьютера, на котором я ставил эти опыты).
    Рис. 3. “Пингуем” localhost
    Пример 2
    # (C) Корпорация Майкрософт (Microsoft Corp.), 1993-1999
    # Это образец файла HOSTS, используемый Microsoft TCP/IP для Windows.
    # Этот файл содержит сопоставления IP-адресов именам узлов.
    # Каждый элемент должен располагаться в отдельной строке. IP-адрес должен
    # находиться в первом столбце, за ним должно следовать соответствующее имя.
    # IP-адрес и имя узла должны разделяться хотя бы одним пробелом.
    # Кроме того, в некоторых строках могут быть вставлены комментарии
    # (такие, как эта строка), они должны следовать за именем узла и отделяться
    # от него символом '#'.
    #
    # Например:
    #
    # 102.54.94.97 rhino.acme.com # исходный сервер
    # 38.25.63.10 x.acme.com # узел клиента x
    127.0.0.1 localhost

    
    Лекция 1
    Если все получилось, попробуйте поставить опыт № 2.
    “Пинганите”, к примеру, хост vpupkin. Поскольку тако- го хоста нет, вы получите соответствующее сообщение.
    Рис. 4. Нет такого хоста!
    Теперь добавьте в файл hosts запись
    127.0.0.1 vpupkin и снова “пинганите”. Получилось?
    Рис. 5. Ура! Заработало!
    IP-адрес — важнейшая составляющая часть механиз- ма функционирования Сети. Но есть проблема: адрес соответствует компьютеру (точнее, некоторому сетево- му интерфейсу компьютера, но эта подробность для нас не слишком существенна). А один компьютер может выполнять различные функции — быть и web-сервером, и почтовым сервером, и еще чем-нибудь. Все эти функ- ции связаны с обменом информации по сети. То есть в общем случае на компьютер с данным адресом прихо- дит много различной информации (пакетов информа- ции), и надо понимать, какой пакет кому предназначен.
    Для решения этой задачи придумали механизм портов.
    Можно представить себе следующую модель: IP-ад- рес — это адрес дома, а порт — номер квартиры. На каждом пакете написан не только IP-адрес, но и номер порта. Соответственно, не возникает никаких конфлик- тов — каждый пакет отправляется в свой “теремок”.
    А кто в теремочке живет? А в теремочке как раз и живет конкретная программа. Например, web-сервер, который нас интересует в первую очередь, обычно жи- вет в теремочке № 80 (программисты говорят “висит на 80-м порту”). Почтовый “демон” обычно принимает своих клиентов в теремочках 110 и 25 (в первом он вы- дает письма, во втором — принимает), и т.д.
    Бери, не жалко!
    Итак, браузер “стучится” по найденному адресу на определенный порт (по умолчанию — 80-й).
    Браузер: Тук-тук, есть тут кто?
    Если на данном компьютере работает программа — web-сервер, она откликается:
    Web-сервер: Есть. Чего надобно?
    Браузер: Мне нужен файл document.htm с сайта
    www.mysite.ru.
    Web-сервер: Сейчас найду… нашел… забирай!
    Обратите, пожалуйста, внимание на то, что браузер не случайно называет не только имя файла, но и имя сайта, с которого он хочет его получить. Казалось бы, странно: он же уже пришел на данный сайт, достаточно назвать лишь имя документа. А вот и нет! Почему? Потому что один web-сервер на одном компьютере, как правило, обслуживает много сайтов. Действительно: вспомните о хостинг-провайдерах, которые предоставляют услуги по размещению сайтов. Если бы для размещения каждого сайта требовался отдельный компьютер, это было бы просто немыслимо!
    Таким образом, web-сервер можно представлять себе как кладовщика, который живет в комнате 80 и через окошко в двери умеет выдавать файлы по запросам брау- зеров. А теперь — внимание! — самый главный вопрос: а как “кладовщик” web-сервер находит требуемый файл на своем компьютере?
    Зри в корень!
    Для того чтобы web-сервер умел находить требуемые файлы, он знает самый главный параметр сайта — так называемый корневой каталог. Суть этого параметра очень простая — это каталог в файловой системе компью- тера, на котором работает web-сервер, который соответ- ствует “корню” данного сайта. Например, если для сайта
    www.mysite.ru корневым каталогом назначен D:\sites\
    mysite\www, то файл http://www.mysite.ru/document.htm
    web-сервер будет искать по адресу D:\sites\mysite\www\
    document.htm. Соответственно, файл http://www.mysite.ru/
    photos/petya.jpg web-сервер найдет по адресу D:\sites\
    mysite\www\photos\petya.jpg.
    Корневой каталог сайта — это очень просто, но очень важно! Мы еще не раз встретимся с этим параметром.
    “Кухня” web-сервера
    Ну и где же здесь место программированию? — спросите вы. До этого вопроса мы как раз добрались.
    Вышеописанные действия web-сервера к программи- рованию не имели отношения — у него попросили файл, он отдал — и все. Это действительно напомина- ет работу обычного кладовщика — взять вещь с полки и отдать. А что если вещи в готовом виде на полке нет?
    Как это?
    А вот так: попросили, допустим, у кладовщика… яич- ницу. (С помидорами! Очень люблю яичницу с поми- дорами!) На складе, конечно, нет яичницы! Яйца есть, соль есть, помидоры есть. А готовой яичницы нет. Но это не беда — кладовщик что-нибудь организует. Как

    
    ПрОЛетая над мирОм WEb-ПрОграммирОвания
    и что — его дело — браузер об этом не знает. Браузер просит яичницу именно у web-сервера и у него же ее и получает. А уж web-сервер сам договаривается с по- варом, передает ему заказ и получает от него яичницу.
    Вот здесь, на этапе изготовления яичницы, и начинается программирование.
    Как web-сервер понимает, какой файл надо изгото- вить, а какой просто отдать? Проще, чем вы можете подумать, — по расширению. В настройках web-сервера содержится информация о том, файлы с какими расши- рениями нужно отдавать “как есть”, а с какими — “го- товить”, и кто именно должен их готовить. Например, типичная настройка web-сервера может быть такой: htm- и html-файлы отдавать “как есть”, а php-файлы передавать на обработку интерпретатору языка PHP.
    И уже то, что вернет интерпретатор, возвращать брау- зеру. Конкретный пример мы рассмотрим уже в конце этого занятия.
    Идем от реальности: текущие предложения
    хостинг-провайдеров
    Прежде чем идти дальше, я хочу обосновать принцип отбора содержания нашего курса. Если посмотреть на это содержание предельно схематично и исключительно с технической точки зрения, то можно увидеть, что речь идет о двух вещах: языке PHP и СУБД MySQL. Что это такое, мы скоро узнаем, а сейчас я постараюсь ответить на вопрос “почему именно PHP+MySQL?”. Для ответа на этот вопрос я предлагаю взглянуть на текущие предложе- ния хостинг-провайдеров. Вообще говоря, практически любых, но я для определенности выбрал двух типичных, с которыми не так давно имел дело, — Agava и Masterhost.
    Нас будет интересовать, какие возможности, связанные с web-программированием, предлага- ют эти провайдеры. Итак, смотрим…
    Agava
    Начнем с провайдера Agava
    (www.agava.ru). На услуге “Вирту- альный хостинг” (а нас интересует именно это — мы же не собираемся пока нести провайдеру свой ком- пьютер) предлагается поддержка
    CGI, Perl, PHP, ASP, SSI, MySQL, MS-
    SQL, ssh, ftp. Перечисленные здесь пункты, вообще говоря, различны, но общее представление о предла- гаемых возможностях составить можно. Кратко объясню, что здесь написано (cм. рис. 6).
    CGI — Common Gateway Interface
    стандартный интерфейс для про- грамм, исполняемых на стороне сервера. Сама по себе поддержка
    CGI свидетельствует лишь о потенциальной возможнос- ти выполнять программы на сервере. CGI — не язык, а именно интерфейс. Чтобы понять, на чем именно мож- но программировать, надо читать дальше.
    Perl — культовый язык web-программистов (хотя, ко- нечно, Perl — универсальный язык и web-программиро- вание — лишь одна из областей его применения). Лет 10 назад мир web-программирования практически и был миром Perl. Сейчас Perl используется меньше и реже, потому что появились более удобные, не менее мощные, но более быстрые в освоении языки. Например…
    PHP — Hypertext Preprocessor (оригинальная рас- шифровка — Personal Home Page — просто сейчас она выглядит несолидно, вот и придумали новую). На сегод- няшний день основной язык, используемый в web-про- граммировании.
    ASP — Active Server Pages. Своеобразный “PHP от
    Microsoft”. Технология ASP изначально была придумана для web-серверов Microsoft, но, так как они не слишком распространены, не слишком распространена и сама технология.
    SSI — Server Side Includes. Очень простое расширение
    HTML для реализации минимальных возможностей об- работки html-файлов web-сервером. С SSI мы познако- мимся в следующей лекции.
    MySQL — свободно распространяемая реляционная
    СУБД. Мощная, удобная и надежная. Очень широко ис- пользуется именно в web-программировании.
    MSSQL — Microsoft SQL Server. Решение от Microsoft.
    В web-программровании используется реже, чем MySQL.
    SSH — Secure Shel. Почему ssh попал в этот список, мне объяснить трудно. Фактически ssh лишь предостав- ляет доступ к командной строке компьютера, на кото- ром установлен web-сервер.
    FTP — File Transfer Protocol. Это вещь понятная и в объяснениях, на- верное, не нуждается. То, что ftp на- ходится в этом списке, призвано под- черкнуть тот факт, что файлы на web- сервер можно “заливать” по ftp. Ничего особенного в этом нет — трудно найти хостинг, где этого нельзя сделать.
    Кликнув по ссылке “Подробнее об услуге”, мы можем узнать, что
    Agava предлагает несколько тариф- ных планов. Обратим внимание на два самых дешевых — Lite и Normal
    (см. рис. 7).
    Первый — отметаем сразу. Он нас не интересует, поскольку в нем специально подчеркнуто, что план
    Lite предназначен для размещения
    статичных html-страниц. А вот c Normal надо познакомиться “по- дробнее…”.
    Рис. 6. Базовые предложения Agava

    10
    Лекция 1
    Рис. 8. Подробнее о плане Normal
    Надо сказать, что по ссылке “Подробнее…” мы уз- наем не слишком много нового. Поясню то, что отно- сится к web-программированию и не было объяснено раньше.
    “Запуск скриптов из cron”. Cron — это программа, специфичная для Unix-систем, обеспечивающая вы- полнение некоторых действий по расписанию, опреде- ленному пользователем. Сайты часто требуют какого- нибудь периодического обслуживания, и именно для этого, как правило, используется cron.
    Python — распространенный (но не так широко, как
    PHP и Perl) универсальный язык, который использует- ся, в частности, в web-программировании.
    CVS — Concurrent Versions System — удобная, но уже несколько устаревшая (сейчас активно используется
    SVN) система управления версиями, которая использу- ется, в частности, при разработке программного кода.
    Суть этой системы в том, что изменения в файлах не теряются и всегда можно “откатить” все изменения до нужной версии, посмотреть, кто именно внес эти изме- нения, и т.д. Такое очень умное бэкапирование.
    phpMyAdmin — web-интерфейс для доступа к СУБД
    MySQL. Де-факто практически стандарт.
    Masterhost
    Взглянем теперь на предложения хостинг-провайде- ра Masterhost (www.masterhost.ru). Здесь мы не увидим много нового, поэтому сразу перейдем к табличке с рас- шифровкой услуг.
    Рис. 9. Предложения Masterhost
    Как видите, все очень похоже. Чуть побольше языков для CGI-скриптов (первая строка), среди которых почему- то нет Python'а. Смело можно сказать — ничего нового.
    Выводы
    Если поставить задачу: найти пересечение современных предложений хостинг-провайдеров, — то это пересечение будет иметь примерно такой вид: Perl+PHP+MySQL. Я бы очень хотел сделать курс именно таким, но хорошо понимаю, что в рамки 72-часового дистанционного курса (даже базово- го) уместить это не представляется возможным. Поэтому из двух языков — Perl и PHP — я выбрал более распространен- ный (на сегодняшний день) и более простой в освоении. Так и получилась формула основного содержания: PHP+MySQL.
    Настраиваем инструментарий: Denwer
    Мы добрались до самого, пожалуй, интересного — прак- тической части этой лекции. Нам предстоит установить программное обеспечение — пакет Denwer, который будет использоваться в течение всего курса. Что такое Denwer?
    Denwer — пакет web-разработчика, который поз- воляет легко и просто установить на компьютере под управлением Windows web-сервер Apache, PHP, MySQL, phpMyAdmin и Perl (он нам не понадобится, но сам
    Denwer использует Perl в служебных целях). Denwer позволяет отлаживать скрипты на локальном компью- тере, а не на сервере. Это очень удобно!
    Удобно также то, что Denwer при установке не мо- дифицирует системных файлов, не разбрасывает всюду свои библиотеки, в общем — не пытается быть умнее вас. Фактически вся установка заключается в копирова- нии файлов в выбранный вами каталог (лучше, конечно, отдельный — об этом ниже).
    Подавляющее большинство слушателей нашего курса ра- ботает на компьютерах под управлением Windows XP, поэ- тому я буду ориентироваться на соответствующую сборку
    Denwer'а . Если у вас другая версия Windows, то скорее всего все также будет работать без всяких проблем и изменений.
    Если у вас не Windows, а Linux, то никакого Denwer'а вам не нужно вовсе — надо просто поставить соответствующие пакеты. Все примеры данного курса я отлаживаю как мини- мум в Denwer'е под Windows XP и в Linux (Ubuntu).
    Рис. 7. Два самых дешевых тарифных плана Agava

    11
    ПрОЛетая над мирОм WEb-ПрОграммирОвания
    Где взять Denwer?
    Denwer положено брать с официального сайта разра- ботчиков www.denwer.ru. Но! Пожалуйста, в данном слу- чае не делайте этого, а обязательно возьмите Denwer на странице нашего курса на сайте http://edu.1september.ru
    (раздел “Учебные материалы”). Почему?
    Потому что версии Denwer’а на сайте разработчиков могут меняться и возможна (хотя крайне маловероятна) ситуация, когда один и тот же пример — например, со- держащий ошибку, в разных версиях будет работать по- разному. Когда я буду с этой ошибкой разбираться, мне важно знать, что я вижу то же, что видите вы. Впрочем, что я объясняю очевидные вещи коллегам-преподавателям .
    Файл, который вы скачаете, будет иметь очень длинное имя — в нем записаны версии всех пакетов. Не обращайте на это внимание, смело приступайте к установке.
    Установка Denwer
    В этом разделе я по шагам опишу несложный про- цесс установки пакета Denwer. Сначала несколько об- щих замечаний:
    Denwer ставится в некоторый каталог, указываемый пользователем. Конечно, разумно выбрать (создать) от- дельный каталог (я, например, как будет видно ниже, выбрал каталог D:\Denwer3).
    Для работы Denwer'а ему необходим так называемый
    “виртуальный диск”. Организация таких дисков — штат- ная возможность Windows и DOS с незапамятных времен.
    Сейчас виртуальные диски используются не слишком час- то, поэтому о них подзабыли. Виртуальный диск — просто буква логического диска, закрепленная за некоторым ка- талогом. Создаются виртуальные диски командой subst.
    Шаг 1
    Рис. 10. Запускаем установочный файл. Не боимся, вирусов в нем нет!
    Шаг 2
    Рис. 11. Действительно хотим. Иначе зачем бы мы запускали инсталлятор?
    Шаг 3
    Рис. 12. Здравствуй, Denwer!
    Шаг 4
    Ответственный момент. Здесь надо выбрать каталог, в который будет установлен Denwer (если каталога с та- ким именем не существует, он будет создан). В принци- пе есть возможность установить Denwer и на flash-на- копитель, тогда можно будет носить его с компьютера на компьютер. Правда, работать все будет помедленнее.
    Если нет необходимости, лучше так не делать.
    Рис. 12. Выбор каталога для установки
    Шаг 5
    Рис. 13. Здесь разработчики своими словами объясняют, что такое виртуальный диск.

    12
    Лекция 1
    Шаг 6
    Требуется ввести букву виртуального диска. Следует выбирать только свободную букву (т.е. уж точно не C и не D!). Я выбрал Q.
    Рис. 14. Выбор буквы виртуального диска
    Шаг 7
    Выбор вариантов инициализации виртуального дис- ка — при загрузке компьютера или при запуске Den- wer. Я всегда выбираю первый вариант — диск ровным счетом ничему не мешает. При выборе этого варианта в меню автозагрузки появится скрипт инициализации диска (см. рис. 15).
    Рис. 15. Выбор вариантов инициализации виртуального диска
    Рис. 16. Вызов скрипта инициализации виртуального диска
    Шаг 8
    Собственно, все. После установки на рабочем сто- ле появляются два ярлыка для запуска и остановки
    Denwer'а. Можно сразу попробовать его запустить.
    Рис. 17. Ярлыки на рабочем столе
    При первом запуске скорее всего сработает систе- ма безопасности — брандмауэр Windows. Это нор- мально — ведь web-сервер начинает “слушать” сетевые порты. Если нажать кнопку “Разблокировать”, Windows запомнит ваш выбор и больше приставать не будет.
    Рис. 18. Предупреждение системы безопасности при первом запуске
    Когда Denwer запустится, в системном трее появятся две пиктограммы: одна — с пером (это — web-сервер
    Apache), другая — с письмом (эмулятор почтового сер- вера, который нам не понадобится).
    Рис. 19. Пиктограммы в системном трее
    Теперь можно попробовать, как все это работает.
    Запустите Denwer (если еще не сделали этого), загрузи- те браузер и введите в адресной строке http://localhost.
    Ну же!
    Если все было сделано правильно, вы увидите страни- цу “Ура, заработало!”.
    Рис. 20. Ура, заработало!
    А если не работает? . Попробуйте, пожалуйста, в пер- вую очередь посмотреть FAQ на сайте www.denwer.ru.
    В нем описаны некоторые типичные проблемы и пути их решения. Если ничего не получится — пишите.

    1
    ПрОЛетая над мирОм WEb-ПрОграммирОвания
    Что у него внутри?
    Теперь у нас очень ответственный этап (очередной очень ответственный). Мы установили Denwer и должны научиться с ним работать. Пожалуйста, аккуратно и в точности про- делайте следующие операции (я предполагаю, что виртуаль- ному диску Denwer'а соответствует буква Q):
    1. Остановите Denwer, если он у вас запущен.
    2. Откройте диск Q.
    Рис. 21. Содержимое виртуального диска Denwer'а
    3. Войдите в каталог home и создайте в нем каталог
    localweb.
    Рис. 22. Создали каталог localweb
    4. В каталоге localweb создайте каталог www.
    Рис. 23. Создали каталог www
    5. В каталог www поместите html-файл test.htm сле- дующего содержания:


    1   2   3   4   5   6   7   8   9   10   11


    написать администратору сайта