Пробел
Спецификация SGML делает различие между начальным символом (перевод строки) и концом записи (возврат каретки). Но существует большое разнообразие использования этих символов в различных системах и агент пользователя должен быть способен корректно обрабатывать все варианты. Аналогично меняется от скрипта к скрипту представление о том, что такое разделитель слов. В латинских текстах это пробел (десятичный код 32), в японском и китайском пробел игнорируется, а в тайском используется нуль-сепаратор. Что же касается самого HTML, здесь функции сепаратора выполняет код пробела. Набор символов документа включает в себя широкое разнообразие символов пробела. Многие из них являются типографскими элементами, которые служат для формирования зазоров между словами или буквами. В HTML, определены только следующие символы пробела:
ascii пробел ( )
ascii tab (	)
ascii form feed ()
пробел нулевой ширины (​)
Разрыв строки также является пробелом. Заметьте, что 
 и 
 определенные в [ISO10646] для разделения строк и параграфов, соответственно, не являются разрывами строк в HTML.
Пример текста:
<p>
this example shows a paragraph and a list
</p>
<ul>
<li> |
<li> |
this is the <em>второй</em> item
</li>
</ul>
текст может быть переписан с пропуском конечных меток и размещен иначе с использованием меньшего числа пробелов.
<p>this example shows a paragraph and a list
<ul>
<li> this is <em>первый</em> item | |
<li> this is <em>второй</em> item |
</ul>
Элемент pre используется для уже сформатированных фрагментов текста, где важны пробелы.
9.1. Структурированный текст
Элементы фраз: em, strong, dfn, code, samp, kbd, var, cite, acronym
<!entity % phrase "em | strong | dfn | code | samp | kbd | var | citr | acronym">
<!element (%font|%phrase) - - (%inline) *>
<!attlist (%font|%phrase) | -- %coreattrs, %i18n, %events -- > |
em: | Подчеркивают значение. |
strong: | Указывает на еще большую важность (придает выразительность) |
dfn: | Указывает, что это место определения вложенного термина. |
code: | Отмечает фрагмент текста программы. |
samp: | Выделяет пример из текста программы или скрипта. |
kbd: | Отмечает текст, который должен быть введен пользователем. |
var: | Отмечает переменную или аргумент программы |
cite: | Ссылается на фрагмент текста или другой источник. |
acronym: | Отмечает акроним (напр. HTML, URI, WWW и т.д.). |
<!attlist blockquote %attrs; | -- %coreattrs, %i18n, %events -- | |
cite %url #implied | -- url исходного документа или сообщения -- > | |
<!attlist q %attrs; | -- %coreattrs, %i18n, %events -- | |
cite %url #implied | -- url исходного документа или сообщения -- > |
<!attlist (sub|sup) %attrs; | -- %coreattrs, %i18n, %events --> |
Задачи распознавания минимального набора путей и разрезов, сопряженные с 2-терминальной мерой, являются проблемами кратчайшего пути и минимального разреза, соответственно. Известны полиномиальные алгоритмы для обеих этих задач. Валиант впервые показал, что задачи анализа надежности в случае 2-терминальной меры имеют сложность NP. Его результаты, которые мы описываем, являются хорошей иллюстрацией методик, используемых в данной области. Доказательство, приведенное ниже, зиждется на сведении проблемы вычисления SN(K) к задаче анализа 2-терминальной рациональной надежности:
Пусть дан граф G = (N,A) с исходным узлом s и набором терминальных вершин K. Построим граф Gґ, добавив к исходному графу узел t и дуги (u,t) для каждого uОK. Присвоим вероятность отказа 1-p всем ребрам (u,t), а всем дугам исходной сети присвоим вероятность отказа 0,5. Заметим, что если все дуги из А имеют одинаковую вероятность отказа, равную 0,5, то все случайные состояния дуг из А, будет иметь вероятность (1/2)|A|. Если через Ai обозначить число субграфов в G, в которых s соединена ровно с i узлами из K, то можно записать Pr[Rel(G`;s,t)]= ?i? SНK,|S|=iPr[существует рабочий путь от s к S, но не работают остальные K-S узлов, а (u,t) работают для всех uОS] = 2-|E|?Ai(1-pi). Сделав оценку такой надежности для |K| различных значений p, мы можем записать систему из |K| уравнений с |K| неизвестными величинами Ai. Отсюда мы можем найти Ai. Сведение завершено, т.к. A|K|=SN(K). Такое сведение показывает, что сложность рациональной задачи соответствует NP. Немногим сложнее доказать, что задача функциональной надежности имеет сложность NP.
В этом документе используются следующие термины:
Услуга | NAS обеспечивает пользователю, подключенному через модем, определенные услуги, такие как PPP или Telnet. |
Сессия | Каждый вид услуг, предоставляемый NAS через модемную связь, представляет собой сессию. Начало сессии сопряжено с моментом начала предоставления данной услуги, а конец - со временем завершения этого процесса. Пользователь может иметь несколько сессий одновременно, если сервер поддерживает такой режим. |
Молчаливое удаление (silently discard)
Это означает, что программа выбрасывает пакет без какой-либо обработки. Программная реализация должна предоставлять возможность диагностирования таких случаев и записи их статистики. |
Тип пакета RADIUS определяется полем тип, размещенным в первом октете.
В этом разделе мы изучим алгоритмы точного вычисления мер надежности. Выше было показано, что для сетей в целом все меры надежности, представляющие интерес, являются #P-полными. Поэтому мы исследуем два основных направления: точные алгоритмы с экспоненциальным временем для общих сетей, и точные алгоритмы с полиномиальным временем для ограниченного класса сетей.
Оба этих направления опираются на простое, но важное соображение: существует такое преобразование графа, которое не меняет значений различных мер надежности, и это преобразование может быть использовано для упрощения топологии сети, для которой нужно вычислить точное значение надежности. Наша первая тема - такие преобразования графов с целью их упрощения.
В разделе 2.3 мы показали, что возможность вычисления размера набора проходов l с минимальной мощностью и размера с набора разрезов с минимальной мощностью делает возможным точное определение числа коэффициентов. Когда l эффективно вычислимо, дальнейшая информация может быть часто получена с помощью вычисления Nl. В k-терминальной проблеме это по правде безнадежно, так как нужно подсчитать минимальное число деревьев Штайнера, что является #P-сложной задачей. В двух других случаях, однако, эффективные алгоритмы существуют.
Во всетерминальной проблеме Ni.равно числу деревьев связи. Кирхофф в 1847 разработал элегантный метод подсчета деревьев связи; он был разработан в форме, удобной для реализации на ЭВМ. В двухтерминальной проблеме Ni равно числу наикратчайших s,t-проходов. Болл и Провен разработали эффективную стратегию для вычисления этого числа. Было установлено, что для любого фиксированного kі 0, набор проходов размера l+k в двухтерминальной проблеме может быть эффективно вычислен.
Эффективный алгоритм для вычисления с дает нам возможность также определить точно число дополнительных коэффициентов. Эта проблема легко решаема во всех трех случаях, представляющих интерес, с использованием идентичного метода в каждом из случаев. Теорема Менгера гарантирует, что минимальный s,t-разрез имеет в точности размер с, когда максимальное число s,t-проходов с разъединенными ребрами равно с. Эта проблема легко адаптируется для задачи сетевых потоков со всеми ребрами, имеющими полосу (пропускную способность) равную 1.
Имея вычисленное с, было бы интересно вычислить Cc, число наборов разрезов минимальной мощности. Прован и Болл показали, что в двухтерминальном случае вычисление лишь этого коэффициента является #P-сложным; так как k-терминальная проблема включает в себя двухтерминальную проблему. Однако для всетерминальной проблемы был разработан метод эффективного вычисления Cc. Ломоносов и Полесски [М.V.Lomonosov and V.P.Polesskii, “Lower bound of network reliability”, Problems of Information Transmission, 8 (1972), 118-123] показали, что каждый n-узловой граф G имеет
. Кроме того, замечено, что для любого i и любого ребра е графа G Ci(G)=Ci(G Чe)+Ci-1(G-e). Эти два факта были использованы, чтобы разработать эффективный метод для подсчета наборов разрезов размера c+k для любого фиксированного k і 0.Сервер NAS с адресом 192.168.1.16 посылает запрос Access-Request в UDP пакете серверу RADIUS для пользователя с именем NEMO, подключаемого к порту 3.
Code = 1 (Access-Request)
ID = 0
Request Authenticator = {16-октетное случайное число}
Атрибуты:
User-Name = "NEMO"
User-Password = {16-октетный пароль, дополненный в конце нулями и объединенный операцией XOR с MD5(общий секретный пароль|Request Authenticator)}
NAS-IP-Address = 192.168.1.16
NAS-Port = 3
Сервер RADIUS аутентифицирует NEMO и посылает запрос Access-Accept в UDP пакете серверу NAS, требуя от него организации удаленного доступа пользователя NEMO к ЭВМ с заданным адресом.
Code = 2 (Access-Accept)
ID = 0 (то же самое, что и в Access-Request)
Response Authenticator = {16-октетная контрольная сумма MD-5 кода (2),
id (0), приведенного выше Request Authenticator, атрибутов этого отклика и общего секретного пароля }
Атрибуты:
Service-Type = Login-User
Login-Service = Telnet
Login-Host = 192.168.1.3
Семёнов Ю.А. (ГНЦ ИТЭФ), book.itep.ru
TELNET позволяет пользователю установить TCP-соединение с сервером и затем передавать коды нажатия клавиш так, как если бы работа проводилась на консоли сервера. TELNET (RFC-854, в некоторых реализациях tn) служит для выполнения удаленного доступа к вычислительным ресурсам и базам данных (например, к базам ядерных данных в Вене, Брукхейвене или STN-international в Карлсруэ). Для входа в базу данных или ЭВМ обычно нужна аутентификация (ввод имени-идентификатора пользователя и его слова-пропуска). В некоторых реализациях допускается использование параметров, которые подключают необходимые эмуляторы терминалов.
TELNET предлагает три услуги:
Определяет сетевой виртуальный терминал (NVT - network virtual terminal), который обеспечивает стандартный интерфейс к удаленной системе.
Включает механизм, который позволяет клиенту и серверу согласовать опции обмена
Обеспечивает симметрию соединения, допуская любой программе (например FTP) выступать в качестве клиента
Протокол TELNET позволяет обслуживающей машине рассматривать все удаленные терминалы как стандартные "сетевые виртуальные терминалы" строчного типа, работающие в кодах ASCII, а также обеспечивает возможность согласования более сложных функций (например, локальный или удаленный эхо-контроль, страничный режим, высота и ширина экрана и т. д.). На прикладном уровне над TELNET находится либо программа поддержки реального терминала, либо прикладной процесс в обслуживающей машине, к которому осуществляется доступ с терминала. Формат NTV достаточно прост. Для данных используются 7-битовые ASCII коды. 8-битовые же октеты зарезервированы для командных последовательностей.
Telnet взаимодействует с другой ЭВМ через протокол TELNET. Если команда TELNET вводится без аргументов ЭВМ переходит в командный режим, напечатав приглашение telnet>. В этом режиме она воспринимает и исполняет команды, описанные ниже.
При вводе TELNET с аргументами программа осуществит связь вашей ЭВМ с удаленным компьютером, имя или адрес которого вы ввели в качестве одного из аргументов.
Код опции в Telnet | Описание | Номер RFC |
0 | Двоичный обмен | 856 |
1 | Эхо | 857 |
2 | Повторное соединение | NIC 15391 |
3 | Подавление буферизации ввода | 858 |
4 | Диалог о размере сообщения | NIC 15393 |
5 | Статус | 859 |
6 | Временная метка | 860 |
7 | Удаленный доступ и отклик | 726 |
8 | Длина выходной строки | nic 20196 |
9 | Размер выходной страницы | nic 20197 |
10 | Режим вывода символов <возврат каретки> | 652 |
11 | Вывод горизонтальной табуляции | 653 |
12 | Установка положения табуляции при выводе | 654 |
13 | Режим вывода команды смены страницы | 655 |
14 | Вывод вертикальной табуляции | 656 |
15 | Определяет положение вертикальной табуляции | 657 |
16 | Режим вывода символа <перевод строки> | 658 |
17 | Расширенный набор кодов ASCII | 698 |
18 | Возврат (logout) | 727 |
19 | Байт-макро | 735 |
20 | Терминал ввода данных | 732 |
21 | Supdup | 736 |
22 | Supdup вывод | 747 |
23 | Место отправления | 779 |
24 | Тип терминала | 930 |
25 | Конец записи | 885 |
26 | Tacacs- идентификация пользователя | 927 |
27 | Пометка вывода | 933 |
28 | Код положения терминала | 946 |
29 | Режим 3270 | 1041 |
30 | X.3 PAD | 1053 |
31 | Размер окна | 1073 |
open имя_ЭВМ [ порт ] | open открывает связь с ЭВМ, имя которой указано в обращении. Если номер порта явно не указан, telnet пытается использовать для связи с сервером номер порта по умолчанию. Вместо имени ЭВМ-сервера может использоваться ее IP-адрес. |
display [ аргумент ... ] | Отображает все, или часть, набора параметров telnet (см. описание команды send). |
close | Закрывает сессию telnet и возвращает систему в командный режим. |
quit | Закрывает любую сессию telnet. |
mode type | Управляет режимом ввода ("построчный" или "посимвольный"). Удаленной машине посылается запрос на переход в соответствующий режим. Если она готова (способна) работать в запрошенном режиме, будет произведено соответствующее переключение. |
status | Отображает текущий статус telnet. В перечень информации входит имя удаленной ЭВМ и действующий режим обмена. |
? [ команда ] | Выдает справочную информацию о команде, название которой приведено в качестве аргумента |
send arguments | Посылает удаленной ЭВМ один или несколько символьных аргументов. В качестве аргументов могут использоваться: escape, synch, brk, ip, ao, ayt, ecel, ga и др. Смотри таблицу 4.5.3.3. |
escape | Посылает escape символ (например, `^]'). |
SYNCH | Посылает synch-последовательность. Эта последовательность позволяет аннулировать все, что было до этого напечатано, но еще не считано. Эта последовательность посылается как срочная (важная) TCP-информация (может не сработать, если удаленной системой является 4.2 BSD). Если она не сработала, на терминал будет послан символ "r". |
brk | Посылает Break-последовательность при нажатии клавиши Break (Pause). (Исчерпывающую информацию об аргументах можно найти в описании используемого программного обеспечения или с помощью команд Help или Man) |
set argument value | Присваивает любому числу переменных telnet новые значения. Специальное значение "off" выключает функцию, соответствующую данной переменной |
Название переменной | Назначение |
Echo | Определяет, будет ли отображаться на экране то, что вы вводите с клавиатуры. При значении off ввод не отображается, например, при вводе пароля. |
Escape | Задает символ, который используется в качестве escape. Появление этого символа во входном потоке заставляет его и последующие символы интерпретироваться в ЭВМ, где функционирует процесс telnet, как команда |
Interrupt | Специфицирует символ прерывания процесса. Ввод его приводит к остановке процесса пользователя, работающего на удаленной ЭВМ. |
Quit | Специфицирует символ, который используется пользователем на его клавиатуре для выполнения команд brake или attention. |
Flushoutput | Определяет символ, который служит для прерывания процедуры вывода на удаленной ЭВМ. |
EOF | Специфицирует символ, который используется для обозначения конца файла на удаленной машине. |
Последовательность символов | Назначение |
? | Отображает справочную информацию о команде send |
escape | Посылает символ escape (без прерывания посылки символов для Telnet) |
ip | Посылает протокольную последовательность telnet. Удаленная машина должна прервать процесс, запущенный для вас. |
ec | Посылает протокольную EC-последовательность telnet. Удаленная ЭВМ должна стереть последний напечатанный вами символ |
el | Посылает протокольную EL-последовательность TELNET. Удаленная ЭВМ должна стереть последнюю напечатанную вами строку. |
ao | Посылает протокольную AO-последовательность TELNET. Удаленная ЭВМ должна направить весь вывод на ваш терминал. |
brk | Посылает протокольную BRK-последовательность TELNET. Удаленная ЭВМ должна обеспечить отклик. |
ayt | Посылает протокольную AYT-последовательность TELNET (Are You There). Удаленная ЭВМ должна обеспечить отклик. |
Имя субкоманды TELNET | Код | Описание |
EOF | 236 | Признак конца файла |
SUSP | 237 | Отложить исполнение текущего процесса |
ABORT | 238 | Абортировать процесс |
EOR | 239 | Конец записи |
NOP | 241 | Никаких действий |
DM(Метка данных) | 242 | Блок данных процедуры SYNCH |
BRK (Остановка) | 243 | brk-символ (break); |
IP(Прерывание процесса) | 244 | IP-функция |
io (Прерывание вывода) | 245 | AO-функция |
AYT (Вы здесь?) | 246 | ayt-функция |
EC (Стереть символ) | 247 | EC-функция |
EL (Стереть строку) | 248 | EL-функция |
GA (Продолжайте) | 249 | GA-функция |
SB | 250 | Начало субопции |
SE | 240 | Завершение согласования параметров (конец субопции) |
Will ("будет") | 251 | Начало исполнения (опционно) |
Won't (не будет) | 252 | Отказ исполнения или продолжения выполнения (опционно) |
Do("исполнить") | 253 | Индицирует запрос, который другая система исполняет (опционно) |
Don't ("Нет") | 254 | Требует, чтобы другая система остановила исполнение (опционно) |
IAC | 255 | Интерпретируется как начало командной последовательности |
Комбинация клавиш | Достигаемый результат |
Ctrl+E | Echo |
Ctrl+] | Escape |
Ctrl+? | Erase |
Ctrl+O | flushoutput |
Ctrl+C | Interrupt (прерывание исполнения программы) |
Ctrl+U | Kill |
Ctrl+\ | Quit |
Ctrl+D | EOF |
? | display this help message | a | sends Telnet AYT request |
^h | debugging command help | b | send Telnet Interrupt Process |
o | write receive data to output file | z | send Telnet Abort output |
i | read keystrokes from an input file | t | send Telnet Break |
c | close connection gracefully | ! | escape to command interpret |
q/Q | quit current/all telnet connections | I | show local internet address |
F | toggle build-in FTP-server on/off | U | turn status line on |
W | toggle FTP server write-protect mode | u | turn status line off |
0-9 | switch to connection # | s | Enable pop-up TSR with hot-key |
p | Select code page remapping | S | Toggle screen-saver key-passing |
R | Enter key send CR | l | local echo mode |
N | Enter key send newline (CRLF) | r | remote echo mode |
E | send characters as typed | w | turn end-of-line wrap on |
E | send line when ENTER is typed | d | turn end-of-line wrap off |
B | <-key sends BS; CTL_<-key sends DEL | set emulator mode (VT52|100|220) | |
D | <- key sends DEL; CTL_<-key sends BS |
y | set Yale Null Processing off | Y | set Yale Null Processing on |
В ранних реализациях RADIUS сервер поддерживал один процесс (single threaded). Это означает, что только один запрос принимался, обрабатывался и отправлялся. Это оказалось неприемлемым для сред, где механизм обеспечения безопасности требует определенного времени (1 или более секунд). Очередь запросов в сервере будет значительной и в средах, где сотни людей требуют аутентификации каждую минуту, время обслуживания запроса становится настолько большой, что начинает нервировать пользователей. Очевидным решением проблемы является многопроцессный сервер. Достичь этого проще всего с помощью UDP. Порождаются отдельные процессы для обслуживания каждого запроса, а эти процессы могут напрямую взаимодействовать с клиентом NAS путем отправки UDP-пакета.
Это не панацея. Применение UDP требует организации повторных передач, для чего нужно на сервере запускать соответствующие таймеры. В этом UDP уступает TCP, но это небольшая плата за полученные преимущества.
Когда многие связи в документе указывают на один и тот же адрес, имеется возможность специфицировать адрес только один раз, а ссылки обеспечить путем введения атрибута target в нужные элементы. Это делается путем установки атрибута target элемента base. Рассмотрим предыдущий пример с этой точки зрения.
<html>
<head>
<base target="dynamic">
</head>
<body>
… начало документа …
now you may advance to <a href="slide2.html">slide 2.</a>
… продолжение документа …
you're doing great. now on to
<a href="slide3.html">slide 3.</a>
</head>
</html>
Существует несколько методов сделать рамку адресом связи.
Если элемент имеет атрибут target, указывающий на известную рамку, тогда при активации элемента, документ связанный с этим элементом, будет загружен в данную рамку.
Если элемент не имеет атрибута target и имеет элемент base, тогда именно base определяет рамку, куда будет произведена загрузка.
Если элемент и base не имеют атрибута target, документ, соответствующий элементу, будет загружен в рамку, содержащую этот элемент.
Если любой адрес (target) указывает на рамку f, агент пользователя создаст новое окно и рамку, припишет имя f этой рамке и загрузит документ, соответствующий элементу, в эту новую рамку.
Имя рамки должно начинаться с буквы (a-za-z). Агент пользователя должен игнорировать любые другие имена. Существует несколько имен, зарезервированных для специальных целей.
_blank | агент пользователя должен загрузить документ в новую безымянную рамку. |
_self |
агент пользователя должен загрузить документ в ту же рамку, что и элемент, который ссылается на этот адрес (target). |
_parent | агент пользователя должен загрузить документ в frameset, породивший текущую рамку. Это значение эквивалентно _self, если текущая рамка не имеет прародителя. |
_top | агент пользователя должен загрузить документ в полное исходное окно. Значение эквивалентно _self, если текущее окно не имеет прародителя. |
Агенты пользователя, которые не поддерживают рамки, должны отображать секцию body, которая следует за самым внешним frameset документа. Агенты пользователя, которые поддерживают рамки, должны игнорировать эту секцию body.
Многие разработчики при проверке своих документов полагаются на ограниченное число броузеров, предполагая, что если эти броузеры могут работать с их документами корректно, то они лишены ошибок. К сожалению, это очень неэффективный способ верификации документов, прежде всего из-за того, что многие броузеры приспособлены работать с не вполне корректными документами.
Для более тщательной проверки рекомендуется воспользоваться интерпретатором SGML, например, в случае проверки соответствия документа требованиям HTML 4.0 DTD это может быть NSGMLS. Если декларации типа в вашем документе включают URI, и ваш интерпретатор SGML поддерживает этот тип системных идентификаторов, то он получит DTD (Document Type Definition) непосредственно. В противном случае можно воспользоваться каталогом образцов SGML.
Предполагается, что DTD спасено в виде файла "strict.dtd", а объекты (entities) записаны в файлы "htmllat1.ent", "htmlsymbol.ent" и "htmlspecial.ent". В любом случае следует проверить то, что ваш интерпретатор SGML может работать с уникодами.
Следует иметь в виду, что такая проверка, хотя и полезна и настойчиво рекомендуется, не может гарантировать полного соответствия документа требованиям спецификации HTML 4.0. Это происходит потому, что интерпретатор SGML базируется на определенных SGML DTD, не выражают всех аспектов истинного документа HTML 4.0. Интерпретатор SGML гарантирует, что синтаксис, структура, список элементов и их атрибутов соответствуют рекомендациям стандарта. Но он не может, например, обнаружить ошибки при установке атрибута ширины элемента IMG. Хотя спецификация ограничивает значение атрибута "целым числом пикселей"," DTD определяет только то, что это cdata, что практически допускает любые значения. Только специализированная программа способна выловить все несоответствия с HTML 4.0.
Несмотря ни на что, этот тип верификации является рекомендуемым, так как позволяет обнаружить большинство ошибок.
29.1. Каталог образцов SGML
Этот каталог включает в себя отвергнутые директивы с тем, чтобы гарантировать, что обрабатывающее программное обеспечение, такое как NSGMLS, использует предпочтительно общедоступные идентификаторы по отношению к системным идентификаторам. Это означает, что пользователи не должны быть подключены к сети при обработке системных идентификаторов, базирующихся на URI.
override yes
public "-//w3c//dtd html 4.0//en" strict.dtd
public "-//w3c//dtd html 4.0 transitional//en" loose.dtd
public "-//w3c//dtd html 4.0 frameset//en" frameset.dtd
public "-//w3c//entities latin1//en//html" htmllat1.ent
public "-//w3c//entities special//en//html" htmlspecial.ent
public "-//w3c//entities symbols//en//html" htmlsymbol.ent
Когда ребра отказывают с разными вероятностями, F -комплекс содержит всю информацию о надежности, предоставив рабочие вероятности для каждого ребра. Однако F-вектор и полином надежности здесь более не применимы. Это ведет к нескольким методикам использования структуры сети для получения ограничений.
Применение атрибутов элементов img и object для целей управления отображением не рекомендуется, предпочтение, как и раньше здесь отдается стилевым листам. Атрибуты height и width дают агенту пользователя информацию о размере изображения или объекта, что позволяет зарезервировать для него место, а тем временем продолжить отображение документа. Оба атрибута могут иметь значение типа length. Агент пользователя может изменить масштаб, если это необходимо. Атрибуты vspace и hspace специфицируют размер полей вокруг изображения или объекта. Значения по умолчанию этих атрибутов не определено, оно должно быть мало, но не равно нулю.
Стилевые листы могут быть определены отдельно от документа. Это позволяет использовать такие стилевые листы во многих документах. Кроме того, стиль может быть изменен без модификации самого документа. Любой стиль обычно представляет собой иерархию стилевых листов. Некоторые из них используются вне зависимости от выбора пользователя. Для выбора внешних стилевых листов используется элемент Link. При этом необходимо установить следующие атрибуты:
href | для определения места размещения внешнего стилевого файла (href=url). |
rel | определяет, является ли данный стилевой лист постоянным (rel="stylesheet"), стилевым листом по умолчанию (rel="stylesheet") или листом по выбору (rel="alternate stylesheet"). |
title | устанавливает заголовок в случае, когда стилевой лист является листом по умолчанию (активируется и деактивируется пользователем). |
Сначала специфицируются постоянные (persistent) внешние стилевые листы (например, из файла mystyle.css).
<link href="mystyle/css" rel="stylesheet">
Установка атрибута title превращает постоянный стилевой лист в лист по умолчанию. Агенты пользователя должны предоставлять возможность применения именованных стилей на базе атрибута title.
<link href="mystyle/css" title="compact" rel="stylesheet">
Добавление ключевого слова "alternate" к атрибуту rel делает стилевой лист альтернативным.
<link href="mystyle/css" title="medium" rel="alternate stylesheet">
Все альтернативные стили, имеющие один и тот же заголовок (title), будут использоваться, когда пользователь (через агента пользователя) активирует этот стиль. Стилевые листы с разными заголовками в этом случае не будут применены. Однако, стилевые листы, которые не имеют атрибута title, применяются всегда (за исключением случая, когда пользователь отключает все стилевые листы).
Агент пользователя должен обеспечить средства выбора стилей для пользователей.
Значение атрибута title предоставляет имя, которое может использоваться при выборе стиля. В предлагаемом примере определено два альтернативных стиля, названных "compact". Если пользователь выберет стиль "compact", будут применены оба внешних стилевых листа, а также стилевой лист "common.css" (применяется всегда, так как атрибут title не установлен). Если пользователь выберет стиль "big print", агент пользователя применит файлы "bigprint.css" и "common.css".
<link rel="alternate stylesheet" title="compact" href="small-base.css">
<link rel="alternate stylesheet" title="compact" href="small-extras.css">
<link rel="alternate stylesheet" title="big- print" href="bigprint.css">
<link rel=stylesheet href="common.css">
Ниже предлагается вариант с элементами link и style.
<link rel=stylesheet href="corporate.css">
<link rel=stylesheet href="techreport.css">
<style type="text/css">
p.special { color: rgb(230, 100, 180) } |
Для ориентированной всетерминальной меры проблемы с наборами путей и разрезов с минимальной мощностью, являются задачами поиска минимального покрывающего дерева и минимального s-ориентированного разреза, соответственно.
Обе эти задачи решаются за полиномиальное время. Задача подсчета минимального s-ориентированных разрезов имеет сложность NP. А это, в свою очередь означает, что связанная с этим задача надежности имеет сложность NP. Для случая неориентированной меры задачи по распознаванию и подсчету минимального набора путей и разрезов имеют полиномиальную сложность. Однако задача вычисления общего члена в полиноме надежности имеет сложность NP потому, что задачи анализа надежности для неориентированного случая имеют сложность NP.
В свете этих негативных результатов, большинство исследований имело целью анализ структурированных сети. Самый широкий класс сетей, для которых можно выполнить вычисления за полиномиальное время, базируется на последовательно-параллельных графах и определенных обобщениях. Последние исследования посвящены сложности анализа надежности структурированных сетей, в частности это касается ориентированных ациклических и планарных сетей. Прован (J.S.Provan, “The complexity of reliability computations in planar and acyclic graphs”, SIAM, J. Computings 8 (1986), 694-702 ) показал, что неориентированная 2-терминальная проблема надежности имеет сложность NP в планарных нециклических сетях, имеющих степени узлов не выше трех.
Результаты данного раздела указывают на то, что полиномиальные алгоритмы для сетевой надежности существуют только для маленького класса сетей. Благодаря этому факту большое число исследований было посвящено изучению ограничений сетевой надежности, и подходов основанных на методе Монте-Карло.
<!element applet - - (param | %inline) *>
<!attlist applet
codebase %url #implied | -- опционный базовый url для аплета -- | |
archive cdata #implied |
-- архивный список с элементами, разделенными с помощью запятых -- | |
code cdata #implied | -- файл класса аплета -- | |
object cdata #implied | -- специализированный файл аплета -- | |
alt cdata #implied | -- описание для чисто текстовых броузеров -- | |
name cdata #implied | -- позволяет аплетам найти друг друга -- | |
width %pixels #required | -- предлагаемая ширина в пикселях -- | |
height %pixels #required | -- предлагаемая высота в пикселях -- | |
align %ialign #implied | -- вертикальное или горизонтальное выравнивание -- | |
hspace %pixels #implied | -- предлагаемые горизонтальные поля -- | |
vspace %pixels #implied | -- предлагаемые вертикальные поля -- > |
Описания атрибутов
codebase = URL
Этот атрибут специфицирует базовый URL для аплета. Если этот атрибут отсутствует, в качестве базового URL рассматривается текущий документ.
code = cdata
Этот атрибут специфицирует имя ресурса, который содержит откомпилированный субкласс аплета. Значение атрибута должно представлять собой относительный URL по отношению к базовому URL.
name = cdata
Этот атрибут специфицирует имя аплета, которое позволяет аплетам найти друг друга в пределах страницы.
width = length
Этот атрибут специфицирует исходную ширину для области отображения аплета (без учета размера окна или области диалоговых обменов, которые вызывают аплет).
height = length
Этот атрибут специфицирует исходную высоту для области отображения аплета.
align = top|middle|bottom|left|right
Этот атрибут специфицирует положение объекта по отношению к окружающему тексту.
archive = cdata
Этот атрибут специфицирует имена одного или нескольких архивов, разделенные запятыми, содержащие классы и другие ресурсы, которые будут предварительно загружены. Классы загружаются с помощью вызова appletclassloader с данным codebase. Предзагрузка ресурсов может значительно улучшить работу аплета.
object = cdata
Этот атрибут присваивает имя ресурсу, который содержит последовательное представление аплета.
Аплет приводится к стандартному виду. Используется метод start().
Этот элемент, поддерживаемый всеми java-броузерами, позволяет разработчикам встраивать Java-аплеты в HTML-документы. Содержимое аплетов используется агентом пользователя как альтернатива, если он не поддерживает данный элемент. При прочих условиях его содержимое должно игнорироваться. Ниже приведен пример Java-аплета.
<applet code="bubbles.class" width="500" height="500">
java-аплет, который рисует движущиеся пузыри.
</applet>
Эту запись можно переписать в другой форме.
<object codetype="application/octet-stream"
classid="java:bubbles.class"
width="500" height="500"> |
Иногда возникает необходимость не связи с другим HTML-документом, а полного его включения в текст. Для решения такой задачи рекомендуется использовать элемент object с атрибутом data. Ниже следующая строка включит содержимое file_to_include.html в позицию документа, где размещен элемент object.
<object data="file_to_include.html">
warning: file_to_include.html could not be included.
</object>
Содержание object отображается только в случае, когда атрибут data не может быть загружен. При использовании операций включения следует проявлять осторожность, так как файл может содержать элементы, которые вызовут непредсказуемые действия. Для введения определенного текста в документ можно также использовать элемент Iframe.
Вычислительные задачи, которыми чаще всего занимаются специалисты по численным методам, можно разделить на две группы: задачи распознавания, такие как определение, содержит ли граф гамильтонов цикл, и задачи оптимизации, такие как нахождение минимальной стоимости маршрута коммивояжера. Задачи анализа надежности в корне отличаются от двух последних. При вычислении надежности приходится учитывать не только топологию сети, но и потоки данных в ней. Следовательно, анализ их сложности включает соображения, которые связаны, но отличаются от механизма, используемого при рассмотрении проблем распознавания и оптимизации: классы P, NP и NP-полный.
Чтобы наиболее простым образом свести задачи анализа надежности к более знакомым комбинаторным проблемам, рассмотрим частный случай задачи анализа надежности, которая возникает, когда все индивидуальные компоненты надежности равны, т.е. pi для всех i. В этом случае Rel(SBS,p) можно записать в виде полинома по степеням p:
Rel(SBS,p)=
Этот полином является полиномом надежности. Задача по его вычислению называется задачей анализа функциональной надежности, где в качестве входных данных используется представление SBS, а на выходе получается вектор {Fi}.
Общий член в полиноме надежности Fipm-i(1-p)i представляет собой вероятность того, что работает ровно m-i компонентов сети и функционирует система в целом. Таким образом, можно интерпретировать Fi так:
Fi=|{S:|S|=i и ?(T-S)=1}|.
Отсюда видно, что проблема определения коэффициентов Fi является задачей подсчета. Результатом задачи по распознавания гамильтоновых контуров может быть либо “Да”, если в графе содержатся контуры, либо “Нет”, а результатом задачи подсчета гамильтоновых контуров в графе является число таких контуров. NP и NP-полный являются классами задач распознавания. Классы, соответствующие задачам подсчета, обозначаются #P и #P-полный. Очевидно, что любая задача подсчета, по крайней мере, не проще чем соответствующая ей задача распознавания. Например, если известно число гамильтоновых контуров в графе, то не составит труда ответить на вопрос - «Число гамильтоновых контуров больше нуля?».
Получается, что любая разновидность задачи подсчета из NP-полного класса часто является #P-полной. С другой стороны, существуют примеры задач распознавания, у которых время решения является полиномиальным, а их счетные аналоги относятся к NP-полному классу. Например, задача поиска точного соответствия в двудольном графе имеет полиномиальное время решения, а задача поиска точного числа полных соответствий в двудольном графе является #P-полной. Чтобы не усложнять этот обзор, мы не будем подробней вдаваться в проблему сложности, а будем указывать, относится ли она к полиномиальному классу или классу NP сложности.
Многие практические приложения требуют использования моделей с разной надежностью компонентов. В таких моделях все вероятности являются рациональными числами. Мы формулируем проблему анализа рациональной надежности следующим образом. В качестве входной информации используется представление и для каждого компонента i пара целых чисел ai, bi. На выходе получается пара целых чисел a и b таких, что a/b = Rel(SBS,{ai/bi}).
Мы начинаем с установления того, что, если конкретный анализ функциональной надежности является NP-сложными, тогда соответствующий анализ рациональной надежности является NP-сложными.
Утверждение 2.2. Для любой задачи анализа рациональной надежности r-Rel и соответствующей ей задачи анализа функциональной надежности, f-Rel за полиномиальное время может быть сведена к r-Rel.
Доказательство: В f-Rel входит представление функции SBS. На выходе необходимо получить набор коэффициентов {Fi} полинома надежности. Чтобы преобразовать f-Rel в r-Rel выберем m+1 рациональное значение вероятности 0 < p0 < p1 < ... < pm < 1. Для j= 0,1,…,m обозначим решения соответствующей задачи анализа рациональной надежности как rj = Rel(SBS,pj), где все компоненты надежности установлены равными pj. Теперь мы можем записать систему уравнений:
Использование карты изображения позволяет разработчику специфицировать активные зоны изображения и поставить им в соответствие определенные операции. Карта изображения создается путем установления связи между объектом и определенными областями изображения. Существует два типа карт изображения:
Сторона сервера. Когда пользователь активирует область карты изображения со стороны сервера с помощью мышки, координаты нажатия клавиши посылаются серверу, где помещен документ. Сервер интерпретирует эти координаты и выполняет определенные действия (определено атрибутом href элемента А).
Сторона клиента. Когда пользователь активирует область карты изображения со стороны клиента с помощью мышки, координаты нажатия клавиши интерпретируются агентом пользователя. Агент пользователя выбирает связь, которая была специфицирована для активированной области.
Предпочтительной считается карта изображения клиента. Предусматривается возможность использования карты изображения несколькими элементами.
Мы детально рассмотрели несколько разных метрик (мер) и фактически существует еще много метрик, которые не были упомянуты или которые были рассмотрены достаточно бегло. Может возникнуть дилемма, какую метрику использовать. Следующие соображения являются фундаментальными при принятии такого решения:
1. Важность и природа критерия работоспособности.
2. Сообщество обслуживаемых пользователей.
3. Философия обслуживания: хорошее качество в среднем или хорошее качество в экстремальных режимах.
Фундаментальным решением является, следует ли использовать меру связности или меру работоспособности. Меры связности включают все версии k-терминальных метрик, а также определенные относительные метрики, такие как сетевая адаптивность, ожидаемая доля пар узлов, участвующих в обмене одновременно. Меры работоспособности явно отражают модель вариации рабочих характеристик при сетевых отказах. Мера связности может быть полезной, когда функционирование сети считается удовлетворительным, если обеспечивается ее связность. Это так для многих оптоволоконных сетей. Мера связности полезна также при измерении вероятности того, что сеть способна обеспечить некоторый минимальный уровень обслуживания, т.е. вероятность того, что сеть может обработать важные вызовы или аварийные сигналы. Исследования мер работоспособности мотивировалось тем, что существуют сети, где при отказе какого-то компонента уровень функционирования сети падает ниже приемлемого уровня, хотя сеть и остается связной. В таких случаях использование меры работоспособности является обязательным.
Выбор одного из двух терминалов, k-терминалов или всех терминалов зависит от сообщества заинтересованных пользователей. Двухтерминальная метрика определяет способность сети обеспечить коммуникацию для двух специфицированных терминалов пользователей. Таким образом, метрика может рассматриваться как метрика, специфическая для пользователя. С другой стороны всетерминальная метрика характеризует возможности сервис провайдера. Она описывает работоспособность системы по отношению к возможности предоставить услуги всем возможным терминальным парам.
Следует заметить, что в определенном смысле всетерминальная мера надежности весьма “консервативна”. В частности, всетерминальная метрика меньше чем самая малая мера для двух терминалов и вообще должна быть много меньше.
Другой всесистемной мерой надежности является минимум метрик надежности для всех терминальных пар. Это может интерпретироваться как уровень надежности, гарантируемый всем пользователям. Другой относительной величиной является средняя метрика надежности для всей совокупности пар терминалов, которая характеризует степень устойчивости. Выбор между минимумом и средним относится к общей философии сервис провайдера, в частности, объективным показателем того, что услуга будет удовлетворительной “в среднем” или гарантировано.
Общая k-терминальная метрика имеет отношение к интересам сообщества пользователей, относящихся к некоторой подсети узлов. В зависимости от выбранного поднабора узлов может быть предоставлена информация обо всей сети или специфическая информация.
Наиболее приемлемые меры работоспособности обычно определяются характером используемых приложений. В случае метрик работоспособности существует выбор между измерением уровня усредненных рабочих параметров и параметров в экстремальных ситуациях, например 95-ый процентиль. Это снова относится к философии обслуживания, упомянутой выше.
7.3. Выбор правильного алгоритма
В дополнение к предоставлению читателю разнообразных мер надежности эта глава дает широкий выбор для вычисления каждой из упомянутых мер, включая точные алгоритмы, аналитические границы и моделирование по методу Монте-Карло. Таким образом, здесь может также возникнуть чувство неуверенности. Выбор из числа алгоритмов сильно зависит от размера вовлеченной сетевой структуры. В идеале предпочтителен алгоритм, который выдает точное значение надежности. Однако эффективные (полиномиально ограниченные) алгоритмы доступны только для определенных структурных классов графов, описанных в разделе 3. Для произвольных графов перечисленные алгоритмы могут решить задачи только ограниченного объема.
Для других ситуаций должны использоваться аппроксимационные алгоритмы. Выбор между аналитическими ограничениями и методом Монте-Карло является более тонким. Аналитические ограничения зависят от специфики проблемы. Следовательно, как это описано в разделе 4, такие ограничения существуют только для определенных классов задач. Далее, их качество и сопряженное с ним время работы алгоритма может отличаться в зависимости от класса решаемой задачи. Для определенных классов доступные ограничения весьма хороши и могут быть вычислены достаточно быстро. Однако для других классов это не так. Преимущества Монте-Карло заключаются в том, что некоторые подходы Монте-Карло могут быть реализованы потенциально для всех метрик, представляющих интерес, а сам алгоритм Монте-Карло может работать долгий или короткий период времени с соразмерным увеличением или уменьшением уровня точности. Нам следует заметить, что некоторые более продвинутые методы Монте-Карло используют проблемные структуры и, следовательно, не имеют первого преимущества.
Надо учитывать важный момент, связанный с аналитическими ограничениями, разрешены ли неравные вероятности отказов. Некоторые методы расчета ограничений лимитируют оценки надежности полиномиально и как следствие выдают результат только для случаев, когда вероятности всех отказов равны. С другой стороны нужно отметить, что полином надежности выдает информацию во всем диапазоне значений вероятностей отказов.
Следует рассмотреть еще один момент, относящийся к данной проблеме, какую модель использовать, с ориентированным или неориентированным графом. Как было отмечено в разделе 2, модель ориентированного графа является более общей и пригодна для широкого класса мер, она пригодна для моделирования как ориентированных, так и неориентированных проблем, с отказами узлов и без отказов.
Число рядов в таблице равно числу tr-элементов в ее содержимом. Агенты пользователя должны игнорировать ряды с номерами за пределами этого числа. Существует несколько путей определения числа колонок.
Сканирование рядов таблицы и определение максимального числа колонок. Если число колонок в таблице превосходит число ячеек, ряд дополняется пустыми ячейками.
Подсчитывается число колонок, как это специфицировано элементами COL и colgroup.
Используется атрибут COLS элемента table
Агент пользователя может предположить, что число колонок в примере, приведенном ниже равно трем.
<table cols= "3">
… текст таблицы …
</table>
Если число колонок в таблице не задано атрибутом COLS, то визуальный агент пользователя будет ждать прихода всей информации о таблице, прежде чем приступит к ее отображению. Таким образом, атрибут cols позволяет отображать таблицу ряд за рядом по мере поступления данных.
Начинаем с обсуждения различий между ориентированной и неориентированной задачами и влиянием отказов узлов в параграфах 2.1 и 2.2 соответственно. После чего рассмотрим проблему вычислительной сложности.
Активный элемент HTML-документа должен быть выделен. Существует несколько способов выделения элемента:
Пометить элемент с помощью мышки.
Выделить нужный элемент, перемещаясь от элемента к элементу с помощью стрелок или других клавиш.
Выбрать нужный элемент, нажав определенную комбинацию клавиш.
Описание атрибута
tabindex = integer
Этот атрибут специфицирует положение текущего элемента по порядку, значение может быть положительным или отрицательным.
Элементы, которые могут быть выделены, должны обрабатываться агентом пользователя согласно следующим правилам:
Тем элементам, которые поддерживают атрибут tabindex, присваиваются положительные значения и они просматриваются первыми. Процесс просмотра начинается с меньших значений tabindex и продолжается в направлении больших. Элементы, которые имеют равные значения tabindex должны обрабатываться в порядке их появления в документе.
Элементы, для которых атрибут tabindex не определен или не поддерживается, просматриваются в порядке их появления в документе.
Те элементы, которым приписано отрицательное значение tabindex, не участвуют в процессе просмотра.
Атрибут tabindex поддерживается элементами a, area, object, input, select, textarea и button. Ниже предлагается пример.
<!doctype html public "-//w3c//dtd html 4.0//en"
"http://www.w3.org/tr/rec-html40/strict.dtd">
<html>
<head>
<title>a document with form</title>
</head>
<body>
...some text...
<p>go to the
<a tabindex="10" href="http://www.w3.org/">w3c web site.</a>
...some more...
<button type="button" name="get-database"
tabindex="1" onclick="get-database">
get the current database.
</button>
...some more...
<form action="..." method="post">
<p>
<input tabindex="1" type="text" name="field1">
<input tabindex="2" type="text" name="field2">
<input tabindex="3" type="submit" name="submit">
</p>
</form>
</body>
</html>
Ключи доступа
accesskey = cdata
Этот атрибут присваивает ключ доступа элементу. Ключ доступа представляет собой одиночный символ в текущей кодировке агента пользователя.
Нажатие клавиши, соответствующей ключу доступа, приводит к выбору элемента.Действия, которые будут выполнены при выборе, зависят от элемента. Атрибут accesskey поддерживается элементами: label и legend. В приведенном примере клавиша "u" ставится в соответствие элементу управления input.
<form action="..." method="post">
<p>
<label for="fuser" accesskey="u">
user name
</label>
<input type="text" name="user" id="fuser">
</p>
</form>
В ниже приведенном примере ключ доступа поставлен в соответствие связи, описанной элементом А. Нажатие клавиши доступа (c) приводит к вызову другого элемента.
<p><a accesskey="c"
rel="contents"
href="http://someplace.com/specification/contents.html">
table of contents</a>
В системе MS Windows для активации ключа доступа одновременно с ним следует нажать клавишу alt.
Атрибут disabled
Когда этот булев атрибут установлен для control формы, он блокирует данный вид контроля для ввода пользователя. Атрибут disabled поддерживается элементами input, textarea, select, option, object, label и button.
Блокированный элемент не может быть выделен, он игнорируется при обходе элементов и значения блокированного элемента не передается вместе с формой. В ниже предлагаемом примере блокированный элемент input не может воспринять ввод пользователя и передать его с формой.
<input disabled name="fred" value="stone">
Изменить значение атрибута динамически можно только с помощью скрипта.
Атрибут readonly
Этот булев атрибут при установке запрещает изменение control.
Элементы, предназначенные только для чтения, могут быть выбраны, но не могут быть изменены пользователем. Значения control в этом случае передается вместе с формой. Атрибут readonly поддерживается элементами input, text, password и textarea.
27. Скрипты
На стороне клиента скрипт представляет собой программу, которая может сопровождать документ HTML или быть непосредственно встроена в него. Программа исполняется на ЭВМ клиента при загрузке документа или при активации определенной связи. Скрипт предлагает разработчику заметно расширить возможности HTML-документа. В частности:
Скрипт может динамически изменять содержимое документа.
Скрипт может использоваться для обработки вводимой пользователем информации.
Скрипт может быть запущен каким-либо событием (выделение фрагмента, операции с мышкой, выгрузка документа и т.д.).
Скрипт может быть поставлен в соответствие одному из control формы и управляться им.
Существует два типа скриптов, которые могут быть подключены к документу:
Исполняемые только раз при загрузке документа агентом пользователя (это прежде всего скрипты элемента script).
Исполняемые каждый раз, когда происходит какое-то определенное событие. Такие скрипты могут быть подключены ко многим документам.
Семёнов Ю.А. (ГНЦ ИТЭФ), book.itep.ru
WAIS (Wide Area Information Server) распределенная система поиска информации. Поиск производится по базам данных, содержащим текстовые документы (но допустимы также графические, звуковые или видео документы). Тематика баз данных и поиска произвольны. Базы данных могут иметь любую структуру, но пользователю не нужно знать языка управления этими базами. WAIS использует естественный управляющий язык. WAIS доступен в Интернет. Для пользователей, имеющих доступ только к электронной почте, предназначен интерфейс, размещенный по адресу waismail@quake.think.com. В сети Интернет существует много серверов WAIS. Список депозитариев серверов достаточно широк, начать можно с анонимного FTP по адресу Think.com секция /wais, файл wais-sources.tar.Z (файл архивирован и пересылка должна осуществляться в режиме BINARY). В настоящее время многие WAIS-сервера интегрированы в сети WEB.
Доступ к WAIS-клиентам возможен и напрямую с помощью команды TELNET по адресам:
Авторизация | Место расположения | |
quake.think.com (192.31.181.1) | (login: wais) | США |
sunsite.unc.edu (152.2.22.81) | (login: swais) | США |
info.funet.fi (128.214.6.102) | (login: wais) | Финляндия |
swais.cwis.uci.edu (128.200.15.2) | (login: swais) | США |
kunzu.cnidr.org (128.109.130.57) | (login: wais) | США |
nnsc.nsf.net (128.89.1.178) | (alogin: wais) | США |
Существуют клиент-серверы WAIS для систем MS-DOS, VMS, MVS, OS/2, UNIX и Macintosh, а также для GNU Emacs, NeXT, X-Windows, MS-Windows, Sunview и т.д. Эти продукты несколько отличаются друг от друга, но обычно процедура содержит следующие шаги:
Пользователь выбирает набор баз данных, где будет проводиться поиск, из числа имеющихся.
Формулируется задание на поиск, выбираются ключевые слова.
В процессе поиска WAIS запрашивает информацию из всех указанных баз данных.
Отображаются заголовки документов, отвечающих критериям отбора. Документы аранжируются согласно их степени соответствия условиям запроса.
Для получения копии пользователь просто отбирает документы из предлагаемого списка.
Основные команды | |
h | Выдать перечень команд [help] |
? | тоже что и h |
q | Уйти из WAIS (quit) |
Смена текущей строки | |
DOWN | Сместиться на одну строку вниз |
j | То же, что и DOWN |
Ctrl-N | То же, что и DOWN |
UP | Сместиться на одну строку вверх |
k | То же, что и UP |
Ctrl-P | То же, что и UP |
число | Переход к строке с указанным номером |
/эталон | Перейти к строке, начинающейся с эталона |
J | Сместиться на один экран вниз |
Ctrl-D | То же, что и J |
K | Сместиться вверх на один экран |
Ctrl-U | То же, что и K |
Выбор источника | |
Пробел | Выбор или отмена выбора источника |
= | Отменить выбор каких-либо источников |
RETURN | После выбора источников запрашивает новое ключевое слово |
r | Заново отображает результат предшествующего поиска |
v | Отображает техническую информацию об источнике |
Выполнение поиска | |
RETURN | Начало поиска после ввода ключевых слов |
RETURN | Отображает результат при просмотре результата поиска |
w | Запрос новых ключевых слов |
s | Повторное отображение первоначального экрана |
Чтение статьи | |
пробел | Отобразить следующий экран |
q | Прервать чтение статьи (quit). |
help | отображение справочного файла |
maxres number | установка максимального числа искомых документов |
# | Server | Source | Cost |
001: | [ wais.access.gpo.gov] | 103_cong_bills | Free |
002: | [ wais.access.gpo.gov] | 104_cong_bills | Free |
003: | [ wais.access.gpo.gov] | 1992_cri | Free |
004: | [ wais.access.gpo.gov] | 1993_cri | Free |
005: | [ wais.access.gpo.gov] | 1994_cri | Free |
006: | [ wais.access.gpo.gov] | 1994_hob | Free |
007: | [ wais.access.gpo.gov] | 1994_record | Free |
008: | [ wais.access.gpo.gov] | 1994_register | Free |
009: | [ wais.access.gpo.gov] | 1994_unified_agenda | Free |
010: | [ wais.access.gpo.gov] | 1995_cri | Free |
011: | [ wais.access.gpo.gov] | 1995_hob | Free |
012: | [ wais.access.gpo.gov] | 1995_record | Free |
013: | [ wais.access.gpo.gov] | 1995_register | Free |
014: | [ wais.access.gpo.gov] | 1995_unified_agenda | Free |
015: | [ archie.au] | aarnet-resource-guide | Free |
016: | [ndadsb.gsfc.nasa.gov] | AAS_jobs | Free |
017: | [ndadsb.gsfc.nasa.gov] | AAS_meeting | Free |
018: | [ munin.ub2.lu.se] | academic_email_conf | Free |
SWAIS Search Results | Items: 1 | ||||
# | Score | Source | Title | Lines | |
001: | [1000] | (aarnet-resource) | Charles Sturt University | 66 |
Address: | Division of Information Technology PO Box 588 WAGGA WAGGA 2650 |
Press any key to continue | (для того чтобы продолжить просмотр текста следует нажать любую клавишу). |
gopher | Menu-based global information tool |
www | World Wide Web, Global hypertext web |
wais | Wide Area Information Server, global databases on different topics |
x500 | X.500 clients are on nic.funet.fi, login: dua, no password |
archie | Database of Internet Archive contents |
exit | Exit FUNET information services |
Source Selection | Server Source | Cost | |
001: | [ archie.au] | aarnet-resource-guide | Free |
002: | [ munin.ub2.lu.se] | academic_email_conf | Free |
003: | [wraith.cs.uow.edu.au] | acronyms | Free |
004: | [ archive.orst.edu] | aeronautics | Free |
005: | [ ftp.cs.colorado.edu] | aftp-cs-colorado-edu | Free |
006: | [nostromo.oes.orst.ed] | agricultural-market-news | Free |
007: | [ archive.orst.edu] | alt.drugs | Free |
008: | [ wais.oit.unc.edu] | alt.gopher | Free |
009: | [sun-wais.oit.unc.edu] | alt.sys.sun | Free |
010: | [ wais.oit.unc.edu] | alt.wais | Free |
011: | [alfred.ccs.carleton.] | amiga-slip | Free |
012: | [ munin.ub2.lu.se] | amiga_fish_contents | Free |
013: | [ 150.203.76.2] | ANU-Aboriginal-EconPolicies | $0.00/minute |
014: | [ coombs.anu.edu.au] | ANU-Aboriginal-Studies | $0.00/minute |
015: | [ coombs.anu.edu.au] | ANU-Asian-Computing | $0.00/minute |
016: | [ coombs.anu.edu.au] | ANU-Asian-Religions | $0.00/minute |
017: | [ 150.203.76.2] | ANU-Australian-Economics | $0.00/minute |
018: | [ 150.203.76.2] | ANU-CAUT-Academics | $0.00/minute |
001: | [1000] | (agricultural-ma) | Re: | MG | LS756 | ||
002: | [772] | (agricultural-ma) | Re: | MG | LS754 | 211 | |
003: | [557] | (agricultural-ma) | Re: | AM | LS753 | SUP%RIOR VIDEO | 277 |
004: | [514] | (agricultural-ma) | Re: | MG | LS750 | 155 | |
005: | [500] | (agricultural-ma) | Re: | ML | LS143 | QUINCY AUCTION,QUINCY | 158 |
006: | [486] | (agricultural-ma) | Re: | WA | PY100 | CHICKEN PURCHASES | 480 |
007: | [457] | (agricultural-ma) | Re: | RH | LS751 | 127 | |
008: | [443] | (agricultural-ma) | LS. | MN | LL Re: | USDA 04/26/94 20:51 | 172 |
009: | [443] | (agricultural-ma) | Re: | ML | LS144 | TOPPENISH (RESEND) | 161 |
010: | [400] | (agricultural-ma) | Re: | KO | LS757 | ADA WGTD AVG W/COWS | 115 |
011: | [371] | (agricultural-ma) | Re: | RH | LS764 | 138 | |
012: | [343] | (agricultural-ma) | Re: | KO | LS752 | MCALESTER WGTD AVGW/COW | 100 |
013: | [343] | (agricultural-ma) | Re: | MG | LS752 | 91 | |
014: | [343] | (agricultural-ma) | Re: | MG | LS797 | 122 | |
015: | [343] | (agricultural-ma) | Re: | RH | LS750 | 107 | |
016: | [343] | (agricultural-ma) | Re: | RH | LS757 | ROCKINGHAM FEEDER CATTLE | 140 |
017: | [343] | (agricultural-ma) | Re: | RH | LS758 | STAUNTON UNION FEEDERCA | 102 |
018: | [343] | (agricultural-ma) | Re: | RH | LS795 | 114 |
Head | Weight | Avg Wt | Price | Avg Price | Delivery |
220 | 425-425 | 425 | 74.10-74.10 | 74.10 | Current |
84 | 625-625 | 625 | 67.35-67.35 | 67.35 | Current |
60 | 850-850 | 850 | 62.00-62.00 | 62.00 | Current |
190 | 525-525 | 525 | 66.25-66.25 | 66.25 | Septmbr |
78 | 585-585 | 585 | 69.35-69.35 | 69.35 | Septmbr |
130 | 740-740 | 740 | 64.85-64.85 | 64.85 | Septmbr |
382 | 800-835 | 821 | 64.00-66.00 | 64.96 | Septmbr |
540 | 860-860 | 860 | 64.35-64.35 | 64.35 | Septmbr |
70 | 360-360 | 360 | 77.50-77.50 | 77.50 | Oct+Nov |
Семёнов Ю.А. (ГНЦ ИТЭФ), book.itep.ru
WHOIS обеспечивает каталожную службу для пользователей сети (RFC-0954). Эта служба заключается в поиске e-mail адресов, почтовых адресов и телефонных номеров. WHOIS может поставлять информацию о сетях, о структуре доменов и т.д. Главная база данных, относящихся к сетям, поддерживается Регистрационной службой Интернет (InterNic). В действительности имена при регистрации доменов и при выдаче IP-адресов автоматически вводятся в базу данных. Каждая запись в базе имеет уникальный идентификатор (handle), имя, тип записи и ряд других полей в зависимости от типа записи. База данных поддерживается в каждой сети независимо и взаимодействие между ними не всегда существует.
В системах UNIX имеется аналог этой службы - rwho, которая предоставляет даже несколько большую информацию, сообщая дополнительно о том, кто работает в данный момент в каждой из подключенных к сети машин.
Сейчас создан новый протокол WHOIS++, в котором учтены прежние недостатки. WHOIS доступно для пользователей Интернет с помощью команды telnet. Возможна посылка запросов и по электронной почте.
Обращение к базе данных производится по команде WHOIS (значение параметра заключается в угловые скобки). Обращение к местному клиент-серверу производится по форме:
WHOIS <-h имя_сети> идентификатор
Где имя_сети - адрес домена, куда вы собираетесь послать запрос (например, whois.internic.net); идентификатор - фамилия человека, название сети или домена, IP-адрес. С идентификатором могут использоваться специальные символы, определяющие тип поиска.
. (точка) | перед идентификатором задает поиск по фамилии; |
! | перед идентификатором задает поиск по handle; |
... or | после идентификатора определяет режим частичного поиска: все, что начинается с идентификатора подходит. |
@ | (в идентификаторе) осуществляет поиск по e-mail адресу. |
* | перед идентификатором извлекает полный список рекордов, соответствующих идентификатору (например, сеть и все зарегистрированные пользователи). |
% | перед идентификатором извлекает список всех зарегистрированных пользователей узла (или региона). |
~ | перед идентификатором выдает распечатку объекта, который точно соответствует идентификатору. |
WHOIS | Вызов программы; |
? | Вызов справочного материала; |
HElp | Вызов полномасштабной справочной поддержки; |
Q, QUIT, Клавиша <Enter> | Выход из WHOIS |
<ключевое слово>идентификатор | Поиск в базе записей, содержащих идентификатор, ключевое слово может использоваться, чтобы ограничить область поиска каким-то одним полем. |
PErson | Ограничивает поиск людьми; |
DOmain | Ограничивает поиск доменами (например, DO EARN.NET); |
HOst | Oграничивает поиск ЭВМ (например, HO PRINCETON); |
NEtwork | Ограничивает поиск сетями (например, NE EBONE); |
Organization | Ограничивает поиск организациями (например, O CERN) |
NАme | То же что и лидирующая '.' в идентификаторе; |
HАndle | То же что и ! в идентификаторе; |
PАrtial | То же что и завершающая '.' в идентификаторе; |
Mailbox | То же что и @ в идентификаторе; |
EXPand | То же что и '*' в идентификаторе; |
SUBdisplay | То же что и '%' в идентификаторе; |
Full or '=' | Детально отображает каждый найденный объект; |
SUMmary or '$' | Выдает лишь список найденного; |
1 - About RIPE and the RIPE NCC | |
2 - Browse through the NCC Document Store (Gopher) | |
3 - Keyword Search of the NCC Document Store (WAIS) | |
4 - Search the RIPE Database (whois) | |
(DISABLED) | 5 - Browse through the NCC Document Store (WWW) |
6 - HELP for mailing documents to the UK | |
q - Quit |
Семёнов Ю.А. (ГНЦ ИТЭФ), book.itep.ru
Прежде чем передать что-то, надо это иметь. Люди общаются, используя естественные языки, ЭВМ обмениваются нуликами и единицами. Но даже в привычном для всех нас общении на родном языке иногда возникают проблемы, и тогда мы переспрашиваем партнера (это прием используют и коммуникационные системы). Когда же мы читаем, перед нами возникает последовательность символов из хорошо известного с детства алфавита. Символы эти могут существенно варьироваться по форме своего изображения, но мы их все равно без труда распознаем.
Получаемая нами информация поступает не только от общения с людьми, книгами или телевизором. Не мало крайне важных для жизни данных мы получаем о себе и окружающем мире по имеющимся у нас каналам органов чувств. Мы научились сопоставлять и перепроверять эти данные, когда это требуется. Успешное функционирование этих каналов передачи данных и средств их обработки позволяет нам прожить относительно долгую жизнь. Любые же сбои могут повлиять на нашу судьбу самым драматическим образом.
Человечество научилось усовершенствовать данные нам природой каналы информационного обмена. Сначала это были примитивные сигнальные системы типа костров на вершинах холмов (пропускная способность 0,5 бит/час). Появление письменности открыло возможность общения уже умерших людей с живыми, обеспечив процесс накопления знаний. Довольно большие объемы информации могли уже передаваться с использованием лошадей и кораблей на практически неограниченные расстояния. Но скорость такого обмена была ничтожна, доставка сообщения занимала часы, дни, а иногда и годы (никакого намека на работу современной почты я здесь не делаю).
Гигантским шагом вперед стало изобретение электрического телеграфа, а позднее радио. Сегодня же мы узнаем о землетрясении в 20000 км от нас максимум через час из очередного телевизионного сборника новостей. Люди объясняются в любви с использованием электронной почты и делают покупки, не выходя из дома.
На нас обрушилась лавина информации.
Диабетик узнает о прелестях сникерса, мужчины маются, слушая информацию о потрясающих особенностях прокладок с крылышками, о несмываемой губной помаде и т.д. и т.д.
Мы стали получать слишком много совершенно ненужной информации. Миллионером станет человек, который предложит покупателям телевизор, отфильтровывающий информацию согласно требованиям зрителя. Таким образом, мы уже сталкиваемся с новыми информационными проблемами, хотя нельзя сказать, что мы решили все старые. Сплошь и рядом мы узнаем слишком поздно о своих болезнях, об угрозах стихийных бедствий или об истинных свойствах того или иного политика.
Эти же проблемы относятся и к Интернет. По электронной почте вы получаете сообщения от совершенно незнакомых людей, которые утверждают, что очень хотят вашего быстрого обогащения (хотя их цели диаметрально противоположны), или предлагающих вам какие-то товары или услуги, хотя вы их об этом не просили.
К Интернет получили доступ десятки миллионов людей. Если в издательствах редакторы, заботясь о доходах и избегая убытков, блокируют доступ графоманов к широким массам читателей, такого механизма в Интернет не существует. Таким образом, программные средства, фильтрующие поток данных на входе вашего почтового или web-сервера, здесь также весьма актуальны. Ниже даются некоторые определения понятий, используемых в разделах о протоколе http, www и информационном поиске.
Рассмотрим некоторые свойства информации, например структурированность и ценность. Структурированность - это свойство, которое позволяет принимающей стороне выделить информацию в виде некоторого сигнала, обладающего некоторыми свойствами. Ценность данных выражается через содержательность, полноту, оперативность и достоверность.
При обработке и передаче данных важную роль играют знаки и знаковые системы. Знак - это материальный объект, который служит для обозначения другого объекта и используется для передачи информации о последнем. Примерами знаков могут служить ноты, цифры, жесты азбуки глухонемых, знаки регулирования уличного движения и т.д.
Одной из разновидностей знака является символ. Разновидностью знаковых систем являются языки, самым сложным из которых является естественный человеческий язык. Все проявления и применения знаков и знаковых систем изучает семиотика. Предметом семиотики является связь знаков друг с другом, с обозначаемыми ими объектами и явлениями, а также с субъектами их использующими для целей коммуникаций. Семиотика содержит в себе три раздела: семантика, синтактика и прагматика.
Семантика изучает отношения между знаком и тем, что он обозначает или замещает. Синтактика знаковых систем изучает их структуру и правила соединения знаков.Прагматика изучает законы функционирования знаковой системы, как средства коммуникации субъектов. С прагматикой связаны такие понятия как ценность и цель.
World Wide Web (всемирная сеть, WWW или 3W) представляет собой информационную систему, базирующуюся на использовании гипертекста. Разработка этой системы была начата Тимом Бернерс-Ли, которому в 1989 году пришла в голову мысль объединить гипертекст с Интернет. Идея впервые реализована в ЦЕРН (Женева). Доступ к WWW возможен только в рамках протоколов TCP/IP, но для использования 3w необязательно иметь сервер-клиент (browser) на вашей машине. С некоторыми ограничениями возможен доступ и через электронную почту (listserv@info.cern.ch). Если WWW-клиент-сервер не установлен, можно работать в режиме удаленного терминала. Весьма удобным программным интерфейсом для WWW является ms explorer, netscape и некоторые другие. Для подготовки документов в рамках HTML (Hypertext Markup Language) пригоден любой текстовый редактор (например, emacs в UNIX-машинах, ME в MS-DOS или Winword, в последних версиях которого уже допускаются гиперссылки). При подготовке гипертекстов вы можете использовать язык HTML или взять одно из множества доступных программных средств, которые позволяют преобразовать ваш документ в необходимый формат. Документы в гипертексте связываются друг с другом определенным набором слов. Пользователю не нужно знать, где находится тот или иной документ.
Часто ссылки на серверы WWW начинаются с сокращения http:// (Hypertext Transfer Protocol). Гипертекст позволяет осуществлять ссылки-разъяснения на статьи, хранящиеся на удаленном сервере. Гипертекст подразумевает не только текстовые объекты (но и графические или звуковые), поэтому термин гиперсреда (hypermedia) более правилен. WWW может проводить поиск ключевых слов и в специфических документах-индексах, в этом случае выдаются указатели на искомые документы. WWW может использовать различные форматы документов и работать с разнообразными структурами информации, обеспечивая доступ к информационной вселенной. На рис. 4.5.6.1 показан рост числа WEB-серверов, базирующихся на разных программных продуктах (www.netcraft.com). В 2000 году скорость регистрации web-серверов достигла 1 в секунду.
Записано в гипертексте | Отображено на экране |
<li> Белоруссия</li> | 1. Белоруссия |
<li> Россия</li> | 2. Россия |
<li> Украина</li> | 3. Украина |
Символ | записывается как |
< | < |
> | > |
& | & |
(неразрывный пробел) |
Адрес | Тематика | Страна |
vms.huji.ac.il (128.139.4.3) | Окружающая среда | Израиль |
info.cern.ch (128.141.201.74) | Физика высоких энергий | Швейцария |
fatty.law.cornell.edu (132.236.108.5) | Законодательство | США |
ukanaix.cc.ukans.edu (129.237.1.30) | История | США |
www.njit.edu (128.235.163.2) | США | |
Нейронные сети | Англия | |
Англия | ||
Австрия | ||
kal-el.ugr.es | Испания | |
opal.vcu.edu | Нанотехнология | США |
galaxy.ph.tn.tudelft.nl | Распознавание образов | Нидерланды |
info.funet.fi (128.214.6.102) | Финляндия | |
fserv.kfki.hu (148.6.0.3) | Венгрия |
Команда | Сокращение | Назначение |
help | [h] | Выдает гипертекстный адрес текущего документа и список доступных команд, который является контекстно зависимым. |
manual | [m] | Отображает пояснительные тексты, если таковые имеются. |
quit | Уход из www. | |
up | [u] | Перемещает текущую страницу документа вверх [предшествующий экран]. |
down | Перемещает текущую страницу документа вниз [следующий экран]. | |
top | [t] | Устанавливает указатель в начало документа. |
bottom | [bo] | Устанавливает указатель в конец документа. |
back | [b] | Возвращает просмотр к предшествующему документу. |
home | [ho] | Возврат к первому документу. |
next | [n] | Осуществляет переход к просмотру следующего документа. |
previous | [p] | Осуществляет переход к просмотру предшествующего документа. |
list | [l] | Выдает пронумерованный список связей текущего документа, для отслеживания связей следует отпечатать соответствующий номер. |
recall | [r] <number> | Если число опущено, выдает пронумерованный список документов, которые вы просмотрели. Для просмотра определенного документа выполните команду с соответствующим номером. |
find | [f] <ключевое слово> | Поиск ключевых слов в индексе. Список находок отображается вместе со ссылками возможных дополнений. Ключевые слова отделяются пробелами. find можно и не печатать, если ключевое слово не совпадает ни с одной из команд www. Команда find выполнима не всегда. |
go | [g] docaddress | Просмотр документа с данным гипертекстным адресом. |
Команда доступна только из unix. Печатает текущий документ. По умолчанию команда печати имеет имя lpr, но ее имя может быть определено переменной www_print_command. |
-n | Неинтерактивный режим. Документ форматируется и отображается на экране. Страницы разделяются символами form feed (FF) |
-listrefs | Добавляется список адресов всех ссылок вплоть до конца. Только не интерактивный режим |
-pn | Устанавливает длину страницы равной n строк. По умолчанию длина страницы равна 24 строкам. Команда без числа делает страницу бесконечной |
-wn | Устанавливает ширину страницы равной n колонкам. По умолчанию ширина равна 78, 79 или 80 |
-na | Прячет ссылки в тексте, удобно при распечатке |
-version | Отображает версию используемой программы |
Пользователь | Тип файла | ||||
Конфигурационный | Инструментальный | LOG-файл | CGI | Документы | |
Хозяин | RW | R | R | RW | RW |
Разработчик | - | - | - | RW | RW |
Автор | - | - | - | R | RW |
Клиент | - | - | - | R | R |
Семёнов Ю.А. (ГНЦ ИТЭФ), book.itep.ru
X.500 представляет собой протокол OSI для распределенных каталогов (индексов-оглавлений), разработанный CCITT. X.500 - протокол для работы с каталогами. X.500 предлагает распределенный каталог пользователей сети Интернет. X.500 поддерживает систему просмотра, а также добавления, модификации и удаления объектов в базе данных о людях (почтовый адрес, номер телефона, электронный адрес и пр.). Основным полем при поиске является фамилия, название организации, отдела, страны. Треугольные скобки служат для выделения имени параметра, а вертикальная черта - для указания значения параметра.
Каждая секция каталога содержит часть глобальной базы данных и является доступной через сервер (именуемый Directory System Agent - DSA). Каждая база данных поддерживается локально. Для пользователя же доступна вся база данных. Хотя информация, доступная через X.500, относится к людям и организациям, данная база пригодна для хранения и другой информации, например, о ресурсах сети, приложениях или оборудовании. Каждый вход в базу (объект хранения, запись) в X.500 описывает один объект (человека, конкретный ресурс сети, или организацию) и носит название Distinguished Name (неповторимый идентификатор). Это имя включает в себя следующие поля: фамилия, имя, организация, e-mail для людей. Информация в каталоге X.500 (Directory Information Base - DIB) организована иерархически и носит название информационное дерево каталога (Directory Information Tree - DIT). На верхнем уровне - корневая запись (the World), затем следует уровень страны, уровень организации и, наконец, человека (ресурса и т.д.).
X.500 доступна через локальный сервер, интерактивно через telnet или через электронную почту (или X.25). Возможен доступ и с помощью WWW или GOPHER.
Таблица 4.5.8.3.1
Адрес сервера при доступе через Telnet (login) | Адрес X.25 (login) | Страна |
jethro.ucc.su.oz.au (fred) | Австралия | |
elem4.vub.ac.be (dua) | 222100611 | Бельгия |
x500.denet.dk (de) | Дания | |
login.dkuug.dk (ds) | Дания | |
nic.funet.fi (dua) | Финляндия | |
20800603053201 |
Франция | |
x500.ieunet.ie (de) | 272432590024 | Ирландия |
dir.ulcc.ac.uk (dua) | UK | |
ashe.cs.tcd.ie (de) | Ирландия | |
jolly.nis.garr.it (de or fred) | 22225010083212 | Италия |
zoek.nic.surfnet.nl (zoek) | Нидерланды | |
elc1.mat.torun.edu.pl (de или dish) | Польша | |
chico.rediris.es (directorio) | 2142160234013 | Испания |
hypatia.umdc.umu.se (de) | 240374810306 | Швеция |
nic.switch.ch (dua) | 22847971014540 | Швейцария |
paradise.ulcc.ac.uk (dua) | 23421920014853 | Англия |
?<тема> | Выдает справочную информацию по данной теме (help). |
^C | (Ctrl-C) команда прерывания (например, поиска). |
* | Выдает все записи для выбранного поля. Этот же символ представляет собой подстановку для строк по умолчанию. В том качестве * может появиться где угодно, например, smit* и *smit*. |
- | Заменяет значение по умолчанию на пустую строку. |
Фамилия | Символ * может использоваться где угодно. При пробеле в этом поле поиск будет проводиться по полям подразделение (отрасль) или организация. |
Наименование подразделения | Название или сокращенное имя подразделения в организации, где работает искомое лицо. Напечатав *, вы выберете все подразделения. Это поле может быть опущено для мелких организаций. |
Название организации | Название или сокращение для организации, где работает искомое лицо. Напечатав *, вы выберете все организации. |
Название страны | Напечатав *, вы выберете все страны. В качестве названия страны можно напечатать ее код из двух букв (см. ). |
[ 1 ] | de (simple interface to find persons) |
[ 2 ] | fred (simple white pages interface ('whois') |
[ 3 ] | sd (menu oriented, only read functionality) |
[ 4 ] | Dish (command line, full X.500 functionality) |
[ 5 ] | Xdi (X window interface) |
[ 6 ] | Xlu (X window interface) |
[ 7 ] | XT-DUA (Commercial X window interface) |
[ 0 ] | Leave this Menu (back to previous Menu) |
s | Simple queries - the original style of this interface |
p | Powerful, multiple organization searches |
y | Yellow pages queries (uses power searching) |
u | Input queries in user-friendly name format |
m | Menu to select modes or access help facilities |
? | for HELP with the current question you are being asked |
?? | for HELP on HELP |
q | to quit the Directory Service |
Control-C | to abandon current query or entry of current query |
:- q | (прерываем сессию) |
Якоря, встроенные изображения и все другие элементы, которые содержат URI в качестве параметров, могут вызвать повторное обращение к URI в ответ на ввод пользователя. В этом случае, следует рассмотреть соображения безопасности RFC-1738. Широко распространенные методы посылки запросов форм - HTTP и SMTP - обеспечивают ограниченную конфиденциальность. Провайдеры информации, которые запрашивают необходимые данные с помощью форм - точнее с помощью элементов INPUT, type="password" - должны позаботиться о том, чтобы сами пользователи учитывали возможность утечки конфиденциальной информации.
Замечание. Следующий алгоритм генерации альтернативного текста может быть заменен рекомендациями W3C Web Accessibility Initiative Group. Для получения дополнительной информации предлагается ссылка [WAIGUIDE].
Когда разработчик не устанавливает атрибут alt для элементов IMG или APPLET, агент пользователя должен предоставить альтернативный текст, который получается следующим способом:
Если title был специфицирован, его значение должно использоваться в качестве альтернативного текста.
В противном случае, если HTTP-заголовки предоставляют информацию о title, эта информация и должна использоваться в качестве альтернативного текста.
В противном случае, если включенные объекты содержат текстовые поля (напр., GIF изображения содержат некоторые текстовые поля), информация из текстовых полей извлекается и используется в качестве альтернативного текста. Так как агенты пользователя для извлечения текстовых данных могут быть вынуждены заполучить сначала весь объект, пользовательские агенты могут воспользоваться каким-либо более экономным подходом.
В противном случае, в отсутствии другой информации агенты пользователя должны воспользоваться именем файла (за вычетом расширения) в качестве альтернативного текста.
Если разработчик не установил атрибут alt для элемента INPUT, агент пользователя должен получить альтернативный текст следующим образом:
Если был специфицирован атрибут title, его значение должно использоваться в качестве альтернативного текста.
В противном случае, если специфицировано имя, его значение используется как альтернативный текст.
В противном случае (кнопки submit и reset), значение атрибута type должно использоваться в качестве альтернативного текста.
Инкрементное отображение документов, полученных по сети, создают некоторые проблемы, связанные с формами. Агенты пользователя должны позаботиться о том, чтобы форма не была передана серверу до тех пор, пока не получены все элементы формы.
Если формы связаны со скриптами стороны клиента, создаются предпосылки для будущих проблем. Например, хандлер скриптов для данного поля может относиться к полю, которого пока не существует.
Модель таблиц HTML взята из исследований существующих моделей таблиц SGML. Модель выбрана из соображений простоты и возможностей дальнейшего расширения функций, если это потребуется.
Важно, что модель таблиц HTML согласуется с большинством существующих средств их создания (напр., с текстовыми редакторами).
Разрывы строк
SGML специфицирует то, что разрыв строки сразу после начальной метки должен игнорироваться, также как и разрыв строки непосредственно перед конечной меткой. Это приложимо ко всем HTML-элементам без исключения. Следующие два HTML-примера должны отображаться идентично:
<p> Томас смотрит телевизор.</p>
<p>
Томас смотрит телевизор.
</p>
Аналогично идентичными должны быть и следующие два примера:
<a>my favorite website</a>
<a>
my favorite website
</a>
Эта спецификация не определяет, как агент пользователя должен обрабатывать случаи ошибок, включая то, как агент пользователя должен себя вести, встретив элемент, атрибут, значение атрибута или объект, не специфицированный в данном документе.
Однако, для облегчения экспериментов и взаимосогласованности между различными приложениями разных версий HTML, рекомендуется следующее:
Если агент пользователя встретил незнакомый элемент, он должен попытаться отобразить (render) его содержимое.
Если агент пользователя встретил незнакомый атрибут, он должен его игнорировать всю спецификацию этого атрибута (напр., атрибут и его значение).
Если агент пользователя встретил незнакомое значение атрибута, он должен использовать значение атрибута по умолчанию.
Если он встретил не декларированный объект, объект должен восприниматься как символьная информация.
Рекомендуется также, чтобы агенты пользователя обеспечивали информирование пользователя о перечисленных выше случаях.
Так как агенты пользователя могут реагировать на ошибки по-разному разработчики и пользователи не должны предполагать какое-то определенное поведение системы при столкновении с ошибкой.
Спецификация HTML 2.0 (RFC-1866) предполагает, что многие агенты пользователя HTML 2.0 считают, что документы, не начинающиеся с декларации типа, являются документами HTML 2.0. Как показывает практика, это плохое предположение, данная спецификация не рекомендует такое поведение агентов пользователя.
Для целей совместимости разработчики не должны "расширять" HTML за пределы доступных механизмов SGML (напр., расширяя DTD, добавляя новые наборы объектов, и т.д.).
34. Специальные символы в значениях атрибута uri
34.1. Не-ASCII символы в значениях атрибута URL
Хотя URI не содержат не-ASCII значений, разработчики иногда специфицируют их в атрибутах, где должен лежать URI (напр., определенные с помощью %uri в DTD). Например, следующее значение Href нелегально:
<a href="http://foo.org/hеkon">...</a>
Эта спецификация резервирует синтаксис для будущей поддержки скриптовых макро в атрибутах cdata HTML. Целью этого является допущение установки атрибутов, зависящих от свойств объектов, которые были записаны выше на странице. Синтаксис выглядит следующим образом:
attribute = "... &{ macro body }; ... "
Существующая практика скриптов
Тело макро состоит из одного или более записей на языке скриптов. Точка с запятой, следующая за правой фигурной скобкой, всегда необходима, иначе правая фигурная скобка будет рассматриваться как часть текста макро.
Обработка Cdata атрибутов производится следующим образом:
Анализатор текста sgml вычисляет любой символьный объект SGML (напр., ">").
Далее скриптовые макросы обрабатываются интерпретатором скриптов.
И, наконец, результирующая последовательность символов передается приложению для последующей обработки.
Обработка макро имеет место, когда документ загружается, но эта процедура не повторяется, когда документ изменяется в размере или перезакрашивается.
Не рекомендуемый пример:
Ниже приведены примеры с использованием Javascript. Первый делает фон документа рэндомизованным:
<body bgcolor='&{randomrbg};'>
Возможно, вы хотите приглушить фон для просмотра в вечернее время:
<body bgcolor='&{if(date.gethours > 18)...};'>
Следующий пример использует javascript при установке координат для карты изображения на стороне клиента:
<map name=foo>
<area shape="rect" coords="&{myrect(imageuri)};" href="&{myuri};" alt="">
</map>
Этот пример устанавливает размер изображения, базируясь на свойствах документа:
<img src="bar.gif" width='&{document.banner.width/2};' height='50%' alt="banner">
Вы можете установить URI для связи или изображения с помощью скрипта:
<SCRIPT type="text/javascript">
function manufacturer(widget) {
...
}
function location(manufacturer) {
...
}
function logo(manufacturer) {
...
}
</SCRIPT>
<A href='&{location(manufacturer("widget"))};'>widget</A>
<IMG src='&{logo(manufacturer("widget"))};' alt="logo">
Последний пример показывает, как SGML CDATA атрибуты могут помещаться в одинарные или двойные кавычки. Если вы помещаете строку атрибута в одиночные кавычки, вы можете использовать двойные кавычки в качестве части строки атрибута. Другой подход связан с использованием " для двухкавычечных меток:
<IMG src="&{logo(manufacturer("widget"))};" alt="logo">
В глобальном контексте WWW важно знать, какой язык использован при написании документа. Если вы подготовили перевод документа на другие языки, вам следует воспользоваться для ссылки на них элементом Link. Это позволяет индексной поисковой системе предложить пользователям результат на языке, который они предпочитают, вне зависимости от того, как составлен запрос. Например, следующие связи предлагают французскую и немецкую альтернативу поисковой системы.
<link rel="alternate"
type="text/html"
href="mydoc-fr.html" hreflang="fr"
lang="fr" title="la vie souterraine">
<link rel="alternate"
type="text/html"
href="mydoc-de.html" hreflang="de"
lang="de" title="das leben im untergrund">
Обеспечение ключевыми словами и описаниями
Некоторые системы индексации ищут META-элементы, которые определяют список ключевых слов или фраз, разделенных запятыми, или которые дают краткие описания. Поисковая система может представить эти ключевые слова в качестве результата поиска. Значение атрибута имени, которое ищется атрибутом поиска, не определено спецификацией. Рассмотрим такие примеры,
<meta name="keywords" content="vacation, greece, sunshine">
<meta name="description" content="idyllic european vacations">
Выделение начала коллекции
Собрание документов, где ищутся слова, часто преобразуется в собрание HTML-документов. Для результатов поиска полезно указать начало такого собрания. Вы можете помочь системе поиска. Использовав элемент Link с rel="start" и атрибутом title attribute, как в:
<link rel="begin"
type="text/html"
href="page1.html"
title="general theory of relativity">
Роботы с инструкцией индексирования
Люди могут удивиться, узнав, что их сайт был индексирован роботом, хотя роботу не было разрешено посещать некоторые критические секции. Многие web-роботы предлагают возможности администраторам сайтов и провайдерам информации ограничить возможности роботов. Это достигается с помощью двух механизмов: файла "robots.txt" и элемента meta в HTML-документах, как это показано ниже.
Пакеты Access-Request посылаются серверу RADIUS, и передают информацию, которая используется для определения того, позволен ли данному пользователю доступ к специфицированному NAS, и допустимы ли запрошенные услуги. Программная реализация, желающая аутентифицировать пользователя, должна послать пакет RADIUS с кодом поля тип=1 (Access-Request).
При получении запроса (Access-Request) доступа от корректного клиента, должен быть передан соответствующий ответ. Запрос доступа (Access-Request) должен содержать атрибут имени пользователя. Он должен включать в себя атрибут NAS-IP-адреса или атрибут NAS-идентификатора (или оба эти атрибута, хотя это и не рекомендуется). Он должен содержать атрибут пароля пользователя (User-Password) или атрибут CHAP-пароля. Желательно, чтобы он содержал атрибут NAS-порта или NAS-Port-Type или оба эти атрибута, если только тип запрошенного доступа не содержал номер порта.
Запрос доступа (Access-Request) может содержать дополнительные атрибуты - подсказки серверу, но последний не обязан следовать этим подсказкам. Когда присутствует пароль пользователя (User-Password), он защищается с использованием метода, базирующегося на RSA алгоритме MD5 [1]. Формат пакета Access-Request аналогичен показанному на рис. .1. Только на месте поля аутентификатор размещается поле аутентификатор запроса (Request Authenticator), а в поле код записывается 1.
Поле идентификатор должно измениться при изменении содержимого поля атрибуты, и при получении корректного ответа на предыдущий запрос. При повторных передачах поле идентификатор остается неизменным.
Значение поля аутентификатор запроса (Request Authenticator) должно изменяться, когда используется новый идентификатор.
Поле атрибуты имеет переменную длину и содержит список атрибутов, которые необходимы для заданного типа сервиса, а также любых дополнительных опционных атрибутов.
При аутентификации приглашение/отклик, пользователю дается псевдослучайное число и предлагается его зашифровать и вернуть результат. Авторизованные пользователи снабжаются специальными средствами, такими как смарт-карта или программой, которая облегчает вычисление отклика.
Пакет Access-Challenge обычно содержит сообщение-ответ, включая приглашение (challenge), которое должно быть отображено для пользователя. Обычно оно имеет форму числа и получается от внешнего сервера, который знает, какого типа аутентификатор должен быть применен для данного авторизованного пользователя и, следовательно, может выбрать псевдослучайное число заданной длины.
Пользователь вводит приглашение в свое устройство или программу и вычисляет отклик, который через клиента транспортируется серверу RADIUS посредством второго сообщения Access-Request. Если отклик соответствует ожидаемому значению, сервер присылает сообщение Access-Accept, в противном случае - Access-Reject.
Пример: NAS посылает серверу RADIUS пакет Access-Request с NAS-идентификатором, NAS-портом, именем пользователя, паролем пользователя (который может быть фиксированной строкой, как приглашение "challenge", но Access-Challenge с сообщениями состояния (State) и Reply-Message вместе со строкой "Challenge 12345678, enter your response at the prompt", которую отображает NAS. NAS предлагает ввести отклик и посылает серверу новый запрос NEW Access-Request (с новым идентификатором) с NAS-идентификатором, NAS-портом, именем пользователя, паролем пользователя (отклик, введенный пользователем, шифруется) и с тем же самым атрибутом состояния, который прислан с Access-Challenge. Сервер затем присылает назад Access-Accept или Access-Reject в зависимости от того, корректен ли отклик или следует послать еще один Access-Challenge.
Так как не существует гарантии того, что имя адресата рамки уникально, представляется разумным описать существующую практику нахождения имени адресата, заданного в рамке:
Если имя адресата является зарезервированным именем, как это записано в нормативном тексте, следует использовать его так, как описано.
В противном случае, следует выполнить поиск согласно иерархии рамок в окне, где содержится эта связь. Следует использовать первую рамку, имя которой соответствует искомому.
Если такой рамки не найдено на этапе (2), используется этап 2 для каждого окна в послойном порядке, начиная с переднего плана. Поиск прекращается, когда найдена рамка с соответствующим именем.
Если такой рамки не найдено на этапе (3), следует создать новое окно и присвоить ему имя адресата.