В интернете есть множество страниц, на которых дается вся информация по HTML. Например, вчера я нашел страницу с которой скачал справочник по тегам HTML (что такое теги - расскажу позже) в формате справки Windows (файл с расширением chm). Можете тоже его скачать и потом пользоваться. Покопайтесь в Яндексе, может и еще чего найдете. Конечно, самым важным источником информации является сайт консорциума Паутины Величиной в Мир http://www.w3.org - организации, которая придумала HTML, постоянно совершенствует и стандартизует его. Но там все по-английски. Теперь о программах. Я сам пользуюсь программой Dreamweaver MX фирмы Macromedia, но нам подойдет и любая другая. Даже простой редактор Notepad (по-русски Блокнот) от системы Windows - подойдет. Еще можно пользоваться встроенным редактором F4 или Shift-F4 от досовской версии Norton Commander или FAR'a. Если вы решите пользвоаться FAR'ом, то установите себе colorer - он подсвечивает синтаксис. В общем, нам нужен любой HTML-редактор, который не кладет в файл много своего. По этой причине для изучения HTML не подходят Word и FrontPage. Но они, конечно, подходят, когда надо просто по-быстрому подготовить страницу на этом языке! Для обработки графических файлов можно пользоваться программой Photoshop фирмы Adobe или программой Photopaint фирмы Corel, но, поскольку графика для нас не главное - настаивать ни на чем не буду. Когда нужна будет графика, я сам ее буду для вас готовить. Конечно, хорошо, если у вас есть какой-нибудь графический редактор и вы умеете им пользоваться. Хотя бы разрезать картинки на кусочки и менять их размеры! Что такое WWW, HTML, HTTP и гипертекст Вообще-то, этого можно было бы не писать. Ведь вы же почему-то хотите изучить HTML, а значит должны знать, что это такое! :-) Но на всякий случай вкратце скажу. Гипертекст это такой текст, который "гипер". Гипер - означает "больше, чем". То есть, гипертекст - это больше, чем текст. Превосходство гипертекста над просто текстом заключается в том, что в нем есть гиперссылки (или просто ссылки), которые ведут на другие гипертекстовые страницы. Конечно, ссылки есть во многих текстах, например, в статьях энциклопедий. Но эти ссылки не делают их текст гипертекстом потому, что они не гипер, не "живые". Читатель сам должен искать упомянутое слово, листая энциклопедию. А гиперссылка работает автоматически - достаточно лишь ткнуть в нее мышкой. Понятно, что гипертекст может существовать только в компьютерах. WWW в расшифровке дает World Wide Web, то есть, Паутина Величиной в Мир или, Всемирная Паутина. Всемирная паутина образуется, если соединить ссылками миллиарды гипертекстовых страниц друг с другом и разместить их на компьютерах по всей Земле. Тогда люди смогут путешествовать по ссылкам от страницы к странице по всему земному шару! Такая паутина существует и вы все ее знаете :-) HTTP в расшифровке дает Hyper Text Transfer Protocol, то есть, Протокол Передачи Гипертекста. Протокол - значит соглашение, правила. То есть, у нас получается "правила передачи гипертекста". Это правила, которыми пользуются компьютеры, чтобы передавать друг другу гипертекстовые страницы. Когда человек становится посетителем сайта, то компьютер сайта передает на компьютер посетителя гипертекстовые страницы, чтобы человек мог их увидеть. Без общепринятых правил это было бы невозможно - компьютеры бы не поняли друг друга. HTML в расшифровке дает Hyper Text Markup Language, то есть, "язык разметки гипертекста". Поскольку гипертекст - это больше, чем просто текст, то его просто так, простым текстом, не запишешь. Мы привыкли писать простым текстом. А чтобы получился гипертекст, надо на этом простом тексте написать программу на специальном языке - HTML. Собственно, этот язык мы и будем изучать, как многие наверное уже догадались! :-))) Страшная тайна программирования Вообще-то разметку веб-страниц не все считают программированием. Но на самом деле, конечно, это оно самое. Текст на языке HTML - это программа, которая указывает браузеру, что нарисовать и написать в своем окне. Кто такой браузер? Ну, в общем, все по порядку. Чтобы стать хорошим программистом, не важно, на каком языке, нужно знать всего одну тайну. Оказывается, не все программисты ее знают! Но вы ее знать будете, потому что я сейчас о ней расскажу. Если коротко, то когда пишешь программу, нужно всегда в своем воображении, хотя бы в общих чертах представлять, как и что компьютеры будут делать. Звучит банально, да? Но лучше вдумайтесь в это и разберитесь! Вот взять, например, язык программирования Бейсик. Там есть такой оператор, называется PRINT. Он служит для того, чтобы напечатать на экране какой-нибудь текст. Так написано в учебнике по Бейсику. Такой смысл имеет англиский глагол to print - печатать. Такой смысл вкладывают в этот оператор многие, кто им пользуется. То есть, когда программисту на Бейсике надо что-то напечатать, он использует оператор PRINT. Напечатать - PRINT. И не надо думать. Раз яблоко - значит надо трясти. Раз печатать - значит PRINT. Ан нет! Я бы хотел, чтобы у вас было не так! Я бы хотел, чтобы думая об операторе PRINT (а также о других операторах), вы представляли себе компьютер, представляли бы, как он считывает по-очереди все операторы, как он доходит до оператора PRINT, как в ответ на этот оператор он посылает какие-то команды операционной системе и как она, в свою очередь, посылает команды экрану, на котором, в конце концов появляется текст. То есть, оператор PRINT не печатает, нет. Оператор PRINT - это такая штуковина, в результате прочтения которой компьютером, на экране иногда появляется текст. Понимаете разницу? Надо представлять себе всех участников действа, а не просто надеяться на описанный в учебнике результат! Видели когда-нибудь по телевизору конкурс Гиннеса на то, кто выложит из домино дорожку подлиннее? Человек несколько месяцев расставляет доминошки, а потом, во время конкурса, толкает первую из них и отходит. Первая доминошка, падая, толкает вторую. Вторая, падая, третью - так далее. Доминошки очень долго падают, толкая одна другую, когда человек уже ушел. Так же должен действовать и программист. Когда программа выполняется - это падают доминошки. Когда программист пишет программу - это он расставляет доминошки, чтобы они упали как надо без него. Чтобы сделать это наилучшим образом, он должен всегда представлять себе доминошки! То есть, нужно представлять! Если вы выбрали в меню какой-нибудь программы пункт Файл-Печать, а файл не напечатался, то не нужно возмущаться: как это так!? я сказал напечатать, а оно не напечаталось!? Нужно представить себе всю цепочку "доминошек", начавшуюся от выбора меню и заканчивающуюся принтером и подумать, где она оборвалась! Если надо, проследить отдельные ее участки, чтобы найти обрыв. Черный ящик Для того, чтобы можно было путешествовать по интернету, должна пообщаться между собой целая куча программ. Следуя изложенному выше принципу, мы обязаны себе отчетливо представлять эти программы (это сейчас наши доминошки), как они взаимодействуют. Но сначала надо представить себе, как вообще могут взаимодействовать программы. Для этого используется понятие черного ящика. То есть, каждая программа представляется этим самым черным ящиком. Что такое черный ящик? Ну как же!? Это - доминошка! :-)) А если по-научному, то черный ящик - это элемент системы, устройством которого мы в данный момент не интересуемся. А интересуемся мы только тем, что на этот элемент может повлиять (кто может толкнуть доминошку) и на что, в свою очередь, сам этот элемент может повлиять (кого может толкнуть сама доминошка). Говорят, что у черного ящика есть входы и выходы. Входы - это воздействие на ящик. Выходы - это воздействие ящика на другие ящики. Черный ящик рисуется в виде прямоугольника, не не черного, а белого, чтобы внутри еще можно было что-нибудь написать для понятности. Слово "черный" означает лишь, что мы не знаем, что творится внутри ящика. Входы обозначаются стрелками, идущими к ящику, а выходы - от ящика. Это показано на рисунке box.gif, там белый фон ящика использован, чтобы написать "программа" :-) Когда черные ящики это программы, то по ним ходит информация. Входит во входы. Обрабатывается и преобразовывается внутри ящика. И выходит из выходов. А дальше - попадает на входы других ящиков. И так далее. На рисунке flow.gif показано, как информация попала во вход 1, обработалась внутри программы и потом вышла через выход 2. Как я уже сказал, полностью картина представляется, как сеть, состоящая из нескольких черных ящиков. Рассмотрим в качестве примера ситуацию, когда человек открыл в текстовом редакторе файл, исправил в нем ошибки, внес дополнения и сохранил его на диске в измененном виде. Это показано на рисунке texteditor.gif Схема более сложная. В ней три участника - человек, текстовый редактор и файловая система. Все участники обозначены черными ящиками. Давайте рассмотрим, как информация путешествует между ними. Все шаги помечены одинаковыми номерами на рисунке и в тексте. Человек решает открыть файл и указывает его имя текстовому редактору. Текстовый редактор передает запрос на получение указанного файла файловой системе. Файловая система находит нужный файл и возвращает его тектовому редактору. Текстовый редактор показывает полученный файл на экране. Человек просматривает файл, думает, что в нем нужно изменить и отдает необходимые команды текстовому редактору. И так несколько раз. Текстовый редактор вносит указанные человеком изменения в хранящиейся у него в памяти файл и показывает новую версию человеку. И так несколько раз. Наконец, человек решает что работа закончена и приказывает текстовому редактору запомнить файл. Текстовый редактор передает файл на запоминание файловой системе. Файловая система запоминает файл. Вот такое путешествие информации и взаимодействие черных ящиков нужно научиться всегда прокручивать у себя в голове. Мы больше не будем рисовать путь, которым идет информация, поскольку это всегда можно себе представить. Кроме того, мы не будем рисовать отдельных стрелок туда и обратно, обойдемся двусторонними стрелками. Получится рисунок faces.gif Как видите, схема значительно упростилась. Названия черных ящиков теперь можно красиво писать в самой середине. Поубавилось количество стрелок. Кстати, стрелки называются интерфейсами. Интерфейсы - это каналы, по которым черные ящики могут обмениваться информацией, разговаривать. Например, человек с текстовым редактором разговаривает при помощи оконного интерфейса (в наше время чаще всего происходит именно так). Если текстовый редактор работает под операционной системой Windows, то он может разговаривать с файловой системой при помощи интерфейса Win32. Это я просто для примера сказал. Схема взаимодействия при просмотре статических веб-страниц Теперь переходим к самой главной части - к схеме того, как взаимодействуют программы и, собственно, какие программы взаимодействуют, когда человек лазит по интернету. Рассмотрим самый простой случай: человек ткнул в ссылку и открыл страницу в интернете. Участниками этого действия являются следующие черные ящики (в скобках указано, что собой представляет каждый из ящиков): человек (живое существо) веб-браузер (программа) сервер имен (программа) веб-сервер (программа) файловая система (набор программ и оборудования) Ну, что такое человек, объяснять не буду. Если кто-то из вас инопланетянин, то прочтите те золотые диски, которые мы вам направили уже целую кучу наверное, там все нарисовано :-) Веб браузер. Еще иногда его называют обозреватель интернета или веб-клиент. Это программа, которая работает на машине пользователя и служит для показа ему гипертекстовых страниц, картинок, а также для других дел. Наиболее известные программы такого рода - это Internet Explorer, Netscape и Opera. А самой первой была программа NCSA Mosaic. Сервер имен. Для многих это будет что-то новенькое, да? На самом деле, ничего сложного в этом нет. Дело в том, что сама сеть интернет позволяет компьютерам соединяться друг с другом при помощи адресов, похожих на телефонные номера (IP-адреса). Например, адрес сервера www.yandex.ru - 213.180.194.129. Компьютерам такие адреса удобнее. А людям нет. Людям удобнее адреса типа www.yandex.ru, их легче запомнить. Поэтому, в интернете заведены специальные компьютеры, на которых работают специальные программы (сервера имен), которые помнят, какому числовому адресу какой буквенный соответствует. Поэтому, когда вы говорите своему браузеру, чтобы он связался с сервером www.yandex.ru, он сначала должен связаться с сервером имен, узнать у него числовой адрес сервера yandex, запомнить его, и только потом, уже по нему - связаться с яндексом. Веб-сервер это программа, задача которой обслуживать запросы браузеров и выдавать запрашиваемые ими страницы. Некоторые известные из таких программ - это бесплатный веб-сервер Apache, который каждый может скачать из интернета и установить на своем компьютере. Существуют также коммерческий сервера, например Internet Information Server фирмы Microsoft (IIS). Обычно веб-браузер работает на одном компьютере, а веб-сервер - на другом. Компьютер, на котором работает веб-сервер называется хостом. Файловая система - это часть операционной системы, задача которой хранить информацию на магнитных дисках (винчестерах) и других носителях, разбираться со свободным местом и заниматься многими другими служебными делами, а также отдавать файлы по запросам программ. Эти участники связаны между собой следующим образом (рисунок web.gif): Теперь, наконец, рассмотрим, как в нормальной ситуации происходит получение статической веб-страницы. Человек тыкает мышкой в готовую ссылку или набирает желаемый адрес. Этот адрес означает некую страницу в интернете, которую вся эта система должна в интернете отыскать и человеку показать. Адрес называется URL, что в расшифровке дает Universal Resource Locator, то есть, "всеобщий указатель источника" или, по-нашему, адрес. Веб-браузер берет URL и отделяет от него первую часть, которая называется именем хоста. Host по-английски значит "держать". Имя хоста - это имя компьютера, на котором находится нужная страница. Имя хоста находится после http:// и первой дробью. Например, в адресе http://www.webinform.ru/analyst/671.html именем хоста будет www.webinform.ru. Веб-браузер берет это имя хоста и направляет запрос по нему серверу имен. Сервер имен получает имя хоста, смотрит имеющиеся у него таблицы имен, связывается с другими серверами имен и, в конце концов, узнает IP-адрес хоста, имя которого было ему передано. Этот IP-адрес он передает веб-браузеру. Веб-браузер получает IP-адрес и при помощи него связывается с хостом, на котором работает веб-сервер. Веб-серверу он передает весь указанный пользователем URL (а не только остаток). Эта передача называется HTTP-запросом. Получив HTTP-запрос, веб-сервер отделяет от него имя хоста, добавляет к отстатку путь к папке с веб-страницами и результат передает файловой системе в качестве пути к файлу. Файловая система получает путь к файлу, берет этот файл и возвращает его веб-серверу. Обычно это файл, написанный на языке HTML. Веб-сервер возвращает полученный файл веб-браузеру. Кроме того, он сообщает некоторую служебную информацию. Это называется HTTP-ответом. Веб-браузер получает HTTP-ответ, вычленяет оттуда программу на языке HTML, разбирает ее и под ее руководством отображает на экране веб-страницу. Человек читает полученную страницу. Ну как? Вроде все просто! Главное, никогда не забывать быстро проигрывать в уме, как общаются между собой черные ящики!Content-Disposition: form-data; name="format" 1
|