Централизованное распределение адресов
В больших сетях, подобных Интернету, уникальность сетевых адресов гарантируется централизованной, иерархически организованной системой их распределения. Номер сети может быть назначен только по рекомендации специального подразделения Интернета. Главным органом регистрации глобальных адресов в Интернете с 1998 года является неправительственная некоммерческая организация ICANN(InternetCorporationforAssignedNamesandNumbers). Эта организация координирует работу региональных отделов; деятельность которых охватывает большие географические площади: ARIN — Америка, RIPE (Европа), APNIC (Азия и Тихоокеанский регион). Региональные отделы выделяют блоки адресов сетей крупным поставщикам услуг, а те, в свою очередь, распределяют их между своими клиентами, среди которых могут быть и более мелкие поставщики.
Проблемой централизованного распределения адресов является их дефицит. При этом надо отметить, что дефицит обусловлен не только ростом сетей, но и тем, что имеющееся адресное пространство используется нерационально. Очень часто владельцы сетей класса С расходуют лишь небольшую часть из имеющихся у них 254 адресов.
Для смягчения проблемы дефицита адресов разработчики стека TCP/IP предлагают разные подходы. Принципиальным решением является переход на новую версию протокола IP — протокол IPv6, в котором резко расширяется адресное пространство. Однако и текущая версия протокола IP (IPv4) поддерживает технологии, направленные на более экономное расходование IP-адресов, такие, например, как NAT.
NAT (от англ. NetworkAddressTranslation — «преобразование сетевых адресов») — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. Такжеимеетназвания IP Masquerading, Network Masquerading и Native Address Translation.
Преобразование адресов методом NAT может производиться почти любым маршрутизирующим устройством — маршрутизатором, сервером доступа, межсетевым экраном. Наиболее популярным является SNAT, суть механизма которого состоит в замене адреса источника (англ. source) при прохождении пакета в одну сторону и обратной замене адреса назначения (англ. destination) в ответном пакете. Наряду с адресами источник/назначение могут также заменяться номера портов источника и назначения.
Принимая пакет от локального компьютера, роутер смотрит на IP-адрес назначения. Если это локальный адрес, то пакет пересылается другому локальному компьютеру. Если нет, то пакет надо переслать наружу в интернет. Но ведь обратным адресом в пакете указан локальный адрес компьютера, который из интернета будет недоступен. Поэтому роутер «на лету» производит трансляцию IP-адреса и порта и запоминает эту трансляцию у себя во временной таблице. Через некоторое время после того, как клиент и сервер закончат обмениваться пакетами, роутер сотрет у себя в таблице запись о n-ом порте за сроком давности.
5 Заголовок IP пакетов
Как показано на рисунке, протокол IPверсии 4 определяет много различных полей в заголовке пакета IP. Эти поля содержат двоичные значения, на которые ссылаются службы IPv4, когда они передают пакеты по сети.
Здесь мы рассмотрим 6 ключевых полей:
Исходный IP адрес (отправителя)
IP адрес получателя
Время жизни (TTL)
Тип сервиса (ToS)
Протокол
Смещение Фрагмента
Ключевые поля заголовка IPv4
IP Адрес Назначения
Поле "IP Адрес Назначения" содержит 32-разрядное двоичное значение, которое представляет адрес целевого узла в пакете Сетевого уровня.
IP Адрес Источника
Поле "IP Адрес Источника" содержит 32-разрядное двоичное значение, которое представляет адрес исходного узла (отправителя) в пакете Сетевого уровня.
Время жизни
Время жизни (TTL) является 8-разрядным двоичным значением, которое указывает на остающуюся "жизнь" пакета. Значение TTL уменьшается по крайней мере на единицу каждый раз, когда пакет обрабатывается маршрутизатором (то есть, хопом). Когда значение становится нулевым, маршрутизатор отбрасывает или сбрасывает пакет, и он удаляется из сетевого потока данных. Этот механизм предотвращает бесконечное блуждание между маршрутизаторами пакетов, которые не могут достигнуть своего места назначения, в так называемой маршрутной петле. Если бы маршрутные петли продолжали оставаться, то сеть стала бы переполненной пакетами данных, которые никогда не будут достигать своего места назначения. Постепенное уменьшение значения TTL на каждом хопе гарантирует, что в конечном счете это значение станет нулевым и что пакет с полем TTL с истекшим сроком будет отброшен.
Протокол
Это 8-разрядное двоичное значение указывает на тип полезной нагрузки данных, которые переносит пакет. Поле "Протокол" позволяет Сетевому уровню передать данные к соответствующему протоколу верхнего уровня.
Примеры значений этого поля:
01 ICMP
06 TCP
17 UDP
Тип службы
Поле "Тип-Сервиса" содержит 8-разрядное двоичное значение, которое используется, чтобы определить приоритет каждого пакета. Это значение позволяет использовать механизм Качества Обслуживания (QoS) для более приоритетных пакетов, таких как те, которые переносят информацию IP телефонии. Маршрутизатор, обрабатывающий пакеты, может быть сконфигурирован так, чтобы решать, какой пакет он должен передать в первую очередь - на основе значения Типа Сервиса.
Смещение Фрагмента
Как отмечалось ранеемаршрутизатору, вероятно, придется фрагментировать пакет, передавая его с одного носителя (канала передачи) на другой, у которого MTU будет меньше. Когда происходит фрагментация, пакет IPv4 использует поле "Смещение Фрагмента" и флаг MF в заголовке IP, чтобы восстановить пакет, когда он достигает конечного хоста. Поле смещение фрагмента идентифицирует порядок, в котором необходимо поместить пакетный фрагмент при реконструкции пакета.
Флаг "Дополнительные Фрагменты"
Флаг "Дополнительные Фрагменты" (MF) является одиночным битом в поле Флагов, используемым со Смещением Фрагмента для фрагментации и реконструкции пакетов. Когда флаг "Дополнительные Фрагменты" устанавливается, это означает, что это не последний фрагмент пакета. Когда узел получения видит, что пакет прибывает с MF = 1, он исследует Смещение Фрагмента, чтобы определить, куда этот фрагмент должен быть помещен в рекоструируемом пакете. Когда узел получения принимает кадр с MF = 0 и ненулевое значение в смещении Фрагмента, он помещает этот фрагмент как последнюю часть в восстанавливаемый пакет. У нефрагментированного пакета вся информация о фрагментации равна нулю (MF = 0, смещение фрагмента = 0).
Флаг "Не Фрагментировать"
Флаг "Не Фрагментировать" (DF) является одиночным битом в поле Флагов, который указывает, что фрагментация пакета не допустима. Если бит флага "Не Фрагментировать" устанавливается, что фрагментация этого пакета НЕ разрешается. Если маршрутизатор должен фрагментировать пакет, чтобы передать его вниз к Канальному уровню, но бит DF установлен в 1, то маршрутизатор отбрасывает этот пакет.
Версия - Содержит номер версии IP (4).
Длина Заголовка (IHL) - Определяет размер заголовка пакета.
Длина Пакета - Это поле дает весь размер пакета, включая заголовок и данные, в байтах.
Идентификация - Это поле прежде всего используется для того, чтобы однозначно определить фрагменты исходного пакета IP.
Контрольная сумма Заголовка - поле контрольной суммы используется для проверки на ошибки заголовка пакета.
Опции - предусмотрено для дополнительных полей в заголовке IPv4, чтобы обеспечить другие службы, но это поле редко используется.
Пример IP-Пакета
Рисунок показывает полный пакет IPс типичными значениями полей заголовка..
Ver = 4; версия IP.
IHL = 5; размер заголовка в словах по 32 бита (4 байта). Этот заголовок равен 5*4 = 20 байт, минимальный допустимый размер.
Полная Длина = 472; размер пакета (заголовок и данные) составляет 472 байта.
Идентификация = 111; исходный пакетный идентификатор (потребуется, если он позже фрагментируется).
Флаг = 0; обозначает, что пакет может быть фрагментирован при необходимости.
Смещение Фрагмента = 0; обозначает, что этот пакет в настоящий момент не фрагментирован (нет никакого смещения).
Время жизни = 123; обозначает времени обработки Уровня 3 в секундах прежде, чем пакет будет отброшен (уменьшается по крайней мере на 1 каждый раз, когда устройство обрабатывает заголовок пакета).
Протокол = 6; обозначает, что данные, которые переносит этот пакет, являются сегментом TCP.
6 Классификация Web технологий
Все технологии, применяемые при создании веб-систем, делятся на два основных класса: исполняемые на клиенте средствами обозревателя Интернет (HTML, CSS, JavaScript, Flash, ActiveX и т.п.) и исполняемые на сервере средствами веб-сервера (SSI, PHP, ASP, Perl, Python и т.п.) и связанных с ним систем (MySQL, PostgreSQL, MSSQL и т.п.).
Приложения, исполняемые на сервере, практически ничем не ограничены по сложности: могут выполнять любые преобразования информации и затем формировать поток данных, который может быть визуализирован пользователю обозревателем Интернет.
Соответственно форматы данных, которые могут быть обработаны на клиенте, ограничены достаточно узким набором технологий, стандартов и определенными рамками, что позволяет унифицировать рабочее место пользователя и не требовать от него установки какого-либо дополнительного программного обеспечения кроме обозревателя Интернет.
Интернет
Сервер
PHP, MySQL
Клиент
HTML, CSS, JS
1.2. Инструментарий разработчика
Сегодня наиболее популярным серверным комплексом является так называемый LAMP – акроним, составленный из первых букв следующего программного обеспечения:
• Linux – операционная система;
• Apache – веб-сервер;
• MySQL – система управления базами данных;
• PHP – скриптовый язык программирования, используе-
мый для создания веб-приложений.
Данный комплекс позволяет решить большинство из стоящих сегодня перед разработчиками веб-систем задач на приемлемом по скорости обработки информации уровне.
7 Статические Web технологии. Основы технологии HTML
HTML- это Hyper Text Markup Language - языкгипертекстовойразметки.
Все тэги HTML начинаются с "<" (левой угловой скобки) и заканчиваются символом ">" (правой угловой скобки). Почти все теги являются парными, то есть существует открывающий "зону действия" тег (< тег>), и соответственно закрывающий (< /тег >).
Обязательные теги.
<HTML></HTML>, определяет, что документ написан с использованием html (языка разметки гипертекста) и все другие теги должны размещаться внутри данного;
<HEAD></HEAD>, теги, находящиеся в этом теге, содержат наименование документа, другие данные о нем, вся эта информация в теле документа не отображается; <HEAD> должен стоять сразу после тега <HTML> и нигде больше;
<TITLE></TITLE>, описывает наименования документа, этот тег размещается в теге <HEAD>;
Наиболее часто употребляемые атрибуты тега <BODY>: задание фонового рисунка документа и цветов его элементов. Для включения в веб-документ фонового рисунка, используется в теге <BODY>атрибутBACKGROUND: <BODY BACKGROUND="images/image_fon.jpg">.
Цвета элементов документа задаются атрибутами: BGCOLOR="#XXXXXX",TEXT="#XXXXXX",LINK="#XXXXXX",VLINK="#XXXXXX",ALINK="#XXXXXX", где BGCOLOR - цвет фона , TEXT - цвет текста, LINK - цвет ссылки, VLINK - цвет ссылки, уже просмотренной в текущем сеансе, ALINK - цвет ссылки активной.
Теги заголовка текста. Большинство браузеров воспринимают шесть уровней заголовка (от H1 до H6) и определяют каждому из них свой стиль. <H1> Пример </H1>.Заголовки по левому краю, по правому, по центру, по ширине окна. Реализуется это с помощью атрибута ALIGN: <H1 ALIGN="left"|"right"|"center"|"justify">.
Тег абзаца. Браузеры различают абзацы только по тегу <P>.Текст абзаца можно выравнивать по левому краю, по правому, по центру, по ширине окна, с помощью атрибута ALIGN.
Тег разрыва строки. С помощью тега <BR> можно разрывать строку текста в любом месте.
Тег выравнивания элементов документа по центру. Для того, чтобы элементы документа находились по центру окна, их необходимо разместить между тегами <CENTER></CENTER>.
<B>, </B>- теги для выделения полужирным шрифтом.
<I>, </I>- для выделения курсивом.
<U>, </U>- теги для выделения подчеркиванием.
<EM>, </EM>- для акцентирования внимания, выделение курсивом.
<STRONG>, </STRONG>- для сильного выделения, обычно, полужирным шрифтом.
Тег <FONT>с помощью его атрибутов можно указывать имя шрифта, его размер, цвет (для слова, фраз). Тег <FONT SIZE=+3>...</FONT> задает размер шрифта на три пункта больше базового. Цвет шрифта задается значением параметра COLOR.<FONT FACE= "ARIAL", "HELVETICA", "SANS-SERIF" SIZE="5" COLOR="#483D8B" >Шрифт "Arial", размер 5, цвет темно-синий</FONT>.
8 Статические Web технологии. Таблицы HTML
Таблица в языке HTML представляется как набор строк, причем в каждой из них должна быть задана хотя бы одна ячейка. В разных строках может находиться разное количество ячеек.
Теги таблицы и ее компонентов. <TABLE>, </TABLE>- основные теги (тэги), описывающие таблицу. Все, что будет находиться в ней, должно размещаться между двумя этими тегами.
<TR>, </TR>- теги, описывающие строку таблицы.
<TD>, </TD>определяют ячейку таблицы, эти теги могут находиться только внутри тегов, описывающих строку.
<TH>, </TH>используются для описания заголовка строки или столбца таблицы.
<CAPTION>, </CAPTION>применяются для определения названия (подписи) таблицы. По умолчанию, название ставиться вверху таблицы и выравнивается по центру. Данные теги должны размещаться между<TABLE> и </TABLE>, но вне тегов, описывающих строки или ячейки таблицы.
В теге <TABLE> могут использоваться следующие параметры: BORDER, CELLSPACING, CELLPADDING, WIDTH, ALIGN.
Параметр BORDERзадает рамку вокруг всей таблицы и вокруг каждой ячейки, образуя линию сетки таблицы (<TABLE BORDER=1>).WIDTH="n%"|"n" задает ширину таблицы или ячейки таблицы. Фиксированная ширина пишется в пикселях, относительная в процентах (относительно ширины окна, таблицы или ячейки другой таблицы, в которой она размещена).HEIGHT="n%"|"n" определяет высоту таблицы или ячейки таблицы как фиксированную величину в пикселях, или относительную в процентах.COLSPAN=n используется для объединения ячеек таблицы по горизонтали (данная ячейка захватывает n столбцов по ширине).ROWSPAN=n только для объединения ячеек таблицы по вертикали (данная ячейка захватывает n строк по высоте). Применяется, как иCOLSPAN, в тегах<TH>, <TD>.
Выравнивание таблицы по горизонтали задается атрибутом ALLIGN, значения: left, center, right. А для того чтобы выровнять текст в ячейках таблицы, атрибут горизонтального выравнивания align необходимо применить к каждому тегу td. Для вертикального выравнивания содержимого ячеек - атрибутVALIGN: middle, top, bottom.
Фоновое изображение или цвет можно так же задать как для всей таблицы, так и для отдельно взятой ячейки. Задается это - для изображения - атрибутом BACKGROUND, в значении которого прописывается путь к необходимому графическому файлу. Для цветового фона - атрибутомBGCOLOR, здесь значением является наименование цвета.
9 Статические Web технологии. Фреймы HTML
Фреймы
Фреймы разделяют окно браузера на отдельные области, расположенные вплотную друг к другу. В каждую из таких областей загружается самостоятельная веб-страница определяемая с помощью тега <frame>. С помощью фреймов веб-страница делится на два или более документа, которые обычно содержат навигацию по сайту и его контент. Механизм фреймов позволяет открывать документ в одном фрейме, по ссылке, нажатой в совершенно другом фрейме. Допустимо также использовать вложенную структуру элементов, это позволяет дробить фреймы на мелкие области.
Тег <frame>
Определяет свойства отдельного фрейма, на которые делится окно браузера.
Тег <frameset>
Определяет структуру фреймов на веб-странице.
Тег <iframe>
Создает плавающий фрейм.
Тег <noframes>
Содержимое тега <noframes> отображается в браузере, когда он не поддерживает фреймы и не умеет их интерпретировать.
10 Статические Web технологии. Формы HTML
Зачастую на Web – сайтах можно встретить страницы с размещенными на них HTML - формами. Веб-формы – удобный способ получения информации от посетителей вашего сайта. Формы так же удобны и для разработчиков сайта при разработке CMS, которая позволяет поддерживать главное свойство сайта - актуальность.
1) Создание простой формы
Теги <form> и </form> задают начало и конец формы. Начинающий форму тег <form> содержит два атрибута: action и method. Атрибут action содержит адрес URL сценария, который должен быть вызван для обработки сценария. Атрибут method указывает браузеру, какой вид HTTP запроса необходимо использовать для отправки формы; возможны значения POST и GET.
Замечание
Главное отличие методов POST и GET заключается в способе передачи информации. В методе GET параметры передаются через адресную строку, т.е. по сути в HTTP-заголовке запроса, в то время как в методе POST параметры передаются через тело HTTP-запроса и никак не отражаются на виде адресной строки.
<form method="post" action="../admin/add_story.php"> </form>
2) Флажок (checkbox)
Флажки checkbox предлагаю пользователю ряд вариантов, и разрешает выбор нескольких из них.
<inputname="Имя переключателя" type="Тип" value="Значение">
Группа флажков состоит из элементов <input>, имеющих одинаковые атрибуты name и type(checkbox). Если вы хотите, чтобы элемент был отмечен по умолчанию необходимо пометить его как checked. Если элемент выбран, то сценарию поступит строка имя=значение, в противном случае в обработчик формы не придет ничего, т.е. не выбранные флажки вообще никак не проявляют себя в переданном наборе данных.
Пример:
<input name="mycolor" type="checkbox" value="red" checked>Красный(выбран по умолчанию) <input name="mycolor" type="checkbox" value="blue">Синий 3) Переключатель(radio)
Переключатели radio предлагают пользователю ряд вариантов, но разрешает выбрать только один из них.
<inputname="Имя переключателя" type="Тип" value="Значение">
Переключатель (radio) имеет атрибуты name, type и value. Атрибут name задает имя переключателя, type задает тип radio, а атрибут value задает значение. Если пользователь выберет переключатель, то сценарию будет передана строка имя=значение. При необходимости можно указать параметр checked, который указывает на то, что перключатель будет иметь фокус (т.е. будет отмечен по умолчанию) при загрузке страницы. Переключатели также можно объединять в группы, для этого они должны иметь одно и тоже имя.
Пример:
<input name="mycolor" type="radio" value="white"> Белый 4) Кнопка сброса формы(Reset)
<input type="Тип" name="Имякнопки" value="Надписьнакнопке">
При нажатии на кнопку сброса(reset), все элементы формы будут установлены в то состояние, которое было задано в атрибутах по умолчанию, причем отправка формы не производиться.
Пример:
<input type="reset" name="Reset" value="Очистить форму">
5) Выпадающий список (select)
Тэг <select> представляет собой выпадающий или раскрытый список, при этом одновременно могут быть выбраны одна или несколько строк.
Список начинается с парных тегов <select></select>. Теги <option></option> позволяют определить содержимое списка, а параметр value определяет значение строки. Если в теге <option> указан параметр selected, то строка будет изначально выбранной. Параметр size задает, сколько строк будет занимать список. Если size равен 1, то список будет выпадающим. Если указан атрибут multiple, то разрешено выбирать несколько элементов из списка(при size = 1 не имеет смысла).
<select name="Имя списка" size = “Размер” multiple> <option value=”Значение”>Отображаемый текст в списке</option> </select>
При передаче данных выпадающего списка сценарию передается строка имя=значение, а при раскрытом списке передается строкаимя=значение1&имя=значение2&имя=значениеN.
Текстовое поле (text)
Позволяет пользователям вводить различную информацию.
<inputtype="Тип" name="Имя поля" size="Размер" maxlength="Макс. количество символов">
При создании обычного текстового поля размером size и максимальной допустимой длины maxlength символов, атрибут type принимает значение text. Если указан параметр value, то поле будет содержать отображать value-текст. При создании поля не забывайте указывать имя поля, т.к. этот атрибут является обязательным.
Пример:
<input type="text" name="txtName" size="10" maxlength="5" value="Текст по умолчанию">
7) Поле для ввода пароля (password)
Полностью аналогичен текстовому полю, за исключением того что символы, набираемые пользователем, не будут отображаться на экране.
Пример:
<input type="password" name="txtName" size="10" maxlength="5">
8) Многострочное поле ввода текста (textarea)
Многострочное поле ввода текста позволяет отправлять не одну строку, а сразу несколько. По умолчанию тег создает пустое поле шириной в 20 символов и состоящее из двух строк.
<textareaname="Имя поля" cols="Ширина поля " rows="Число строк">Текст</textarea>
Многострочное поле ввода текста начинается с парных тегов <textarea></textarea>. Тэг name задает имя многострочного поля. Также можно указать ширину поля(cols) и число строк(rows). При необходимости можно указать атрибут readonly, который запрещает редактировать, удалять и изменять текст, т.е. текст будет предназначен только для чтения. Если необходимо чтобы текст был изначально отображен в многострочном поле ввода, то его необходимо поместить между тэгами <textarea></textarea>.
Пример:
<textarea name="txtArea" cols="15" rows="10" readonly> Текст, который изначально будет отображен в многострочном поле ввода и который нельзя изменять, т.к. указан атрибут readonly </textarea>
Скрытое текстовое поле
Позволяет передавать сценарию какую то служебную информацию, не отображая её на странице.
<input name="Имя" type="Тип" value="Значение">
Скрытое поле начинается с тега <input>, атрибуты которого являются name, type и value. Атрибут name задает имя поля, type определяет тип поля, а атрибут value задает значение поля.
Пример:
<input name="email" type="hidden" value="[email protected]">