Благодаря Всемирной паутине, почти любой может дать информацию в Интернете в приятном для глаз и пригодном для широкого распространения виде. Вы несомненно путешествовали по Интернету и видели другие сайты, и теперь вероятно знаете, что пугающие сокращения типа "HTTP" и "HTML" - просто своеобразные сокращения для "Веб" и "способ выражения информацим в Интернете". Возможно у Вас уже есть некоторый опыт представления информации в Интернете.

Интернет доказал, что является идеальной средой для распределения информации, как видно по его огромной популярности и масштабного развития. Хотя кое-кто подвергает сомнению полезность Интернета и приписывают ее широкое развитие и популярность главным образом навязчивой рекламе, Интернет бесспорно является важным средством представления всевозможных видов информации. Мало того, что существует множество услуг по предоставлению самой свежей информации (новости, погода, спортивные события в реальном времени) и материалов справочного характера в электронном виде, предлагаются также значительные объемы данных другого рода. Налоговое управление США, которое распространило все свои бланки налоговых деклараций в 1995 году и другую информацию через Всемирную паутину, недавно призналось о получении писем от поклонников своего Веб-сайта. Кто бы мог подумать, что Налоговое управление когда-нибудь будет получать письма от поклонников? Это произошло не от того, что его сайт был хорошо оформлен, а потому что он оказался по-настоящему полезным инструментом для тысяч, а возможно и миллионов людей.

Что делает Веб уникальным и таким привлекательным информационным сервисом? Прежде всего тем, что он предоставляет интерфейс гиперсреды для данных. Вспомните дисковод жесткого диска своего компьютера. Как правило, данные выражаются в линейном виде, аналогично файловой системе. Например, Вы имеете ряд папок, а внутри каждой папки находятся либо документы либо другие папки. Веб использует разную парадигму для выражения информации называемой гиперсредой. Гипертекстовый интерфейс состоит из документа и связей. Связи - это слова, на которые кликают, чтобы увидеть другие документы или отыскать другие виды информации. Веб расширяет концепцию гипертекста, включив другие типы носителей, например графику, звуки, видео (отсюда имя "гиперсреда"). Выделение текста или графики на документе позволяет увидеть связанную информацию о выделенном элементе в любом количестве форм.

Почти каждый человек может извлечь выгоду из этого простого и уникального способа представления и распределения информации, начиная от академиков, которые хотят немедленно использовать данные вместе со своими коллегами, и кончая деловыми людьми, которые дают информацию о своей компании всем желающим. Однако, хотя дать информацию чрезвычайно важно, в последние несколько лет многие ощутили, что не менее важным процессом является получение информации.

Хотя Веб предоставляет для информации уникальный интерфейс гиперсреды, имеется много других эффективных способов распределения данных. Например, сетевые услуги типа Протокола передачи файлов (FTP) и группа новостей "Gopher" существовали намного раньше появления Всемирной паутины. Электронная почта была первичной средой для связи и обмена информацией по Интернету и большинством других сетей почти с самого начала функционирования этих сетей. Почему Интернет стал таким популярным способом распределения информации? Мультимедийный аспект Интернета внес ощутимый вклад в его небывалый успех, но для того, чтобы Интернет стал наиболее эффективным он должен быть интерактивным.

Без способности получать ввод от пользователей и давать информацию, Веб был бы полностью статической средой. Информация была бы доступна только в формате, определенном автором. Это подорвало бы одну из вычислительных возможностей вообще: интерактивную информацию. Например, вместо того, чтобы принуждать пользователя к просмотру нескольких документов, как если бы он или она просматривали книгу или словарь, будет лучше позволить пользователю определить ключевые слова по интересующей их тематике. Пользователи могут настраивать представление данных, а не полагаться на жесткую структуру, определенную поставщиком содержимого.

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

Хотя серверы могут посылать и получать данные, у самого сервера функциональные возможности ограничены. Например, наиболее примитивный сервер может только отослать требуемый файл на браузер. Сервер обычно не знает, что делать с тем или иным дополнительным вводом. Если Интернет-провайдер не сообщает серверу, как обработать такую дополнительную информацию, вероятнее всего сервер проигнорирует ввод.

Для того, чтобы сервер смог выполнять и другие операции, помимо поиска и пересылки файлов на Интернет-браузер, нужно знать, как расширить функциональные возможности сервера. Например, сервер Веб не может производить поиск в базе данных, на основе ключевого слова, введенного пользователем, и возвращать несколько документов соответствия, если такая способность не была каким-то образом запрограммирована для сервера.

Что такое CGI?

Общешлюзовой интерфейс (CGI) является интерфейсом к серверу, который позволяет расширить функциональные возможности сервера. Используя CGI, можно работать в диалоговом режиме с пользователями, которые обращаются к вашему сайту. На теоретическом уровне, CGI позволяет расширить возможности сервера в отношении анализа (интерпретации) ввода, поступающего от браузера, и возвращать информацию, основанную на введенной информации пользователя. На практическом уровне, CGI - это интерфейс, позволяющий программисту записать программы, которые легко связываются с сервером.

Обычно, для расширения возможностей сервера, Вам пришлось бы самому модифицировать сервер. Такое решение нежелательно, потому что это требует понимания нижнего уровня сетевого программирования по протоколу Интернета. Это также требовало бы редактирования и перекомпиляции исходного кода сервера или записи пользовательского сервера для каждой задачи. Допустим, нужно расширить возможности сервера так, чтобы он действовал как шлюз Web-to-e-mail (от Веб к эл.почте), отбирая информацию, введенную пользователем, из браузера и посылая ее по электронной почте другому пользователю. В сервер пришлось бы вставить код для анализа ввода от браузера, пересылки бы его по электронной почте другому пользователю, и пересылке ответа назад в браузер через сетевое соединение.

Во-первых, такая задача требует наличия доступа к коду сервера, что не всегда возможно.

Во-вторых, это трудно и требует обширных технических знаний.

В-третьих, это применимо только для конкретного сервера. Если нужно переместить ваш сервер на другую платформу, придется запустить или по крайней мере потратить много времени, занимаясь переносом кода на эту платформу.

Почему CGI?

CGI предлагает переносимое и простое решение этих проблем. Протокол CGI определяет стандартный способ для программ, чтобы связаться с сервером Веб. Без каких-либо специальных знаний, можно записать программу на любом машинном языке, который сопрягается и связывается с сервером Веб. Эта программа будет работать со всеми серверами Веб, которые понимают протокол CGI.

Связь CGI осуществляется стандартным вводом и выводом, что означает, что, если Вы знаете, как печатать и читать данные, используя свой язык программирования, можно написать приложение сервера Веб. Помимо анализа ввода и вывода, программирование приложений CGI почти эквивалентно программированию любого другого приложения. Например, для программирования программы "Hello, World!", используются функции печати вашего языка и формат, определенный для программ CGI, чтобы напечатать соответствующее сообщение.

Выбор языка програмирования

Поскольку CGI - универсальный интерфейс, Вы не ограничены каким-либо определенным машинным языком. Часто задают важный вопрос: какие языки программирования можно использовать для программирования CGI? Вы можете использовать любой язык, который позволяет делать следующее:

  • Печатать в стандартном выводе
  • Читать со стандартного ввода
  • Читать с переменных режимов

Почти все языки программирования и много языков описания сценария выполняют эти три действия, и можно использовать любой из них.

Языки подпадают под один из следующих двух классов: транслируемый и интерпретируемый. Транслируемый язык -например, C или C++ обычно меньше и быстрее, в то время как интерпретируемые языки, такие как Perl или Rexx, иногда требуют загрузки большого интерпретатора после запуска. Дополнительно, Вы можете распределять двоичные коды (код, транслируемый в машинный язык) без исходного кода, если ваш язык транслируемый. Распределение интерпретируемых сценариев обычно означает распределение исходнго кода.

Перед тем, как выбрать язык, сначала нужно рассмотреть свои приоритеты. Нужно оценить выгоды от скорости и эффективности одного языка программирования с легкостью программирования другого. Если у Вас есть желание изучить другой язык, вместо использования того, который Вы уже знаете, тщательно взвести преимущества и недостатки обоих языков.

Два наиболее часто используемых языка для программирования CGI - это C и Perl (оба из которых рассматриваются в настоящей книге). У обоих имеются четкие преимущества и недостатки. Perl - язык очень высокого уровня, и в то же время мощный язык, особенно пригодный для синтаксического анализа текста. Хотя легкость использования, гибкость, и мощность делает его языком, привлекательным для программирования CGI, его относительно большой размер и более медленная работа иногда делает его неподходящим для некоторых приложений. Программы C меньше по размеру, более эффективны и обеспечивают контроль за системой более низкого уровня, но более сложны для программирования, не имеют легких встроенных подпрограмм обработки текста, и их труднее отладить.

Какой язык является наиболее подходящим для программирования CGI? Тот, который Вы считаете для себя более удобным с точки зрения программирования. Оба одинаково эффективны для программирования приложений CGI, и с надлежащими библиотеками, оба имеют схожие возможности. Однако, если Вы имеете труднодоступный сервер, можно использовать меньшие транслируемые программы C. Если Вы должны быстро написать приложение, которое требует значительной работы по обработке текста, можно вместо него использовать Perl.

Предостережения

Имеются некоторые важные альтернативы к приложениям CGI. Много серверов теперь включают API-программирование, которое облегчает программирование прямых расширений сервера в противоположность отдельным приложениям CGI. Серверы API обычно более эффективны, чем программы CGI. Другие серверы включают встроенные функциональные возможности, которые могут обрабатывать специальные элементы без CGI, например, сопряжение баз данных. И наконец, некоторые приложения могут быть обработаны некоторыми новыми клиентскими (а не серверными) технологиями типа Java. Быстро ли устареет CGI в условиях таких быстрых изменений в технологии,?

Вряд ли. CGI имеет несколько преимуществ перед более новыми технологиями.

  • Он универсален и переносим. Вы можете написать приложение CGI, используя практически любой язык программирования на любой платформе. Некоторые из альтернатив, такие как API сервера, ограничивают Вас некоторыми языками и намного сложны для изучения.
  • Маловероятно что, клиентские технологии типа Java, заменят CGI, потому что имеются некоторые приложения, для которых серверные приложения намного лучше подходят для выполнения.
  • Многие из ограничений CGI - это ограничения HTML или HTTP. По мере развития стандартов Интернета в целом, развиваются и возможности CGI.

Резюме

Общешлюзовой интерфейс - это протокол, в соответствии с которым программы взаимодействуют с серверами Веб. Универсальность CGI дает программистам возможность написать шлюзовые программы почти на любом языке, хотя имеются много компромиссных решений, связанных с различными языками. Без этой способности, создание интерактивных страниц Веб было бы затруднено, в лучшем случае, потребовалась бы модификациия сервера, и интерактивность оказалась бы недоступной для большинства пользователей, которые не являются администраторами сайта.

Глава 2. Основы

Несколько лет назад, я создавал для колледжа в Гарварде страницу, куда бы можно было представлить свои комментарии о них. В то время, Интернет был молод, а документации было мало. Я, подобно многим другим, опирался на краткую документацию и систему программирования, созданную другими, чтобы научиться программированию CGI. Хотя этот метод изучения потребовал определенного поиска, множества экспериментов, и создавал много вопросов, он был очень эффективным. Настоящая глава - плод моей работы с CGI на ранних этапах (с несколькими уточнениями, разумеется).

Хотя для того, чтобы, полностью понять общешлюзовой интерфейс и достичь мастерства при работе с ним требуется некоторое время, сам протокол довольно прост. Любой человек, у которого есть некоторые основные навыки программирования, и который знаком с Веб, может быстро научиться программированию довольно сложных приложений CGI так же как я и другие научились этому несколько лет назад.

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

Вы можете свести программирование CGI к двум задачам: к получению информации от браузера Веб и отсылке информации назад на браузер. Это делается достаточно интуитивно, как только Вы усвоите обычное использование приложений CGI. Часто пользователю предлагают заполнить какую-либо форму, например, вставить свое имя. Как только пользователь заполняет форму и нажимает Enter, эта информация посылается программе CGI. Программа CGI должна затем преобразовать эту информацию в то, что она понимает, соответственно обработать ее, и затем послать назад браузеру, будь то простое подтверждение или результат поиска в многоцелевой базе данных.

Другими словами, для программирования CGI требуется понять, как получить ввод от Интернет-браузера и как отослать вывод назад. Что происходит между стадиями ввода и вывода программы CGI, зависит от цели разработчика. Вы обнаружете, что главная сложность программирования CGI заключается в этой промежуточной стадии; после того, как Вы узнаете, как работать с вводом и выводом, этого будет, по существу, достасточно, чтобы стать разработчиком CGI.

В настоящей Главе, Вы изучите принципы, лежащие в основе ввода и вывода CGI, а также другие элементарные навыки, которые потребуются, чтобы записывать и использовать CGI, включая такие моменты, как создание форм HTML и присвоение имени вашим программам CGI. В данной главе рассматриваются следующие темы:

  • Традиционная программа " Hello, World!";
  • Вывод CGI: отсылка информации назад для отображения в Интернет-браузере;
  • Конфигурирование, установка, и выполнение приложения. Вы узнаете о различных платформах и серверах Веб;
  • Ввод CGI: интерпретация информации, посланной браузером Веб. Ознакомление с некоторыми полезными библиотеками программирования для анализа такого ввода;
  • Простой пример: он охватывает все уроки данной главы;
  • Стратегия программирования.

Из-за характера данной главы, я только слегка касаюсь некоторых тем. Не волнуйтесь; все эти темы рассматриваются гораздо глубже в других главах.

Hello, World!

Вы начинаете с традиционной вводной задачи программирования. Вы напишете программу, которая отобразит "Hello, World!" на вашем браузере Веб. Прежде, чем написать эту программу, Вы должны понять, какую информацию браузер Веб ожидает получить от программ CGI. Вы также должны знать, как выполнить эту программу, так чтобы увидеть ее в действии.

CGI независит от языка, так что Вы можете реализовать эту программу на любом языке. Здесь используется несколько различных языков, чтобы продемонстрировать независимость каждого языка. В языке Perl, программа " Hello,World!" показана в листинге 2.1.

Листинг 2.1. Hello, World! в Perl. #!/usr/local/bin/perl # Hello.cgi - Моя первая программа CGI print "Content-Type: text/html\n\n"; print " \n"; print "Hello, World!"; print "\n"; print "\n"; print "

Hello, World!

\n"; print " \n";

Сохраните эту программу как hello.cgi, и установите ее в соответствующем месте. (Если Вы не уверены, где оно находится, не беспокойтесь; Вы узнаете это в разделе "Установка и выполнение программы CGI " ниже в данной главе.) Для большинства серверов нужный каталог называется cgi-bin. Теперь, вызовите программу из вашего браузера Веб. Для большинства, это означает открыть следующий универсальный указатель ресурса (URL):

http://hostname/directoryname/hello.cgi

Hostname - имя вашего сервера Веб, и directoryname - каталог, в который Вы помещаете hello.cgi (вероятно cgi-bin).

Разбиение hello.cgi

Следует отметить несколько моментов относительно hello.cgi.

Во-первых, вы используете простые команды печати. Программы CGI не требуют никаких специальных дескрипторов файла или описателей вывода. Чтобы послать вывод браузеру, просто печатают на stdout.

Во-вторых, обратите внимание на то, что содержание первого оператора печати (Content-Type: text/html) не появляется на вашем браузере Веб. Вы можете отослать любую информацию, по Вашему усмотрению, назад на браузер (страницу HTML, графику или звук), но сначала, нужно сообщить браузеру какого вида данные вы ему посылаете. Эта строка сообщает браузеру какой вид информации ожидать - в данном случае, страницу HTML.

В-третьих, программа называется hello.cgi. Не всегда нужно использовать расширение.cgi с именем вашей программы CGI. Хотя исходный код для многих языков также использует расширение.cgi, оно не используется для обозначения типа языка, а является для сервера способом идентификации файла как исполняемого файла, а не графического файла, файла HTML или текстового файла. Серверы часто конфигурируются так, чтобы только попытаться выполнить те файлы, которые имеют это расширение, отображая содержание всех других. Хотя использование расширения.cgi не обязательно, это все еще считается хорошей практикой.

В общем, hello.cgi состоит из двух основных частей:

  • сообщает браузеру какую информацию ожидать (Content-Type: text/html)
  • сообщает браузеру, что отобразить (Hello, World!)

Hello, World! в C

Чтобы показать независимость программ CGI от языков, в листинг 2.2 показан эквивалент программы hello.cgi , написанной в C.

Листинг 2.2. Hello, World! в C. /* hello.cgi.c - Hello, World CGI */ #include int main() { printf("Content-Type: text/html\r\n\r\n"); printf(" \n"); printf("Hello, World!\n"); printf("\n"); printf("\n"); printf("

Hello, World!

\n"); printf(" \n"); }

Примечание

Обратите внимание на то, что версия Perl hello.cgi использует Content-Type print ": text/html\n\n "; В то время как версия C использует Printf (" Content-Type: text/html\r\n\r\n ");

Почему Perl печатает операторный конец с двумя символами новой строки (\n), в то время как C printf заканчивается двумя символами возврата каретки и новой строки(\r\n)?

Формально, заголовки (весь вывод перед пустой строкой) как предполагается, будут отделены символом возрата каретки и новой строки. К сожалению, на машинах DOS и Windows, Perl транслирует \r как другую новую строку, а не как перевод каретки.

Хотя исключение \rs в Perl технически неправильно, она будет работать почти во всех протоколах и так же переноситься всеми платформами. Поэтому, во всех примерах Perl в этой книге я использую новую строку, отделяющие заголовки, а не символы возврата каретки и новой строки.

Соответствующее решение этой проблемы представлено в Главе 4, "Вывод".

Ни серверу Веб, ни браузеру не важно, какой язык используется для записи программы. Хотя каждый язык имеет преимущества и недостатки в качестве языка программирования CGI, лучше использовать язык, с которым Вам удобнее всего работать. (Более детально выбор языка программирования обсуждается в Главе 1 "Общешлюзовой интерфейс (CGI) ").

Выведение CGI

Теперь можно внимательнее изучить вопрос отправки информации на браузер Веб. Из примера " Hello, World!", видно, что браузеры Веб ожидают два набора данных: заголовок, который содержит информацию, например какую информацию отобразить (например Content-Type: line) и фактическую информацию (что отображается на браузере Веб). Эти два блока информации отделены пустой строкой.

Заголовок называется заголовком HTTP. Он дает важные сведения об информации, которую браузер собирается получать. Имеются несколько различных типов заголовков HTTP, и наиболее универсальным является тот, который Вы использовали раньше: Content-Type: заголовок. Вы можете использовать различные комбинации заголовков HTTP, отделяя их символами возврата каретки и новой линии (\r\n). Пустая строка, отделяющая заголовок от данных, также состоит из возврата каретки и новой строки (почему нужны оба, кратко описано в предшествующем примечании и подробно в Главе 4). Вы узнаете о других заголовках HTTP в Главе 4; в данный момент Вы занимаетесь Content-Type: заголовок.

Content-Type: заголовок описывает тип данных, которые возвращает CGI. Соответствующим форматом для этого заголовка является:

Content-Type: subtype/type

Где subtype/type - правильный тип многоцелевых расширений почты Интернета (MIME). Наиболее распространенным типом MIME является тип HTML: text/html. В таблице 2.1 приведено еще несколько распространненых типов MIME, которые будут рассмотрены; более полный перечень и анализ типов MIME приводится в Главе 4.

Примечание

MIME было первоначально изобретено для описания содержания тел сообщений почты. Оно стало довольно распространненым способом представления информации о Content-Type . Вы можете узнать больше о MIME в RFC1521. RFCs в Интернете обозначают "Просьбы о комментариях", которые представляют собой резюме решений, принятых группами в Интернете, пытающимися установить стандарты. Можно посмотреть результаты RFC1521 на следующем адресе: http://andrew2.andrew.cmu.edu/rfc/rfc1521.html

Таблица 2.1. Некоторые общие типы MIME. Тип MIME Описание Text/html Язык разметки гипертекста (HTML) Text/plain Простые текстовые файлы Image/gif Графические файлы GIF Image/jpeg Сжатые графические файлы JPEG Audio/basic Аудио - файлы Sun *.au Audio/x-wav Файлы Windows *.wav

После заголовка и пустой строки, Вы просто печатаете данные в нужном для Вас виде. Если Вы посылаете HTML, то печатайте теги HTML и данные к stdout после заголовка. Вы можете послать также графику, звук и другие двоичные файлы, просто печатая содержимое файла в stdout. Несколько примеров этого приведено в Главе 4.

Установка и выполнение программы CGI

Данный раздел несколько отклоняется от программирования CGI и рассказывает о конфигурирования вашего сервера Веб для использования CGI, об установке и выполнении программ. Вы ознакомитесь с различными серверами для различных платформ более или менее подробно, но Вам придется глубже изучить документацию своего сервера с целью нахождения оптимального варианта.

Все серверы требуют пространства для файлов сервера и пространства для документов HTML. В настоящей книге, область сервера называется ServerRoot, а область документа - DocumentRoot. На машинах UNIX ServerRoot - обычно в /usr/local/etc/httpd/, а DocumentRoot - обычно в /usr/local/etc/httpd/htdocs/. Однако, это не имеет никакого значения для вашей системы, поэтому замените все ссылки на ServerRoot и DocumentRoot на ваши собственные ServerRoot и DocumentRoot.

Когда Вы обращаетесь к файлам, используя ваш браузер Веб, Вы определяете файл в URL относительно DocumentRoot. Например, если адрес вашего сервера mymachine.org, то Вы обращаетесь к этому файлу со следующим URL: http://mymachine.org/index.html

Конфигурирование сервера для CGI

Большинство серверов Веб имеет такую предварительную конфигурацию, которая позволяет использовать программы CGI. Обычно два параметра указывают серверу о том, является ли файл приложением CGI или нет:

  • Обозначенный каталог. Некоторые серверы позволяют определить, что все файлы в обозначенном каталоге (обычно, по умолчанию, называемый cgi-bin) являются CGI.
  • Расширения имени файла. Много серверов имеют такую предварительную конфигурацию, которая позволяет определять все файлы заканчивающиеся на.cgi, как CGI.

Метод обозначенного каталога - это своего рода пережиток прошлого (самые первые серверы использовали его как единственный метод для определения того, какие файлы были программами CGI), но он имеет несколько преимуществ.

  • Он сохраняет программы CGI в централизованном виде, препятствуя загромождению других каталогов.
  • Вы не ограничены каким-либо определенным расширением имени файла, так что можете называть файлы так, как хотите. Некоторые серверы позволяют обозначить несколько различных каталогов в качестве каталогов CGI.
  • Он также дает больше возможностей в отношении контроля над теми, кто может записывать CGI. Например, если Вы имеете сервер и поддерживаете систему с несколькими пользователями и не хотите, чтобы они использовали свои собственные сценарии CGI без предварительной ревизии программы из соображений безопасности, можно обозначить только эти файлы в ограниченном,централизованном каталоге как CGI. Пользователи тогда должны будут предоставить Вам программы CGI для установки и Вы сможете сначала провести ревизию кода, чтобы удостовериться, что у программы нет каких-либо крупных проблем с защитой.

Обозначение CGI через расширение имени файла может быть полезно благодаря его гибкости. Вы не ограничены одним единственным каталогом для программ CGI. Большинство серверов может быть конфигурировано, чтобы распознать CGI через расширение имени файла, хотя по умолчанию не все из них конфигурированы таким образом.

Предостережение

Помните о важности вопросов защиты, когда Вы конфигурируете ваш сервер для CGI. Некоторые подсказки будут рассмотрены здесь, а в Главе 9 "Защита CGI" эти аспекты рассматриваются более подробно.

Установка CGI на серверах UNIX

Независимо от того, как конфигурирован ваш сервер UNIX, нужно предпринять несколько шагов, чтобы удостовериться в том, что ваши приложения CGI выполняются должным образом. Ваш сервер Веб обычно будет работать как несуществующий пользователь (то есть пользователь UNIX nobody - учетная запись, которая не имеет прав доступа к файлу и не может быть зарегистрирована). Сценарии CGI (написанные на Perl, оболочке Bourne или на другом языке описания сценария) должны быть, выполнимы и читаемы по всему миру.

Подсказка

Чтобы сделать ваши файлы читаемыми и выполнимым по всему миру, используйте следующую команду UNIX права доступа: chmod 755 имени файла.

Если Вы используете язык описания сценария типа Perl или Tcl, укажите полный путь вашего интерпретатора в первой строке вашего сценария. Например, сценарий Perl, использующий perl в каталоге /usr/local/bin должен начинаться со следующей строки:

#!/usr/local/bin/perl

Предостережение

Никогда не помещайте интерпретатор (perl, или двоичный код Tcl Wish в каталог /cgi-bin. Это создает опасность для защиты в Вашей системе. Более подробно это описано в Главе 9.

Некоторые универсальные cерверы UNIX

Серверы NCSA и Apache имеют файлы со сходной конфигурацией, потому что сервер Apache был первоначально основан на коде NCSA. По умолчанию, они конфигурированы таким образом, чтобы любой файл в каталоге cgi-bin (расположенный по умолчанию в ServerRoot) являлся программой CGI. Чтобы изменить местоположение каталога cgi-bin, можно отредактировать файл конфигурации conf/srm.conf. Форматом для конфигурирования этого каталога является

ScriptAlias fakedirectoryname realdirectoryname

где fakedirectoryname - псевдо-имя каталога (/cgi-bin), и realdirectoryname - полный путь, где программы CGI фактически сохранены. Вы можете конфигурировать более одного ScriptAlias, добавляя еще строки ScriptAlias.

Заданная по умолчанию конфигурация достаточна для потребностей большинства пользователей. Нужно отредактировать строку в файле srm.conf в любом случае, чтобы определить правильное realdirectoryname. Если, например, Ваши программы CGI расположены в /usr/local/etc/httpd/cgi-bin, строка ScriptAlias в вашем файле srm.conf должна походить на следующую:

ScriptAlias /cgi-bin/ /usr/local/etc/httpd/cgi-bin/

Чтобы обращаться или ссылаться на программы CGI, расположенные в этом каталоге, используется следующий URL:

Http://hostname/cgi-bin/programname

Где hostname - имя хозяина вашего сервера Веб, и programname - имя Вашего CGI.

Например, допустим, что Вы скопировали программу hello.cgi в Ваш каталог cgi-bin (например, /usr/local/etc/httpd/cgi-bin) на Вашем сервере Веб, называемом www.company.com. Чтобы обратиться к вашему CGI, используйте следующий URL: http://www.company.com/cgi-bin/hello.cgi

Если нужно конфигурировать сервер NCSA или Apache так, чтобы распознавать любой файл с расширением.cgi как CGI, нужно отредактировать два файла конфигурации. Сначала, в файле srm.conf, не комментируйте следующую строку:

AddType application/x-httpd-cgi .cgi

Это свяжет CGI типа MIME с расширением.cgi. Теперь, нужно изменить файл access.conf, чтобы можно было выполнить CGI в любом каталоге. Для этого, добавьте опцию ExecCGI к строке Option. Это будет выглядеть примерно как следующая строка:

Option Indexes FollowSymLinks ExecCGI

Теперь, любой файл с расширением.cgi считается CGI; обращайтесь к нему, как обращались бы к любому файлу на вашем сервере.

Сервер CERN конфигурирован так же, как и серверы Apache и NCSA. Вместо ScriptAlias, сервер CERN использует команду Exec. Например, в файле httpd.conf, Вы увидете следующую строку:

Exec /cgi-bin/* /usr/local/etc/httpd/cgi-bin/*

Другие серверы UNIX можно конфигурировать таким же способом; более подробно об этом описано в документации сервера.

Установка CGI на Windows

Большинство серверов, доступных для Windows 3.1, Windows 95 и Windows NT конфигурировано с помощью метода "расширение имени файла" для распознавания CGI. Вообще, изменение конфигурации сервера на базе Windows просто требует выполнения программы конфигурации сервера и внесения соответствующих изменений.

Иногда конфигурирование сервера для правильного выполнения сценарий (типа Perl) представляется сложным делом. В DOS или Windows, Вы не сможете определить интерпретатор на первой строке сценария, как это происходит при работе с UNIX. Некоторые серверы имеют заранее заданную конфигурацию, чтобы связать некоторые расширения имени файла с интерпретатором. Например, многие Веб-серверы Windows предполагают, что файлы, оканчивающиеся на.pl, являются сценариями Perl.

Если сервер не выполняет такой тип ассоциации файла, можно определить пакетный файл упаковщика, который вызывает как иинтерпретатор, так и сценарий. Как и с сервером UNIX, не устанавливайте интерпретатор ни в каталоге cgi-bin ни в каком-либо Веб-доступном каталоге.

Установка CGI на Macintosh

Две наиболее известные опции сервера для Macintosh - это WebStar StarNine и его предшественник MacHTTP. Оба распознают CGI по расширению имени файла.

MacHTTP понимает два различных расширения: .cgi и.acgi, который обозначает асинхронный CGI. Регулярные программы CGI, установленные на Macintosh (с расширением.cgi), будут поддерживать Веб-сервер в состоянии занятости, пока не закончится выполнение CGI, вынуждая сервер приостановить выполнение всех других запросов. Асинхронный CGI, с другой стороны, позволяет серверу принимать запросы даже во время своей работы.

Разработчик CGI Macintosh, использующий любой из этих Веб-серверов, должен, по возможности, использовать просто расширение.acgi, а не расширение.cgi. Оно должно работать с большинством программ CGI; если оно не работает, переименуйте программу на.cgi.

Выполнение CGI

После того, как вы установили CGI, имеются несколько способов выполнить его. Если ваш CGI -программа, работающая только с выводом, типа программы Hello,World!, тогда Вы может выполнять ее, просто обращаясь к ее URL.

Большинство программ выполняется как серверное приложение к форме HTML. Прежде, чем научиться, как получать информацию от этих форм, сначала прочтите краткое введение о создании таких форм.

Быстрая обучающая программа по формам HTML

Два наиболее важных тега в форме HTML - это теги

и . Можно создавать большинство форм HTML, используя только эти два тега. В данной главе, Вы изучите эти теги и небольшое подмножество возможных типов или атрибутов . Полное руководство и ссылка на формы HTML находятся в Главе 3 " HTML и формы" .

Тег

Тег используется для определения того, какая часть файла HTML должна быть использована для информации, введенной пользователем. Здесь имеется в виду, как большинство страниц HTML вызывает программу CGI. Атрибуты тега определяют имя программы и местоположение - либо локально, либо как полный URL, тип используемого кодирования, и метод перемещения данных, используемых программой.

Следующая строка показывает спецификации для тега :

< ACTION FORM = "url" METHOD = ENCTYPE = "..." >

Атрибут ENCTYPE не играет особой роли и обычно не включается с тегом . Подробная информация относительно тега ENCTYPE дана в Главе 3. Один из способов использования ENCTYPE, показан в Главе 14 "Фирменные расширения. "

Атрибут ACTION ссылается на URL программы CGI. После того, как пользователь заполнит форму и предоставит информацию, вся информация кодируется и передается программе CGI. Программа CGI решает сама вопрос о декодировании и обработке информации; этот аспект рассматривается в "Принятие ввода от браузера, " ниже в настоящей главе.

Наконец, атрибут METHOD описывает, как программа CGI должна получать ввод. Эти два методы - GET и POST - отличаются в отношении того, как передавать информацию программе CGI. Оба обсуждены в "Принятие ввода от браузера. "

Чтобы браузер смог позволить введение информации пользователем, все теги форм и информация должны быть окружены тегом . Не забудьте заключительный тег

для обозначения конца формы. Нельзя иметь форму внутри формы, хотя Вы можете установить форму, которая позволяет представлять части информации в различные местах; этот аспект широко рассматривается в Главе 3.

Тег

Вы можете создавать полоски ввода текста, кнопки "radio", окна флажков, и другие средства принятия ввода, используя тег. В данном разделе рассматриваются только поля текстового ввода. Для реализации этого поля, используйте тег со следующими атрибутами:

< INPUT TYPE=text NAME = "... " VALUE = "... " SIZE = MAXLENGTH = >

NAME - символическое имя переменной, которая содержит значение, введенное пользователем. Если Вы включаете текст в атрибут VALUE, этот текст будет помещен как заданный по умолчанию в поле текстового ввода. Атрибут SIZE позволяет Вам определить горизонтальную длину поля ввода, поскольку он будет появляться в окне браузера. И наконец, MAXLENGTH определяет максимальное число символов которые, пользователь может ввести в поле. Обратите внимание, что атрибуты VALUE, SIZE, MAXLENGTH являются необязательными.

Представление формы

Если Вы имеете только одно текстовое поле в пределах формы, пользователь может представить форму, просто набирая информацию на клавиатуре и нажимая Enter. В противном случае, должен быть какой-то другой способ представления информации пользователем. Пользователь представляет информацию, используя кнопку для представления со следующим тегом:

< Input type=submit >

Этот тег создает внутри вашей формы кнопку Submit. Когда пользователь закончивает заполнение формы, он или она может отправить ее содержание по адресу URL, указанному атрибутом ACTION формы, кликая кнопку Submit.

Принятие ввода от браузера

Выше были даны примеры записи программы CGI, которая посылает информацию с сервера на браузер. В действительности, программа CGI, которая лишь выводит данные, не имеет много приложений (некоторые примеры даны в Главе 4). Более важной способностью CGI является получение информации от браузера - особенность, которая придает Веб интерактивный характер.

Программа CGI получает два вида информации от браузера.

  • Во-первых, она получает различные части информации о браузере (его тип, что он может просматривать, хост хозяина, и так далее), сервера (его имя и версия, порт его выполнения, и так далее), и непосредственно о программе CGI (имя программы и где она расположена). Сервер дает всю эту информацию программе CGI через переменные среды.
  • Во-вторых, программа CGI может получать информацию, введенную пользователем. Эта информация, после кодирования браузером, посылается либо через переменную среду (метод GET), либо через стандартный ввод (stdin- метод POST).

Переменные среды

Полезно знать, какие переменные среды являются доступными для программы CGI, как в процессе обучения, так и для отладки. В таблице 2.2 приведены некоторые из доступных переменных среды CGI. Можно также записать программу CGI, которая выводит переменные среды и их значения на браузер Веб.

Таблица 2.2. Некоторые важные переменные среды CGI Переменная среды Цель REMOTE_ADDR Адрес IP машины клиента. REMOTE_HOST Хост хозяина машины клиента. HTTP _ACCEPT Перечисляет типы MIME данных, которые браузер умеет интерпретировать. HTTP _USER_AGENT Информация браузера (тип браузера, номер версии, операционная система, и т.д.). REQUEST_METHOD GET или POST. CONTENT_LENGTH Размер ввода, если он послан через POST. Если не имеется никакого ввода или если используется метод GET, этот параметр не определен. QUERY_STRING Содержит вводимую информацию, когда она передается с помощью метода GET. PATH_INFO Позволяет пользователю определить путь от командной строки CGI (например, http://hostname/cgi-bin/programname/path). PATH_TRANSLATED Транслирует относительный путь в PATH_INFO в фактический путь в системе.

Чтобы записать приложение CGI, которое отображает переменные среды, нужно знать, как выполнить две вещи:

  • Определить все переменные среды и их соответствующие значения.
  • Вывести результаты для браузера.

Вы уже знаете, как выполнять последнюю операцию. В Perl переменные среды сохраняются в ассоциативном массиве %ENV, который вводится именем переменной среды. Листинг 2.3 содержит env.cgi, программу Perl, которая служит для достижения нашей цели.

Листинг 2.3. Программа Perl, env.cgi, которая выводит все переменные среды CGI.

#!/usr/local/bin/perl print "Content-type: text/html\n\n"; print " \n"; print "CGI Environment\n"; print "\n"; print "\n"; print "

CGI Environment

\n"; foreach $env_var (keys %ENV) { print "$env_var = $ENV{$env_var}
\n"; } print " \n";

Подобная программа может быть написана в C; полный код находится в Листинге 2.4.

Листинг 2.4. Env.cgi.c в C. /* env.cgi.c */ #include extern char **environ; int main() { char **p = environ; printf("Content-Type: text/html\r\n\r\n"); printf(" \n"); printf("CGI Environment\n"); printf("\n"); printf("\n"); printf("

CGI Environment

\n"); while(*p != NULL) printf("%s
\n",*p++); printf(" \n"); }

GET или POST ?

Какая разница между методами GET и POST? GET передает закодированную входную строку через переменную среды QUERY_STRING, а POST передает ее через stdin. POST - более предпочтительный метод, особенно для форм с большим количеством данных, потому-что здесь нет каких-либо ограничений в отношении объема посылаемой информации, а при методе GET объем пространства среды ограничен. GET имеет однако определенное полезное свойство; это подробно рассматривается в Главе 5 "Ввод".

Чтобы определить, который метод используется, программа CGI проверяет переменную среду REQUEST_METHOD, которая будет установлена либо в GET, либо в POST. Если она установлена в POST, длина закодированной информации сохранена в переменной среды CONTENT_LENGTH.

Закодированный Ввод

Когда пользователь передает форму, браузер сначала кодирует информацию перед посылкой ее на сервер, а затем на приложение CGI. Когда Вы используете тег , каждому полю присваивают символическое имя. Значение, введенное пользователем, представляется как значение переменной.

Чтобы определить это, браузер использует кодирующую спецификацию URL, которая может быть описана следующим образом:

  • Отделяет различные поля амперсандом (&).
  • Отделяет имя и значения знаками равенства (=), с именем слева и значением справа.
  • Заменяет пробелы знаками "плюс" (+).
  • Заменяет все "ненормальные" символы знаком процента (%), за которым следует двузначный шестнадцатеричный код символа.

Ваша конечная закодированная строка будет похожа на следующую:

Name1=value1&name2=value2&name3=value3 ...

Примечание: Спецификации для кодирования URL находятся в RFC1738.

Например, предположим, что у вас была форма, которая запросила имя и возраст. Код HTML, который использовался для отображения этой формы, представлен в листинге 2.5.

Листинг 2.5. Код HTML для отображения формы имени и возраста.

Name and Age

Enter your name:

Enter your age:

Предположим, что пользователь вводит Joe Schmoe в поле имени, и 20 - в поле возраста. Ввод будет закодирован во входной строке.

Name=Joe+Schmoe&age=20

Синтаксический анализ ввода

Для того чтобы эта информация была полезной, нужно использовать информацию на что-то такое, что может быть использовано вашими программами CGI. Стратегии синтаксического анализа ввода рассматриваются в Главе 5. Практически, Вам никогда не придется думать о том, как анализировать ввод, потому что несколько специалистов уже написали доступные для всех библиотеки, которые производят синтаксический анализ. Две такие библиотеки представлены в настоящей главе в следующих разделах: cgi -lib.pl для Perl (написаны Стивом Бреннером) и cgihtml для C (написаны мной).

Общая цель большинства библиотек, написанных на различных языках, состоит в том, чтобы анализировать закодированную строку и помещать пары имен и значений в структуру данных. Имеется очевидное преимущество в использовании языка, который имеет встроенные структуры данных типа Perl; однако, большинство библиотек для языков низшего уровня типа C и C++ включает выполнение структуры данных и подпрограммы.

Не обязательно добиваться полного понимания библиотек; гораздо важнее научиться использовать их как инструментальные средства, чтобы упростить работу программиста CGI.

Cgi -lib.pl

Cgi -lib.pl использует ассоциативные массивы Perl. Функция &ReadParse анализирует входную строку и вводит каждую пару "имя / значение" по имени. Например, соответствующими строками Perl, необходимыми для декодирования только что представленной вводной строки "имя / возраст", были бы

&ReadParse(*input);

Теперь, чтобы увидеть значение, введенное для "имени", можно обращаться к ассоциативному массиву $input {"имя"}. Точно так же, чтобы обратиться к значению "возраста", нужно посмотреть на переменную $input {"возраст"}.

Cgihtml

C не имеет никаких встроенных структур данных, так что cgihtml осуществляет свой собственный список связей для использования со своими анализирующими подпрограммами CGI. Это определяет структуру entrytype следующим образом:

Typedef struct { Char *name; Char *value; } Entrytype;

Чтобы проанализировать вводную строку "name / age" ("имя / возраст") в C, используя cgihtml, используется следующее:

/* объявить связанный список, называемый вводом */ Llist input; /* анализировть ввод и место в связанном списке */ read_cgi_input(&input);

Чтобы обратиться к информации о возрасте, можно либо проанализировать список вручную, либо использовать имеющуюся функцию cgi _val ().

#include #include Char *age = malloc (sizeof (char) * strlen (cgi _val (input, "age")) + 1); Strcpy (age, cgi _val (input, "age"));

Значение "возраста" теперь сохранено в строке age.

Примечание: Вместо использования простого массива (подобно char age ;), я занимаюсь динамическим распределением пространства памяти для строки age. Хотя это усложняет программирование, тем не менее это важно с точки зрения безопасности. Более подробно о этом говорится в Главе 9.

Простая программа CGI

Вы собираетесь записать программу CGI, называемую nameage.cgi, которая обрабатывает форму "имя / возраст". Обработка данных (что я обычно называю "промежуточным материалом") минимальна. Nameage.cgi просто декодирует ввод и отображает имя пользователя и возраст. Хотя не особенно много пользы от такого инструмента, он демонстрирует наиболее критический аспект программирования CGI: ввод и вывод.

Вы используете ту же самую форму, как описано выше, вызывая поля "имя и возраст". Пока не стоит беспокоиться об ошибкоустойчивости и эффективности; решите имеющуюся задачу простейшим образом. Решения в Perl и C показаны соответственно в листингах 2.6 и 2.7.

Листинг 2.6. Nameage.cgi в Perl

#!/usr/local/bin/perl # nameage.cgi require "cgi-lib.pl" &ReadParse(*input); print "Content-Type: text/html\r\n\r\n"; print " \n"; print "Name and Age\n"; print "\n"; print "\n"; print "Hello, " . $input{"name"} . ". You are\n"; print $input{"age"} . " years old.

\n"; print " \n";

Листинг 2.7. nameage.cgi в C

/* nameage.cgi.c */ #include #include "cgi-lib.h" int main() { llist input; read_cgi_input(&input); printf("Content-Type: text/html\r\n\r\n"); printf(" \n"); printf("Name and Age\n"); printf("\n"); printf("\n"); printf("Hello, %s. You are\n",cgi_val(input,"name")); printf("%s years old.

\n",cgi_val(input,"age")); printf(" \n"); }

Обратите внимание на то, что эти две программы почти эквивалентны. Они обе содержат подпрограммы синтаксического анализа, которые занимают только одну строку и обрабатывают весь ввод (благодаря соответствующим библиотечным подпрограммам). Вывод, по существу, является измененной версией вашей основной программы Hello, World!.

Попытайтесь выполнить программу, заполняя форму и нажимая кнопку Submit.

Общая стратегия программирования

Вы теперь знаете все основные принципы, необходимые для программирования CGI. Когда Вы понимаете, как CGI получает информацию и как он отсылает ее назад браузеру, фактическое качество вашего конечного продукта зависит от ваших общих способностей к программированию. А именно, когда Вы программируете CGI (или вообще что - нибудь, если уж на то пошло), помните о следующих качествах:

  • Простота
  • Эффективность
  • Универсальность

Первые два качества достаточно распространены: старайтесь сделать код как можно более читаемым и эффективным. Универсальность больше относится к программам CGI, чем к другим приложениям. Когда Вы начнете разрабатывать свои собственные программы CGI, Вы узнаете, что имеется несколько основных приложений, которые хочет сделать каждый. Например, одна из наиболее распространенных и очевидных задач программы CGI является обработка формы и посылка по электронной почте результатов определенному получателю. Вы могли бы иметь несколько отдельных обработанных форм, каждая с различным получателем. Вместо записи программы CGI для каждой отдельной формы, Вы можете съэкономить время, написав более общую программу CGI, которая годится для всех форм.

Затронув все основные аспекты CGI, я обеспечил Вас достаточными сведениями, чтобы начать программирование CGI. Однако чтобы стать эффективным разработчиком CGI, нужно иметь более глубокое понимание того, как CGI связывается с сервером и браузером. В оставшейся части настоящей книги подробно рассматриваются те вопросы, о которых вскользь было упомянуто в данной главе, а также вопросы стратегии разработки приложений, преимущества и ограничения протокола.

Резюме

В настоящей главе вкратце были описаны основы программирования CGI. Вы создаете вывод, правильно форматируя ваши данные и печатая в stdout. Получение ввода CGI является несколько более сложным делом, потому что он должен быть проанализирован до своего использования. К счастью, уже существуют несколько библиотек, которые осуществляют синтаксический анализ.

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

Любой народ за время своего существования использовал различные орнаменты и узоры. Множество изображений потрясающей красоты дошло до нас еще из глубины веков. У каждого народа присутствует свой неповторимый почерк, зависящий от многих факторов. Свою роль играет культура, местоположение на планете и индивидуальные особенности каждого мастера. Нельзя не радоваться тому, что эти национальные орнаменты и узоры - искусство, добравшееся до наших дней, и не исчезнувшее до сих пор.

Любой народ за время своего существования использовал различные орнаменты и узоры

Тенденция держать дома посуду с народной росписью, украшать интерьер орнаментами и узорами, с каждым днем больше входит в моду. Даже если не быть художником, можно приобрести трафареты или распечатать их. Затем уже готовые шаблоны использовать так, подскажет внутренний голос.

Народные мастерские, в которых можно заказать такие трафареты или пригласить художника, обычно существуют в глубинке. Но и в столице можно при желании можно найти мастеров, которые могут нанести как простой орнамент или узор, так и более сложный. Украсить, к примеру, комнату ребенка такой росписью – большая радость для детей.

Есть орнаменты геометрические, не несущие никакого подтекста. Есть такие, которые содержат в себе какие-то значения и символы.

Русский орнамент: трафареты, которые легко сделать самому

Русский орнамент, например, на вышивке, известен каждому. Народные наряды в своей жизни видел хотя бы один раз каждый. Вот такая красота выходит из-под рук мастеров. И это еще не самые сложные варианты. Ничего не скажешь - искусство и есть искусство. А Русь на таланты была богата всегда.



Если принято решение заняться искусством орнамента, начинать нужно с трафаретов, которые попроще. И стоит для начала брать русский орнамент. Если не удастся приобрести трафареты, можно изготовить их самим. Вот такие сможет сделать любой, нужно только проявить усидчивость и терпение.

Если принято решение заняться искусством орнамента, начинать нужно с трафаретов, которые попроще





После того как станут получаться простые узоры, можно переключиться на более сложные

Галерея: орнаменты и узоры (25 фото)





















Бурятские узоры: песня степи

Бурятский орнамент, как и росписи всех монголоязычных представителей, в основе своей состоит из немудреных геометрических фигур:

  • ломаных линий;
  • зигзагов;
  • кругов;
  • ромбов;
  • других фигур.

Если рука хоть немного натренирована на самых простых рисунках, можно взяться за бурятский орнамент и монгольские рисунки. Вот некоторые из них. В них легко разглядеть и буддийские мотивы и башкирский стиль.




Якутский орнамент

Якутские произведения искусства узора поражают своей красотой. Особенно трудно отвести взгляд от работ, выполненных золотом. Помня про якутское золото, удивительно было бы не увидеть его в народном творчестве.

Вроде бы, ничего сложного, а смотрится волшебно.

Якутские произведения искусства узора поражают своей красотой

Как и в любом виде искусства, присутствуют и орнаменты попроще. Из геометрических фигур якутский народ очень любит использовать круги.





Татарский узор: шаблоны великого народа

Татарские и башкирские умельцы специализировались на ярких орнаментах и узорах. Особенно это видно в национальной одежде (головных уборах, обуви с разноцветной мозаикой).

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

Вышитые цветы можно увидеть не только на одежде, но и на предметах быта. Полотенца, наволочки, скатерти, фартуки, коврики для молитвы.

Про головные платки говорить можно говорить очень долго. В каждом доме по целому сундуку заполнено такими платками. Будничные, праздничные, свадебные - для каждого события есть свой платок, и для каждого платка - свой особенный узор. Вот такая красота - татарский и башкирский вышитый платок, что глаз не оторвать

Татарские и башкирские умельцы специализировались на ярких орнаментах и узорах


Самым распространенным было искусство орнамента в резном деревянном зодчестве. Затем уже шла вышивка, узор на обуви и ковры. Очень малое место занимала у татарского народа тканевая аппликация. Но зато, в этой аппликации, что интересно, явно проглядывались восточные и греческие мотивы.




Самым популярным был и остается растительный орнамент. Трилистник, гвоздика, тюльпан, георгины, пионы и хризантемы – все это пользуется большой популярностью у татарских мастериц.

????????????????????????????

Глядя на эти произведения народного промысла, хочется, чтобы в доме был хотя бы один такой узор, радующий глаз

Геометрические узоры в интерьере: тренд сезона

Геометрические решения в оформлении интерьера - самая модная тенденция года. Строгость, стройность, аристократическая эстетичность - все это восхищает и используется в работе дизайнеров все чаще.

Геометрический стиль пришел в дома в разных видах:

  • как мебель
  • как аксессуары
  • как узоры и орнаменты.

Такие идеи воплощают сегодня дизайнеры в оформлении квартиры и офиса.

Геометрические решения в оформлении интерьера - самая модная тенденция года





Просто и красиво. И это становится девизом модных современных дизайнеров и стремящиеся к гармонии заказчиков такого интерьера.

Восточные узоры: в гости к сказке

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

Восточные узоры сегодня снова набирают популярность




Самые частые мотивы восточных узоров - это растительный мотив, волшебные птицы и Мировое древо. В последнем соединяется масса символов наравне с реальными деталями. Восточный узор имеет еще одну особенность. Это ковровое заполнение. На поверхности узора сложно найти незанятое место. Линии, листочки, шишечки, колоски, травинки - ими заполнено все пространство. В частности это прием применяется в архитектуре, изготовлении декоративной посуды и одежды.

Узоры для детей: творим вместе с малышами

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

Порядок работы следующий:

Разграфить выделенную область на восемь одинаковых участков. Провести горизонтальные линии и приступить к выполнению орнамента.

Выполнить следующий набросок.

Добавьте какие-то небольшие детали на свое усмотрение.

Уже ненужные линии, по которым делался набросок, необходимо стереть ластиком.






Издревле на Руси на каждом предмете утвари, на каждой одежке, а также домах изображали различные элементы, символы, которые складывались в узоры. Каждая деталь имела свое значения и место. Так формировался русский народный узор.

Исторические сведения о русском народном узоре

Следует понимать, что существует два термина - узор и орнамент. И это изначально было не одно и то же. Даже сейчас орнаментом можно назвать не каждый узор. К примеру, если это постоянно повторяющийся рисунок (раппорт).

На Руси считалось, что узор гораздо глубже, он больше значит. Слово же орнамент является заимствованным с латыни, да и появилось оно гораздо позже и обозначает украшение. На Руси ему был аналог - “украсы”. Считалось, что он предназначен для оформления декоративной стилизации. Однако в дальнейшем эти два понятия переплелись и стали дополнять друг друга.

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

Также каждая местность имела и свою цветовую гамму узоров и орнаментов.

Знаки и символы в русском узоре

Если рассматривать русский народный узор с точки зрения символики, то можно сказать, что ни один элемент там не изображен просто так. Каждый имеет свое значение и находится на своем месте.

Самыми популярными символами в узоре являются:

  • Звезда Алатырь, или, как ее еще называют, крест Сварога. Она имеет восемь лепестков и символизирует Вселенную, ее циклы сворачивания и разворачивания.
  • Также очень популярным является символ Берегини (Рожаницы). Это схематическое изображение женщины, которая оберегает.
  • Очень значимым символом является которое иногда еще называют Мировым деревом. Он объединяет в себе мировую ось, мироздание и род.
  • Всем известен Во времена Гитлера свастика стала символом войны и фашизма, однако изначально это было вовсе не так.
  • Также популярен символ Орепей, который представляет собой гребенчатый ромб. Этот символ приносит счастье, равновесие и душевное спокойствие.
  • К тому же, используют в узоре и орнаменте цветы, звезды, спирали и другие символы, каждый из которых несет определенное значение, усиливая положительную и защитную энергию человека.

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

Сакральный смысл узора

Следует знать, что один и тот же символ, но изображенный в разных частях одежды, мог иметь разное значение. К примеру, знак Орепей, изображенный в зоне локтя на женской одежде, обозначал предка. Если его изображали на подоле, то он был входом в потусторонний мир.

Также символически изображали и древних богов, которые перемещались на колесницах. В них запряжены были различные животные, которые олицетворяли конкретное божество.

Некоторые русские узоры (фото представлено ниже) в своей числовой повторяемости несли определенный код. Так, важными были следующие числа:

  • три (Абсолют, Троица, время, пространство);
  • четыре (стороны света, времени года);
  • семь (символ гармонии);
  • двенадцать.

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

Где используют русские народные узоры?

Использование узоров довольно разнообразно. Их применяют в полотенцах, салфетках, для росписи предметов утвари, домов, при резьбе по дереву, металлу. В старину ни один предмет не был оставлен без рисунка.

Русские узоры (фото их есть в нашем обзоре) - это не только красота предмета, но и защита, оберег его владельца. Известно, что даже до возникновения письменности, люди уже изображали на предметах утвари различные символы (ромбы, линии, точки).

Различие узоров в разных регионах

Каждый регион России имеет свою историю росписи, вышивки, узоров и орнаментов. Рассмотрим русский народный узор (картинки некоторых будут представлены ниже) по некоторым видам и местностям:

  • гжельская роспись - характерна синяя и белая цветовая гамма в рисунках, которые делаются на керамических, фарфоровых изделиях;
  • роспись, которой славна деревня Жостово, на металлических подносах;
  • очень интересна хохломская роспись различными узорами, для нее характерен золотистый цвет (также есть красный, желтый и оранжевый);
  • помимо этого, во многих регионах изготавливали свои, особые игрушки (дымковская, каргопольская, старооскольская), каждая из которых имела свой, неповторимый узор в росписи;
  • также очень известны павловопосадские шали, которые выполняются в красных и черных цветах, с цветочными узорами.

И это даже не все известные промыслы, где применяется русский народный узор.

Самые древние узоры

К наиболее древним узорам можно отнести совокупность различных знаков, которые в старину имели особое значение и просто так не наносились ни на одно изделие. Каждая семья имела свой набор вышивок, росписей, которые передавались из поколения в поколение. Они даже обладать особым смыслом для семьи, быть ее собственным символом. Конечно, со временем знания были утрачены.

Старинные русские узоры дышат на нас таинственностью, силой оберегов, значением каждой завитушки или знака.

Сейчас очень многие собирают в свою копилку подобные изображения, которые имеют смысл.

Как начать рисовать русские народные узоры

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

Сперва следует понять, что на Руси существует множество техник росписи, вышивки, которые имеют свои особенности. Для начинающих узоры нужно брать не очень сложные, имеющие повторяющийся рисунок. Так будет легче уловить саму его суть.

Перед самим рисованием нужно потренироваться с простыми его составляющими: точками, линиями, штрихами, капельками, петельками и др. По сути, самый трудный узор и состоит из вышеперечисленных деталей. Из этих простых форм после некоторого времени тренировок можно будет создавать более сложные.

Для того чтобы понять, как нарисовать русский узор, не следует торопиться. Некоторые формы могут действительно показаться сложными, однако нужно помнить, что все они состоят из простых. Раскладывайте сначала повторяющийся рисунок на детали, изображать его начинайте с самых легких и основных, к примеру, точки. Вокруг нее постепенно дорисовывайте другие формы, и так в самом конце можно получить свой законченный узор. Взгляните на расположенное ниже фото, на котором представлены все этапы рисования. И убедитесь, что процесс этот не такой уж и сложный.

Таким образом, можно научиться, как самому создавать орнаменты и узоры. В принципе, можно брать и уже готовые схемы, а после переносить их на поверхность.

Использование узоров на предметах домашней утвари

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

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

Следует отметить, что некоторые узоры, схемы которых достаточно сложны, изготавливаются и до сих пор мастерами. Это, к примеру, хохломская роспись, которая очень красиво и богато выглядит. Однако ее изготовление достаточно сложное и многоэтапное.

Использование узоров в вышивке

Русская вышивка на Руси традиционно не просто украшает одежды, рушники, покрывала и другие изделия из полотна, но и является оберегом. Переплетение узоров носит отнюдь не случайный характер. Все символы находятся на своем месте.

Помимо этого, имеет значение в вышивке и цвет нити, которая используется. Рассмотрим некоторые моменты:

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

Помимо этого, в вышивке используют и символы - крест (преграда и защита от зла), звезда (небесный огонь), круг (обозначает плодородие, изобилие и материнство) и другие.

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

Использование узоров на одежде в старину

Наверное, самым известным применением узора и орнамента является Даже самый несведущий в этом деле человек узнает эту вышивку. Правда, цвета и узоры опять же разнятся по регионам.

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

Если говорить про мужскую и женскую одежду, то первая почти не имела отличий в регионах, разве что предпочтения по цвету и узору. А вот женская одежда была довольно разнообразна и значительно отличалась.

А также вышивка разнообразных фигурок животных была очень популярна в северной части России. А вот южные имели более цветную вышивку (часто красную).

Применение русского народного узора в современной одежде

Русский народный узор на одежде периодически возвращается в моду. Известные модельеры выпускают коллекции с народными мотивами (к примеру, в 1976 году Russian Collection от Ив Сен Лорана).

В наше же время русские узоры давно в приоритете у истинных ценителей. Помимо колоритных традиционных, используют яркие цветочные (или другие народные) принты. Вспоминаются старинные узоры, которые мастерицы вышивают на одежде для своей семьи и друзей. Также наверняка можно при желании заказать подобную одежду и для себя.

Также остаются популярны изделия, которые давно заслужили признание как по качеству, так и по стилю (к примеру, павловопосадские платки).

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

В народе говорят: «своя рубаха ближе к телу». Почему, об этом нам расскажет семантика народного костюма, композиция, его цвет, орнаментальная тайнопись. Ведь именно в народном костюме прослеживаются наиболее важные черты и особенности народного самосознания, его социальные, нравственные, религиозные представления.

Стоит отметить, что одежда, изначальное появление, которой было обусловлено функциональной необходимостью, сразу стала и ритуальным объектом. Ее задачей также было и стимулирование определенных жизненных процессов. Поэтому одежду рассматриваем не только как вещь, но и как символическую форму - знак в контексте культуры.

Н.М. Калашникова, автор многочисленных работ, связанных с темой народного костюма и его символикой, отмечает то, что семантический статус одежды, по выражению автора, ее знаковые функции, закрепились еще на раннем этапе развития; они должны были «читаться» не только ее владельцем, но и соплеменниками 1.

На разном возрастном и социальном этапах жизни человека костюм изменяется на уровне структуры. Эти изменения проявляют себя в количественном составе костюма, цветовой семантике и разработке орнамента.

Орнамент служил не только украшением, но и заговором от злых сил природы, «оберегом». Поэтому и вышивались эти узоры там, где одежда кончалась, касалась открытого тела: у ворота, на подоле, на манжетах.

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

Именно поэтому, когда говорят о душевных качествах щедрого человека, мы слышим: «Он своей единственной рубахи не пожалеет». Считалось, что щедрый человек, таким образом, отдавал не только свою одежду, но и снимал с себя свой оберег, то, что ближе всего к телу...

Орнаменты всех народов идут из глубокой древности, в их состав никогда не входила ни единая «праздная» линия - каждая имеет свое значение, является словом, фразой, выражением известных понятий, представлений. Люди изобрели символы, чтобы обозначить и закрепить ими уясненное. Передача такого знания означает - обучение толкованию символов.

В. Вардугин упоминает о том, что еще в начале XIX века сохранялся обряд чтения узоров в деревнях, когда девушки наряжались по-праздничному и приносили свои рукоделия. Парни же выбрав себе в провожатых женщин почтенного возраста, слушали пояснения последних по поводу смысла узоров, изображенных на девичьих рукоделиях 2.

Слова «узор», «узорочье» происходят от слов «зоря», «гореть», «солнце» и идут от общеславянских понятий «свет», «блеск», «тепло». Узоры вышивок связывались с культом солнца и неба, они становились его «божественными изображениями», знаками-символами. О вышивке можно сказать, что она хранит в себе народное осознание мира и природы, своеобразную народную поэтическую мифологию.

С точки зрения мифологического сознания, космос разделяется на два мира: сакральный, священный и профанный (от лат. profanus) - непосвященный, лишенный святости, более того, нечестивый, зловещий, кощунственный и нечистый. Не удивительно, что на русских народных одеждах такое изобилие орнаментации с символическими изображениями, которые помогали устанавливать связь с сакральным миром.

Представление о солнце в виде коня в орнаментальных композициях воплощено, например, в виде белого ретивого коня, со звездами по фону и с птицами по краям главенствующего мотива. Мотивы Павы-ладьи, встречаются изображения Ладо - бога весеннего солнца. В орнаментике получили отражение обряды, такие, например, как, радуница - это весенний обряд, день поминовения предков, вешник - «завивание березы» в честь возрождения природы, праздник Ивана Купалы и пр. Связь с водой имела языческая богиня Макошь - один из наиболее часто упоминаемых персонажей орнаментальных сюжетов.

Орнамент как уже было упомянуто, служил не только украшением, но и заговором от злых сил природы, «оберегом». И у современного читателя щемит сердце, когда он читает строки в «Слове о полку Игореве» о гибели одного из воинов: «...един же изрони жемчужну душу из храбра тела, через злато ожерелье».

Орнаментальная символика в большей степени присуща древней одежде: рубахам, сорочкам, поневам, передникам, поясам. Важно отметить, что части костюма, были тесно связаны с выбором орнаментальных мотивов. Как и костюм, орнамент предполагал ярусное деление. Подол - первый ярус, он ближе к земле. На нем, как правило, ромботочечные или крестообразные композиции (символы земледелия, плодородия, огня). В вышивке головных уборов преобладают наоборот солярные знаки, изображения птиц и т.д. Таким образом, через такую композицию костюм уподоблялся Мировому Древу.

Орнамент на одежде чаще всего вышивался. «Народную вышивку - эту первую систему кода, приобретенную людьми и имевшую для них магический смысл, изучают чуть более столетия. Многое не разгадано, а столько еще «открытий чудных» таят в себе простейшие узоры, заключающие в себя сигналы-символы о жизни и мировоззрении давно ушедших поколений» 2.

При рассмотрении исторически-конкретных форм костюма, можно заметить, что он имеет макро- и микроконструктивную основу и систему декора. Особую семантическую значимость в нем приобретают орнаментальные вставки, имеющие самостоятельное символическое значение.

Орнамент же, в отличие от кроя и конструкции одежды, глубоко консервативен, мало подвержен изменениям, будучи порождением и принадлежностью традиционной культуры. Своими корнями он восходит к архаическим временам и является хранителем еще мифологических представлений о бытие. Он не утрачивает своего назначения напоминать о первичных смыслах и символах культуры, будучи вкраплен в структуру костюма как некоей целостности. Орнамент имеет графическую структуру, он подобен тайнописи, идеограмме неких скрытых смыслов, выраженных в графических, т.е. пространственных символах.

Проведя параллель между оберегами и орнаментом как оберегом, рассмотрим основные постулаты магии, сформулированные современными исследователями. Вот они: 1) подобное производит подобное (закон подобия); 2) вещи, соприкоснувшиеся друг с другом, после этого продолжают взаимодействовать на расстоянии (закон соприкосновения и заражения). На основе этих законов построены не только орнаментальные композиции, но и структура костюма в целом.

Для первобытного человека часть - то же, что целое. Если, к примеру, персонаж переоделся в чужую одежду - он отождествляется с ее владельцем. За сменой облика стоит смена роли, затем - сущности. В основе всякого ряжения лежит семантический принцип. (Его легко сопоставить с семиотическим значением одежды и переодевания как таковых).

Еще один принцип магии - симпатия. О нем писал Л.Леви-Брюль: «Симпатический принцип означает «увлекать за собой», подбадривать, учить, но вместе с тем принуждать, в смысле физического воздействия» 3. Исходя их этого принципа магии, вещи, «благодаря тайной симпатии, связаны между собой и воздействуют друг на друга на расстоянии».

Поэтому считалось, что жизненная сила природных предметов передается человеку через: шкуры, зубы, черепа, когти, камни и амулеты. Украшения-амулеты наши предки использовали в своем гардеробе для большей «безопасности», символика этих украшений, как и символика орнаментальных вставок на одежде, связана с культом неба, солнца и весеннего плодородия земли. Талисманы и обереги создавались по неписанным законам магии. Многие из них можно разделить достаточно четко на мужские и женские.

На местах раскопок (чаще в женских погребениях) нередко находят фигурку коня. Конь, согласно верованиям древних славян, - символ добра, счастья, мудрости богов. Его куль связан с почитанием Солнца, с верой славян в то, что Даждьбог ездит по небу на колеснице, заправленных четверкой белых златогривых коней с золотыми крыльями: поэтому совсем не случайны солнечные круговые орнаменты на оберегах-коньках. Славянки носили их у левого плеча. И совсем не случайно, что коньки зачастую соединялись с оберегом в виде водоплавающих птиц - лебедей, гусей, уток: ведь все тот же Даждьбог дважды в сутки (утром и вечером) пересекает океан-море на ладье, запряженной этими водоплавающими птицами. Встречаются даже обереги - тело водоплавающей птицы, а голова коня. Эти изобразительные мотивы продолжают свое существование в орнаментах вышивки.

Женщины в качестве оберегов носили на своей одежде маленькие копии предметов домашнего обихода (ковшики, ложечки, гребешки, ключи). Их задача - привлекать и удерживать в доме сытость, довольство, богатство.

И женщины, и мужчины носили обереги - топорики. Отличие наблюдалось лишь в способе носки. Женщины - у плеча, мужчины - у пояса. Топор - символ Перуна, бога-воина, покровителя урожая, который насылал теплые грозы.

Только мужчины носили миниатюрные копии оружия - мечей, ножей, копий, ножен.

Круглые женские подвески-обереги - это ничто иное, как солярные символы, на них использовались желтые сплавы, на подвески же лунницы - белые сплавы (холодные, как сама луна) из серебра, серебра с оловом, реже - из бронзы.

Мифологическое сознание воспринимает весь мир живым, поэтому отношения со всем в этом мире оно регулирует, как с живыми существами, а материальные предметы заряжает живой энергией.

Зачастую этнографы прибегают в своих интерпретациях архаических символов к методу аналогий. В.Тальбитцер, изучая эскимосов восточного берега Гренландии в 1920-х годах, писал: «Амулеты освящаются при помощи формул и заклинаний...Они становятся живыми. Специализированную формулу мы находим в веровании, что амулет, в виде ножа или другого орудия, внезапно в момент опасности начинает расти в своих размерах и самостоятельно выполняет акт убийства» 3.

Женские украшения лунницы рождены древним культом Луны. Солнце и Луна представлялись древнему человеку братом и сестрой, мужем и женой, иногда родителем и ребенком. Они - персонажи дуалистических лунарно-солярных мифов. В них отражаются оппозиции: мужское - женское, день - ночь, тепло - холод, положительное -отрицательное. Встречаются лунницы с растительным орнаментом, что символизирует первейшую обязанность луны - следить за ростом трав и деревьев.

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

Для этой же цели использовался и язык орнамента в народном костюме.

Литература

1 Калашникова Н.М. Семантика народного костюма. - СПб.: 2003.
2 Вардугин В. Русская одежда.- Саратов: Донская книга, 2001.
3 Леви-Брюль Л. Сверхъестественное в первобытном мышлении. - М.: 1937. - С.33.
4. История русского орнамента X-XVI веков/ Под ред. С.Ю. Ивлева - М.: Арт родник, 1997.
5. Прохоров В.А. Материалы по истории русских одежд XI-XIII в.в. - СПб.: Изд. Прохорова, СПб типография Академии наук, 1876.
6. Серов Н.В. Цвет культуры.- СПб.: «Речь», 2004.
7. Стасов В.В. Славянский и восточный орнамент по рукописям древнего и нового времени.- СПб.: [б.и.] ,1887.
8. Стрекалов С. Русские исторические одежды от 10 до 13 века. СПб.: [б.и.], 1877.
9. Химик О.Я., Художественная культура первобытного общества. - СПб.: 1995.

Русская культура зародилась много веков назад. Еще в языческие времена русичи украшали себя и пространство для жизни (дом, двор, предметы быта) оригинальными узорами. Если рисунок повторяет и чередует отдельные детали, он называется орнамент.

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

Традиционный русский орнамент

Экскурс в историю

Первичная ячейка общества — это семья. И именно семьям мы обязаны первым народным узорам. В древности животные и растения имели тотемное значение. Каждая семья считала, что имеет того или иного покровителя. Члены семьи поколениями пользовались предметами с символикой своего рода, считая их защитой и помощью.

Постепенно семейный рисунок выходил за пределы семьи и становился достоянием сородичей. Несколько родов обменивались своими узорами. Таким образом, уже все племя использовало символы, первоначально принадлежащие определенным семьям.

Со временем узоров становилось больше, круг их пользователей расширялся. Так в России появились русские народные орнаменты.


Даже в экстерьере домов прослеживалась символика

Можно заметить, что в различных районах использовались разные цвета для рукоделия. Этому есть простое объяснение. В старину использовали только натуральные красители. Производили их кустарным способом. Так что, наличие сырья для красок часто определяло всю палитру работ.

В разных регионах были свои любимые «украсы». Не случайно «пейсли» это один из мотивов для орнаментов восточных областей. Родина «индийского огурца» Персия на востоке.

Смысл и значение

Творческий сплав природы и религии. Так коротко можно описать национальные, в том числе русские орнаменты. Другими словами, орнамент это символическое описание мира.

Элементы орнамента были не только украшением. Они несли смысловую и ритуальную нагрузку. Их можно не только рассматривать, но и читать. Очень часто это заговоры и обереги.

Каждый символ имеет определенное значение:

  • Алатырь, пожалуй, главный из русских и славянских знаков. Это символ бесконечной вселенной, двуединства мира и его равновесия. Источник жизни, состоящий из мужского и женского начал. Часто в узорах применяли восьмиконечную Звезду Алатырь и Камень Алатырь. От них ждали помощи в разных жизненных ситуациях.

Священный Алатырь
  • Другой символ, который был очень почитаем и часто применялся в узорах Мировое Дерево Жизни (или Дерево Царствования). Считалось, что оно растет на Алатырь Камне и боги отдыхают под его кроной. Так люди старались защитить себя и свой род под ветвями Древа Жизни и при помощи небожителей.

Один из вариантов изображения Дерева Царствования
  • Различные свастики так же популярный мотив в русском и славянском рукоделии. Из свастик чаще других можно встретить Коловрат. Древний символ солнца, счастья и добра.

Варианты изображения символа солнца у славян
  • Орепей или Арепей представляет собой ромб с гребенками на сторонах. Его другие имена: Гребенчатый ромб, Дубок, Колодец, Репейник. Считался символом счастья, богатства, уверенности в себе. При расположении на разных частях одежды имел разное толкование.

Символ Орепей
  • Животные и растения, которые окружали людей и обожествлялись ими, это постоянная тема узоров.

Славянская символика очень разнообразна

Особое значение имело количество чередований элементов в орнаменте. Каждое число несло дополнительную смысловую нагрузку.

Красота и защита

Эстетическое значение орнаментов сочеталось с тотемным. Волхвы и шаманы наносили символы на ритуальную одежду и утварь. Обычные люди тоже вкладывали особый смысл в традиционные рисунки. Они старались защитить себя вышивкой-оберегом, нанося ее на определенные части одежды (для защиты тела). Столовое белье, предметы быта, мебель, части построек тоже были декорированы соответствующими узорами (для защиты семьи и дома).

Простота и красота старинных орнаментов оставляют их популярными и сегодня.


Традиционным орнаментом украшали куклы-обереги

Промыслы и ремесла

Постепенно, с развитием цивилизации старинные узоры трансформировались, некоторые стали опознавательными знаками отдельных народных промыслов. Выделились в самостоятельные ремесла. Обычно поделки имеют название соответствующее местности, где их производят.

Наиболее популярными можно назвать:

  • Фарфор и керамика «Гжель». Ее стиль это характерный рисунок синей краской по белому фону. Названа по имени населенного пункта Гжель Московской области, где находится производство.

Роспись гжелью — старинный промысел
  • «Жостовскую роспись» можно узнать по цветочным букетам на черном (реже зеленом, синем, красном) металлическом подносе, покрытом лаком. Центр промысла находится в Жостово (Московская область). Начало этому ремеслу было положено в Нижнем Тагиле, где и сейчас существует производство Нижне Тагильских подносов.

Роскошная жостовская роспись
  • «Хохлома» это декоративная роспись по дереву. Для нее характерны черные, красные иногда зеленые узоры на золотистом фоне. Ее родина и место прописки Нижегородская область.

Хохлома популярна и в наши дни
  • Слобода Дымково родина Дымковской, а город Каргополя соответственно Каргопольской, деревня Филимоново Филимоновской, Старый Оскол Старооскольской глиняным игрушкам. Все они имеют характерный узор и цвет.

Старооскольские глиняные игрушки
  • Павловопосадские шерстяные шали визитная карточка Павловского Посада. Для них характерен объемный набивной цветочный узор. Красный и черный их традиционные цвета.

Традиционный павлопосадский платок — поистине роскошный аксессуар

Продолжение может быть очень долгим: Федоскинская и Палехская миниатюры, Городецкая роспись, Оренбургский пуховый платок, Вологодское, Елецкое, Мценское кружево. И так далее. Все перечислить очень трудно.

Рисуем в народном стиле

Сегодня многие носят одежду и пользуются вещами в фольклорном стиле. Многие мастерицы хотят сами создать что-нибудь уникальное. Они могут взять за основу раппорт готового изделия или создать собственный эскиз.

Чтобы успешно выполнить эту задумку, сначала нужно:

  1. Определиться, будет это отдельный узор или орнамент.
  2. Разложить рисунок на простые детали.
  3. Взять миллиметровую бумагу, сделать разметку, отметив каждый фрагмент и его середину.
  4. Первую простейшую деталь прорисовываем в центре.
  5. Постепенно шаг за шагом добавляем следующие фрагменты.

И вот уже готов уникальный узор.


Подобный узор под силу нарисовать каждому

О русской вышивке

Узоры, приемы, цвета русской вышивки очень разнообразны. Искусство вышивания имеет многовековую историю. Оно тесно связано с укладом жизни, обычаями и обрядами.

Цвет важная составляющая рукоделия.

Люди наделяли его сакральными свойствами:

  • Красный цвет жизни, огня и солнца. Конечно он часто использовался при вышивании. Ведь это еще и красота. Как оберег, он был призван защищать жизнь.
  • Белый цвет чистого снега. Символ свободы и чистоты. Считался защитником от темных сил.
  • Синий цвет воды и ясного неба. Символизировал мужество и силу.
  • Черный в орнаменте означал землю. Зигзаг и волна соответственно не вспаханное и вспаханное поле.
  • Зеленый это трава, лес и их помощь человеку.

Традиционная русская вышивка

Нить тоже наделялась определенными качествами:

  • Лен символ мужественности.
  • Шерсть это защита, покровительство.

В сочетании с узорами создавались изделия специального назначения.

Например:

  • Петухи и лошади красного цвета должны были защитить младенца.
  • Для успешного завершения работ вышивали зеленым и синим льном.
  • От болезней и против дурного влияния вышивали шерстью.
  • Женщинам вещи чаще вышивали черным для защиты материнства.
  • Мужчин защищали зеленым и синим узором.

Конечно, для каждого случая и человека был разработан специальный набор символов и рисунков.


Такая вышивка будет выглядеть нарядно на любой ткани

Народный костюм

Народный костюм воплощает и отражает традиции. Веками мастерицы превращали невзрачную ткань в уникальное произведение искусства. С раннего возраста девочки постигали тайны рукоделия. К пятнадцати годам они должны были приготовить себе повседневную и праздничную одежду и набор полотенец, скатертей и подзоров на несколько лет.

Сам крой костюма простейший, прямоугольный. Ткань льняная или шерстяная различного качества. Женщины продергивали ткань (удаляли часть нитей) и получали новую ткань. На ней выполняли мережки и другие вышивки.


Русский народный костюм отличается разнообразием

Конечно одежда различалась по характерным узорам в зависимости от местности. Ее можно разделить на две группы:

  1. Среднерусская. Отличается многоцветием. Из приемов часто встречается счетная гладь, крестик, косички, мережки. В южных районах для украшения одежды также применяют кружева, ленты или полосы ткани. Рисунок часто геометрический. Особенно был любим Орепей в разных вариантах.
  2. Северная. Для нее характерными приемами являются гладь (цветная и белая), крестик, роспись, белая строчка и вырезы. Художественные мотивы использовались чаще, чем геометрические. Композиции исполнялись преимущественно в одном цвете.

Русская вышивка уникальна. Она отличается стилизованными изображениями животных и растений, а также большим разнообразием геометрических узоров.

Сохраняя традиции

Исследуя национальные традиции и приемы рукоделия по сохранившимся изделиям, современные мастера адаптируют их к современным требованиям. На их основе создаются модные оригинальные вещи. Это одежда, обувь, белье.

Один из признанных модельеров, который включает народные мотивы в каждую свою коллекцию Валентин Юдашкин. Зарубежные кутюрье, например Ив Сен Лоран, тоже вдохновляются русским наследием.


Русская коллекция Ив Сен Лорана

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

Русские узоры продолжают нести людям красоту и радость, а также сохраняют историческую информацию.