В этой статье хотелось бы уделить внимание “keywords”. Хотя этот мета-тэг и является одним из самых незначительных элементов при оптимизации сайта, о нем все же не стоит забывать.
Почему Keywords теряет свое значение?
Этот элемент, ставший излюбленным местом для поискового спама, первоначально был придуман для облегчения работы поисковой системы при индексации сайтов. Вебмастер проставлял в списке ключевые слова, по его мнению, отражающие тематику страницы и сайта, а робот, индексируя страницу, собирал не только видимый текст, но и содержимое Keywords. При оценке релевантности (соответствии страницы запросу в поисковой системе) страниц, больший вес, и, соответственно, более высокую позицию в результатах поиска, получала та, Keywords которой содержал запрашиваемое слово.
Со временем, умелые спаммеры смекнули, как извлечь выгоду из применения Keywords. Для достижения высокого позиционирования, тэг стали набивать не только повторными словами и фразами, но также включать слова, и вовсе отсутствующие в тексте страницы и сайта. Еще в 1999 году, в коде одной такой "релевантной" страницы по очень популярному запросу (не важно какой поисковой системы), я обнаружил в Keywords около тысячи повторений одного и того же слова.
Таким образом, и вполне оправдано, доверие поисковых систем к вебмастерам резко снизилось. Поисковики изменили правила работы, а "заспамленные" сайты исключили из поисковой базы.
Целью любой поисковой системы является предоставление пользователю наиболее соответствующей его запросу информации. Поэтому разработчики неустанно следят за качеством поиска и совершенствуют его. Появление любого рода поискового спама (недобросовестных действий, направленных на обман поисковой системы с целью получения высокой позиции в результатах поиска) приводит к изменению алгоритма работы. Причем эти изменения часто отрицательно сказываются на позиционировании "нормальных" сайтов.
Поисковые машины эволюционируют и трудно сказать, что ожидает элемент Keywords завтра. Возможно, он перестанет использоваться всеми без исключения поисковыми системами. Однако не смотря на заявления, что Keywords уже нигде и никак не используется, его все же не стоит игнорировать.
Итак, что же вписывать в Keywords?
Ключевые слова, присутствующие в тексте страницы и имеющие отношение к теме сайта. Для каждой страницы необходимо составить свой собственный набор ключевых слов.
Что нельзя вписывать?
Слишком распространенные слова. Например: программы, компьютеры, интернет. Поисковые системы их просто игнорируют, т.к. ими загружены миллионы документов. Так же, не стоит включать служебные слова (предлоги, союзы и т.д.). Нельзя повторять слова два и более раз.
Как правильно составить очередность слов?
По степени важности в порядке убывания. Слова достаточно отделять друг от друга пробелами: запятые здесь не нужны.
Стоит ли дублировать слова с прописной буквы словами с заглавной?
Нет. Достаточно писать с прописной, за исключением аббревиатур, личных имен, имен компаний, марок и.т.д.
Нужно ли вписывать слова во множественном числе?
Да, когда это имеет смысл. Если множественное число образуется путем изменения корня, а не замены окончания, тогда стоит давать вариант во множественном числе: "mouse" - "mice".
Если сайт содержит тысячу страниц, стоит ли для каждой из них подготавливать описание?
Есть 2 варианта:
- Можно воспользоваться специальной программой, которая выбирает часто упоминающиеся слова на странице и автоматически прописывает Keywords, что в свою очередь имеет свои достоинства и недостатки.
Достоинства: легко и просто решается проблема заполнения Keywords
Недостатки: программа вписывает не то, что мы хотим, ведь она руководствуется механическим отбором слов.
- Отобрать наиболее важные страницы (15-30 шт.) и прописать в них Keywords вручную.
Сколько ключевых слов можно вместить в список?
Следует ограничиться 250 символами. Конечно, ничего страшного, если получится список длиной 500 символов, остальное просто не будет учтено поисковыми системами - некоторые из них не учитывают более 200 символов, а многие и вовсе игнорируют...
Возможно, на данный момент, создание Keywords не столь актуально. Однако не стоит им пренебрегать. Никогда неизвестно какую стратегию работы изберут поисковые системы завтра.
CSS
Некоторое внимание хотелось бы уделить ещё одному стандарту от консорциума . На момент написания статьи, существовала вторая и ведётся работа над третьей версией. На самом же деле версия 2.0 этого стандарта поддерживается не полностью некоторыми (IE, как ни странно, находится именно в этом списке) браузерами. Полностью этот стандарт версии 2.0 поддерживает только MZ. Поэтому рекомендуется очень аккуратно использовать CSS 2.0 при разработке кросс-браузерных сайтов. Наиболее же полно стандарт CSS поддерживается многими (даже старыми) пользовательскими агентами только версии 1.0.
В качестве примера можно привести простое свойство CSS для курсора, которое представляет его указателем, обозначающим ссылку (обычно это символ руки):
< br />Наведите мышью курсор на этот блок.< br />< br /> div >
Необходимый эффект вышеприведённого примера будет достигнут только в IE . Дело в том, что в стандарте CSS не существует значения «hand» у свойства «cursor». Для получения требуемого результата во всех браузерах, немного изменим таблицу стилей:
Такой синтаксис универсален. Этот код будет корректно работать и при «text/htm l » и при «application/xhtml+xml».
Хорошим и самым простым решением будет подключение внешних файлов таблиц стилей и скриптов. В XHTML это делается так же как и в HTML :
< link rel = "stylesheet" type = "text/css" href = "file.css" title = "" media = "screen" / > < script type = "text/javascript" src = "file.js" > script >
Мы рассмотрели небольшую часть теории
Мы рассмотрели небольшую часть теории создания широко доступных интернет-ресурсов. Методики построения кросс-браузерных сайтов постепенно переходят из области искусства в область науки, когда можно формализовать подходы к проблеме и получить строго определенные результаты. Мы ещё раз хотим подчеркнуть, что при разработке сайта необходимо придерживаться стандартов оформления кода и разметки страниц. Только в этом случае можно эффективно использовать накопленный опыт вместо повторного изобретения подходов для решения новых задач. И только с опытом, приобретенным в результате продолжительной работы, вы сможете достичь профессионального уровня и стать специалистом.
На данный момент мы рекомендуем тестировать сайты в следующих браузерах: IE 5. x , IE 6. x , MZ 1. x , NN 6. x , NN 7. x , Opera 7. x как в среде Windows , так и в Linux или другой *nix-совместимой ОС. Дополнительно можно использовать браузеры Conqueror и Safari , однако использование последнего осложняется тем, что он работает только в операционной системе MacOS .
Сайт (ресурс, узел, портал) — единичный информационный ресурс в Интернете.
Визуальный редактор работает по принципу WYSIWYG (What You See Is What You Get) — что видишь, то и получишь.
HTML (HyperText Markup Language; http://w3.org/TR/html4) — язык разметки гипертекста.
Браузер (пользовательский агент, клиент) — программа для просмотра сайтов в Интернете.
Интернет-сёрфинг — посещение сайтов, поиск информации в сети. XHTML (eXtensible HyperText Markup Language; http://www.w3.org/TR/xhtml1/) — расширяемый язык разметки гипертекста.
XML (eXtensible Markup Language; http://w3.org/XML/) — расширяемый язык разметки.
Вячеслав Белов, HTА (HTML Application) - простая технология, позволяющая создавать полезные приложения даже без знания серьезных языков программирования. Вот только как быть с безопасностью? В основе разработанной Microsoft технологии исполнения HTML-приложений вне веб-браузера, получившей название HTA (HTML Application), заложена благородная идея: помочь пользователям, не обремененным познаниями в области программирования на C+, Visual Basic, Delphi и других "тяжелых" языках, создавать приложения, основанные на более известных языках сценариев VBScript и JavaScript, а также в стандартном HTML-коде. Понятно, что, запатентовав подобную технологию, корпорация попытается обеспечить ее поддержку другими операционными системами. И все бы ничего, если бы не формат файлов, с помощью которого планируется продвигать эту технологию. Вообще-то, сам по себе формат HTA достаточно удобен. К примеру, именно на его базе построена справочная система Windows. Благодаря ему же обычные HTML-страницы запускаются без браузера и полностью отображаются в окне HTA-файла - со всеми ссылками, графикой, эффектами и скриптами. Создавать и редактировать подобные файлы гораздо проще и быстрее, чем, например, программу на С или Delphi. Удобство работы с HTA еще и в широкой доступности редакторов - для этого формата могут использоваться как обычные текстовые редакторы вроде Notepad, так и специализированные HTML-редакторы (наподобие FrontPage или Macromedia Dreamweaver). Создание HTA-документов сводится к установке специальных атрибутов в разделе
… обычной HTML-страницы, после чего остается только сохранить ее с расширением. hta. Вот пример листинга простого HTA-файла:
При попытке открыть HTA-файл в браузере пользователю предлагается сохранить этот файл на жестком диске, так как браузер не интерпретирует расширение HTA. Windows же определяет HTA-файл как исполняемый и потому запускает его по щелчку на пиктограмме или через командную строку.
Благодаря тому, что стандарт HTA позволяет исполнять сценарии Java и VB, в этом формате можно создать много полезных приложений, от простого календаря и конвертора валют до ньюсридера и менеджера онлайн-доступа к блогам, сайтам и форумам. Поэтому, обладая даже небольшим опытом создания веб-страниц и написания простых Java-скриптов, пользователь может создавать HTA-файлы, которые ни по функциональности, ни по дизайну не уступают небольшим программам, написанным на более серьезных языках.
Но какая бочка меда обходится без ложки дегтя? Это касается и HTA. К сожалению, HTA-файлы нельзя просматривать в браузере, а значит, все средства защиты веб-браузеров оказываются бесполезны для них. Именно этот факт чаще всего приводится в качестве аргумента против HTA. Ведь в обход защиты с помощью VBscript и Jscript вполне можно организовать запись данных в реестр в фоновом режиме, запускать сторонние программы и скрипты, выполнять чтение и запись на диск. Поэтому хакеры достаточно хорошо освоили этот стандарт и с успехом применяют его для своих целей.
Ярким примером использования злоумышленниками HTA являются разнообразные черви, попадающие на наши компьютеры через почтовые программы. Причем некоторые из них приходят прямо в теле письма (HTML-страницы) в виде скрипта, который запускается при открытии сообщения. Используя известную дыру Scriptlet. Typelib в Internet Explorer, червь с помощью скрипта создает файлы, никак не сообщая об этом пользователю. Обычно создается сценарий VBscript в виде HTA-файла, который и содержит тело вируса. Название такого файла обычно имитирует имя какого-либо системного файла (например, fonts. hta или system. hta) и располагается в каталоге автозагрузки. Поэтому при очередном запуске Windows автоматически запускается и созданный HTA-файл. Когда код червя из HTA-файла получает управление, он запускает программу Outlook со скрытым окном и создает в ней письма, адресованные всем, чьи адреса хранятся в адресной книге Outlook. Червь создает письма в формате HTML и включает в них свой сценарий. Таким образом, червь распространяет сам себя. Кстати, для сценариев, не использующих HTML-код и основное HTA-окно, нет необходимости указывать атрибуты HTA-документа. В этом случае код записывается между тэгами .
Похожий принцип используют и вирусы, распространяемые вместе с программами. В этом случае вместе с программой на ваш диск может попасть и такой безобидный с виду файл, как readme. hta или help. hta. При первом же запуске этих файлов вместе с демонстрацией текста в фоновом режиме производится ряд записей в реестр. И, несмотря на все ваши последующие действия, ваш браузер будет содержать дополнительные панели, кнопки или неизменную стартовую страницу, до тех пор пока вы не обнаружите сам код вируса в hta-файле.
На этом фоне куда более безопасно выглядят различные шутки на основе HTA-файлов. Например, однажды при запуске своего компьютера я обнаружил необычное окно с сообщением: "Внимание! Ваш винчестер содержит битые кластеры и сейчас будет отформатирован". Меня насторожила надпись "VBScript" в заголовке окна. Заподозрив неладное, я обратился к папке автозагрузки в главном меню и обнаружил там файл win. hta с таким содержимым:
Этот сценарий при каждой загрузке Windows создавал всплывающее окно с предупреждением о форматировании жесткого диска. Конечно, диск не форматировался, так как сценарий не содержал такой команды, но поволноваться заставлял.
Но главное применение возможностей скриптовых языков и HTA заключается, разумеется, отнюдь не в вирусах и шутках. Например, в интернет-кафе HTA можно использовать для контроля за работой компьютеров, для ведения индивидуальной статистики, ограничения доступа к дискам и папкам и т.п. Веб-мастер или веб-администратор, обслуживающие несколько сайтов, могут организовать специальные инструменты быстрого доступа и контроля за отдельными страницами сайтов - например, создать прямо в браузере "порт" для внесения на сайт новостей, которые будут появляться в режиме реального времени. Таким образом, каждый может найти в этой технологии что-то полезное для себя.
Хотелось бы обратить внимание тех, кто продолжает относиться к HTA скептически, на то, что Microsoft рекомендует использовать этот формат для решения небольших текущих задач, но не для обмена между пользователями. Другими словами, если пользоваться только собственными HTA-файлами, не передавать их кому-либо и не копировать чужие, то о безопасности можно не беспокоится. Если же Microsoft захочет изменить статус HTA-файлов, для этого придется провести серьезную работу по обеспечению безопасности. Если это удастся сделать в ближайшее время, то вполне возможно, что новая технология быстро приобретет такую же популярность, как JScript и VBscript.
И все-таки - безопасность
На сайте размещена " заплатка" для дыры Scriptlet. Typelib в Internet Explorer. Если же вы не планируете использовать HTA-файлы, но хотите защитить компьютер от случайных вирусов, использующих этот формат, лучше отключить поддержку этих файлов. Для этого дважды кликните по пиктограмме Мой компьютер на рабочем столе, откройте Панель управления, выберите в меню окна команду Сервис > Свойства папки, перейдите на вкладку Тип файлов, выберите тип HTA-HTML application и щелкните наM кнопке Удалить.
Атрибуты HTA-документов
Атрибут
Описание
applicationName
имя приложения, использующегося для идентификации при исполнении HTA-документа
border
вид обрамления окна; среди возможных значений - thin, dialog, none, thick
borderStyle
стиль обрамления окна; среди возможных значений - complex, normal, raised, static, sunken
caption
указывает, нужно ли показывать заголовок окна (yes/no)
icon
путь к пиктограмме, которая будет показана в заголовке; допустимые параметры пиктограммы - 32x32 пикселей, формат. ICO
maximizeButton
указывает, будет ли активизирована кнопка "восстановить" в заголовке документа (yes/no)
minimizeButton
указывает, будет ли активизирована кнопка "свернуть" в заголовке документа (yes/no)
showInTaskbar
указывает, будет ли показан документ в панели инструментов Windows (yes/no)
windowState
первоначальный размер окна; среди возможных значений - normal, minimize, и maximize
innerBorder
указывает, будет ли окно иметь внутреннюю границу (yes/no)
navigable
указывает, будут ли ссылки открываться в отдельных окнах или в одном (yes/no)
scroll
указывает, будет ли окно иметь полосу прокрутки (yes/no)
scrollFlat
указывает вид полосы прокрутки: 3D или нет (yes/no)
singleInstance
определяет, возможно ли одновременное открытие нескольких окон для HTA-документов (yes/no)
sysMenu
указывает, будут ли показаны составляющие заголовка окна (yes/no)
contextMenu
указывает на доступность контекстного меню, вызываемого правой кнопкой мыши (yes/no)
selection
указывает, можно ли выделять текст в HTA-окне (yes/no)
version
версия HTA
document.write('');
Новости мира IT:
02.08 -
02.08 -
02.08 -
02.08 -
02.08 -
01.08 -
01.08 -
01.08 -
01.08 -
01.08 -
01.08 -
01.08 -
01.08 -
01.08 -
01.08 -
31.07 -
31.07 -
31.07 -
31.07 -
31.07 -
Архив новостей
Последние комментарии:
(66)
2 Август, 17:53
(19)
2 Август, 17:51
(34)
2 Август, 15:40
(42)
2 Август, 15:35
(1)
2 Август, 14:54
(3)
2 Август, 14:34
(3)
2 Август, 14:15
(2)
2 Август, 13:34
(7)
2 Август, 13:04
(3)
2 Август, 12:28
BrainBoard.ru
Море работы для программистов, сисадминов, вебмастеров.
Иди и выбирай!
Loading
google.load('search', '1', {language : 'ru'}); google.setOnLoadCallback(function() { var customSearchControl = new google.search.CustomSearchControl('018117224161927867877:xbac02ystjy'); customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET); customSearchControl.draw('cse'); }, true);
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.
Будьте уверены, только у нас можно заказать на таких выгодных условиях, звоните!
META-теги — инструмент хорошего сайта?
, META-теги - это необязательные атрибуты, размещенные в заголовке страницы, которые могут содержать ее описание, ключевые слова к ней, информацию об авторе, управляющие команды для броузера и поисковых роботов, и прочую служебную информацию, не предназначенную для посетителей. Многие из поисковых систем на сегодняшний день активно используют META-теги. Использование META-тегов позволит поисковому роботу правильно и качественно проиндексировать Ваш сайт...
Предыдущие слова были написаны мной в 1999 году для сайта одной из компаний где я тогда работал. С тех пор в мире интернета многое изменилось, изменилась и реальная значимость многих конструкций языка на которых написаны страницы сайтов. Можно попытаться разобраться - насколько эффективно сейчас использование тех или иных META-тегов при построении сайтов, действительно ли зря большинство начинающих web-мастеров и web-дизайнеров не уделяют им особого внимания, и может ли правильное их использование позволить значительно увеличить посещаемость сайта.
А если не для всех ссылок нужно подменю?
Тогда, чтобы слой, отображенный при наведении на другую ссылку, не оставался видимым кодга мы наведем курсор на ссылку, для которой подменю не требуется, следует прописать новый параметр скрытия всех слоев в свойствах этой ссылки:
Пример данного творения, а также его "скрипт-родитель" можно увидеть .
Получившееся меню отлично работает (проверено лично!) в разных браузерах - Internet Explorer, Opera, Mozilla.
Ну вот, в принципе и усе :) Думаю, теперь проблема построения универсального выпадающего меню отпадет! Если у Вас все же еще остались (или только возникли) какие-либо вопросы по поводу этого меню - , отвечу на все вопросы!
Удачи в нелегком деле веб-мастера!
document.write('
');
Новости мира IT:
02.08 -
02.08 -
02.08 -
02.08 -
02.08 -
01.08 -
01.08 -
01.08 -
01.08 -
01.08 -
01.08 -
01.08 -
01.08 -
01.08 -
01.08 -
31.07 -
31.07 -
31.07 -
31.07 -
31.07 -
Архив новостей
Последние комментарии:
(66)
2 Август, 17:53
(19)
2 Август, 17:51
(34)
2 Август, 15:40
(42)
2 Август, 15:35
(1)
2 Август, 14:54
(3)
2 Август, 14:34
(3)
2 Август, 14:15
(2)
2 Август, 13:34
(7)
2 Август, 13:04
(3)
2 Август, 12:28
BrainBoard.ru
Море работы для программистов, сисадминов, вебмастеров.
Иди и выбирай!
Loading
google.load('search', '1', {language : 'ru'}); google.setOnLoadCallback(function() { var customSearchControl = new google.search.CustomSearchControl('018117224161927867877:xbac02ystjy'); customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET); customSearchControl.draw('cse'); }, true);
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.
А как сделать, чтобы слой исчезал, когда курсор не на сссылке?
Для этого нам надо прописать новый параметр в ячейках таблицы, "окружающих" наши ссылки. Т.е. следует прописывать параметр onmouseover=P7_autoLayers(0) в теге
ячейки таблицы, которая находится слева/справа/сверху/снизу наших ссылок (за исключением ячейки, где собственно находятся ссылки). В итоге, при наведении курсора на ячейку, в параметрах которой прописано onmouseover=P7_autoLayers(0), слой будет исчезать! Пропишем этот параметр в нужных местах нашей страницы:
Содержание страницы
Теперь, при наведении курсора на ячейку, где написано "Содержание страницы", слой, независимо какой у него id, будет исчезать!
А как сделать, чтобы табличка появлялась в нужном месте?
Для этого существуют параметры LEFT и TOP, которые указываются в стиле слоя. LEFT - отступ от левого края страницы, TOP - отступ от верхнего края страницы. Чтобы настроить отображение слоя в нужном месте, надо поэкспериментировать со значениями этих параметров и добиться желаемого эффекта ;) Также есть еще некоторые параметры стиля слоя: WIDTH - ширина слоя, HEIGHT - высота слоя.
Благодаря параметрам LEFT и TOP мы можем строить как горизонтальное, так и вертикальное выпадающее меню! Для этого нам необходимо просто указать нужные значения.
А как сделать другие слои, чтобы они отображались при наведении курсора на другую ссылку?
Элементарно! А точней, аналогично :) Создаем новый слой с другим id:
Для начала нам понадобится непосредственно сама страничка, куда мы будем вставлять меню и скрипт, который будет управлять отображением/скрытием будущего меню.
Для примера возьмем обыкновенную html страничку, с несколькими ссылками:
Таблица, которая находится внутри слоя (между ) изначально невидима за счет параметра VISIBILITY: hidden, и следует заметить, что у каждого такого слоя (их может быть несколько, для отображения нужного из нескольких, при наведении курсора на определенную ссылку) есть свой id. В нашем случае id=msa. Для остальных таблиц слоев писать id=msb, id=msc и т.д. в порядке возрастания по алфавиту. Теперь засовываем этот слой куда-нибудь вниз нашей страницы (лучше сразу перед тегом
).
Как же отобразить этот слой?
Чтобы отобразить нужный нам слой, следует в ссылке прописать параметр ONMOUSEOVER=P7_autoLayers(0,'msa','Closer'), где 'msa' указывает на id отображаемого слоя.
"Привяжем" к ссылке link1 наш слой:
a','Closer')>link1
Теперь при наведении курсора мыши на link1 у нас будет появляться табличка!
Создание универсального выпадающего меню
, MostInfo.net
Одной из проблем как начинающих, так и уже довольно опытных веб-мастеров становится создание так называемого выпадающего меню. Еще проблемнее становится вопрос создания такого же меню, но работающего в различных браузерах. В данной статье я постараюсь раз и навсегда решить эту проблему!
Мультибраузерный сайт: как его сделать
,
В данной статье я расскажу вам об основных принципах создания "мультибраузерного" сайта. Под словом "мультибраузерный сайт" я подразумеваю сайт, определяющий браузер пользователя и, в зависимости от результата, использующий уникальные этому браузеру CSS стили. Также я расскажу о некоторых проблемах, которые могут возникнуть при работе с браузерами.
Значит так, что нам надо? А нам надо сделать так, чтобы сайт отображался в большинстве браузеров по возможности одинаково (к сожалению, абсолюта не добиться). Перво-наперво необходимо определить, в каких браузерах наш сайт должен отлично выглядеть. В моем варианте это: IE, Opera, Netscape и Mozilla. И сразу совет: старайтесь не использовать атрибуты , переложите эти обязанности на CSS... или на строковые элементы стиля aka style="*". Хотя даже "style" стоит использовать только при крайней необходимости. Для решения этой интересной задачи я предлагаю следующее: использовать несколько стилей для разных браузеров. Однако, я вам не советую просто универсально писать, т.к. получится хуже, но геморроя меньше:)
Вот кодик, который я написал для своего сайта. Так мы определяем, с каким браузером мы имеем дело: function browser_define($agent)
}
Функция возвращает имя браузера. Используем ее так:
Т.е., если, например, к нам зашли через IE, то скармливаем CSS файл по имени ie.css. Можно сделать небольшую модернизацию и определять еще и версию браузера, но я в этом большого резона не увидел... Теперь, после того, как мы научились определять браузер юзера и использовать специфичный ему CSS файл, поговорим о различиях между этими браузерами. Вот наиболее важные нюансы, на которых стоит заострить внимание:
Если используете комментарии в CSS файлах, то юзайте конструкцию /* комментарий */, но никак не # и не , т.к. Mozilla и Netscape странно реагируют на них, поэтому следующий за комментарием элемент стиля просто игнорируется, правда, в Opera и IE все ОК.
Различное отображение тега
position: relative; top: 1px;
Это спасает. НО! В Opera я заметил такую фишку, что при наложении такого кода на любой другой элемент, например, на бордюр таблицы, границы просто становятся невидимыми:( Выйти из этого положения можно следующим способом: дописать "z-index". Т.е. у нас получается:
position: relative; top: 1px; z-index: 1;
Далее идут различия в кнопках. Т.е. например, где-то текст кнопки располагается выше на 1px, где-то ниже. Короче, это безобразие надо отслеживать. А самое прикольное, что в Opera возможен такой глюк, что при использовании DOCTYPE (хотя многие его не используют, но без него валидный код вам будет только сниться:)), размеры кнопок странно отображаются, т.е. для дорогой Opera я указываю "height: 14px;", несмотря на то, что в других браузерах стоит "height: 18px;", который и является реальной величиной.
Будьте внимательны с размерами и
Сокращайте слова в атрибуте "ALT" при , так как в Mozilla этот текст "выйдет" за границы . Эту фишку я заметил толька в Mozilla, в других браузерах все было ОК.
Далее хочу напомнить, что использование для оформления скроллбара кода типа:
будет отображаться только в IE и производных от него. Поэтому не удивляйтесь, что, зайдя в Mozilla, вместо радостных тонов вы увидите серый скроллбар (в зависимости от темы оформления).
Не юзайте следующий код:
leftmargin, marginwidth, topmargin, marginheight
подобные скармливают нам различные визуальные редакторы. Точно знаю про Namo WebEditor(дааавно пользовался)
Используйте для отступов документа код:
BODY { padding: 0; margin: 0; }
Если же вы хотите сделать отступ в 1px сверху и снизу, то просто напишите:
BODY { padding: 1px 0 1px 0; margin: 0; }
Вы, наверное, спросите "А зачем margin: 0 нужен, ведь и без него все нормуль?" А я вам отвечу, что это просто необходимо для Mozilla. А то вы будете ломать голову, почему же у вас там появились лишние отступы:)
Вот в общем-то и все... Дерзайте, и у вас все получится.
P.S. Данная статья может содержать некоторые неточности, но суть, я думаю, вам понятна: ;-)
A
Description
The A element brackets (or anchors) a piece of text (and/or image) which
is identified as a hypertext link.
The A element must have either an HREF attribute or a NAME attribute.
The HREF attribute identifies a destination ,
and the bracketed text is rendered as a hypertext link to the URL.
Browsers will display the contents of an A element with an HREF attribute
in a special manner to indicate that if the contents are selected,
the browser will execute that hypertext link.
The NAME attribute identifies a destination tag, and the bracketed text
is thereby identified as an available hypertext target
within this document.
Browsers do not display the contents of an A element with a NAME attribute
in any special way.
However, an A element with an HREF attribute can now be constructed
by using the document URL suffixed with #name.
This will load the document, but will position the display
starting at the location of this NAME tag.
An A element with an HREF attribute can also be constructed
to jump directly to this destination tag within the same document
by a URL consisting solely of #name
The presence of REL=relation
in document A with HREF to document/object B
identifies a relationship that B has to A that A recognizes/authorizes/verifies.
The presence of REV=relation
of the identical relation
in document B with HREF to document/object A
identifies a desired/expected/claimed relationship that B has to A,
but must be verified by checking with A. Minimum Attributes characters...
URN is for a Universal Resource Number, and is not currently
used or supported, and is a Level 1 attribute.
RFC 1866 describes it as a preferred, more persistent identifier
than the value of HREF.
TITLE is little used or supported, and is a Level 1 attribute,
but is expected to be the title of the HREF document.
RFC 1866 suggests TITLE can be displayed as a margin note
or on a small box while the mouse is over the anchor.
(ed. I am unaware of any browser that has implemented this
feature.)
METHODS is little used or supported, but is expected to be
a white-space-separated list of HTTP METHODS supported by the
object and accessible to the user.
RFC 1866 suggests that the content of the A element may be
rendered differently depending upon the HTTP method.
TARGET is a Netscape 2.0 extension to define a window name for use
by the retrieved hyperlink. If the named window is not already
open, Netscape 2.0 will open a new window and assign it that name.
See also the element for naming a window.
SHAPE is proposed to provide a mechanism to define
multiple A elements and corresponding "hotzones" within the
proposed element, to perform the equivalent function
of ISMAP without the need for writing a responding cgi-bin program.
For an alternate proposal, see the element.
A is a Level 0 element.
ABBREV
Description
The ABBREV element
changes the character rendering of the
contents of the element to logically represent
abbreviations. Minimum Attributes characters... All Possible Attributes
LANG="..."
DIR=ltr|rtl
ID="..."
CLASS="...">characters...
Elements Allowed Within...
-In progress, to be determined- Allowed In Content Of...
-In progress, to be determined- Variations
The ABBREV element is a Version 3 proposed element.
All character definition elements are Level 2.
ACRONYM
Description
The ACRONYM element
changes the character rendering of the
contents of the element to logically represent
acronyms. Minimum Attributes
characters... All Possible Attributes
LANG="..."
DIR=ltr|rtl
ID="..."
CLASS="...">characters...
Elements Allowed Within...
-In progress, to be determined- Allowed In Content Of...
-In progress, to be determined- Variations
The ACRONYM element is a Version 3 proposed element.
All character definition elements are Level 2.
ADDRESS
Description
The ADDRESS element defines a separated multi-line set of text
to be rendered for address information. Minimum Attributes
characters...
All Possible Attributes
LANG="..."
DIR=ltr|rtl
ALIGN=center|left|right|justify
ID="..."
CLASS="..."
CLEAR=left|right|all|"..."
NOWRAP>characters...
Elements Allowed Within...
members of group
or element Allowed In Content Of...
Any element that permits members of group Variations
ADDRESS text is typically rendered in italics, and may be indented.
The LANG and DIR attributes are introduced with the
internationalization proposal.
The internationalization proposal also includes
ALIGN=center|left|right|justify
The CLEAR and NOWRAP attributes are proposed in Version 3.
ADDRESS is a Level 0 element. Sandia Requirements
An ADDRESS element is required to identify a "point-of-contact".
For details, see the .
APPLET
Description
The APPLET element replaced the APP element as the mechanism
to identify and invoke a JAVA(tm) application. A browser that
understands this element will ignore everything in the content
of the APPLET element except the PARAM elements. Browsers that
do not understand this element should ignore it and the PARAM
elements and instead process the content of the element.
Thus the content is the alternate HTML if the application is
not invoked. CODE is the name of the file that contains the
compiled Applet subclass. This name is relative to the base
URL of the applet and cannot be an absolute URL. WIDTH and HEIGHT
give the initial width and height (in pixels) of the applet
display area. CODEBASE specifies the base URL of the applet.
ALT specifies parsed character data to be displayed if the brower understands
the APPLET tag but can't/won't run them. NAME specifies a name
for the applet instance, which allows applets on the same page
to commuicate with each other. ALIGN specifies the display
alignment. VSPACE and HSPACE specify the reserved space around the
applet (in pixels). Minimum Attributes
All Possible Attributes
Elements Allowed Within...
and any other elements which would have been allowed at this
point in the document. Allowed In Content Of...
-In progress, to be determined- Variations
The APPLET element is a proposed extension for JAVA(tm) applications,
and is a Netscape 2.0 extension.
AREA
Description
The AREA element
specifies a single area of an image which, if selected, will
link to the hyperlink identified by HREF.
If multiple AREA elements in the
same MAP define overlapping areas, the first encountered takes precedence. Minimum Attributes
All Possible Attributes
SHAPE=rect|circle|polygon
HREF="..."
NOHREF
ALT="..."> Elements Allowed Within...
AREA has no end tag and therefore has no content. Allowed In Content Of... Variations
The AREA element is part of a proposed enhancement to
provide client-side image maps.
COORDS describes the position of
an area (in pixels) of the image in comma-separated x,y coordinates
where the upper-left corner is "0,0".
For SHAPE=rect (the default), it is "left,top,right,bottom".
For SHAPE=circle, it is "center_x,center_y,radius".
For SHAPE=polygon, it is successive x,y vertices of the polygon.
If the first and last coordinates are not the same, then a segment
is inferred to close the polygon. The NOHREF indicates that this
region should generate no links.
The ALT attribute specifies optional parsed character data to describe the area which
could be displayed by a text-only browser as a substitute for the image.
AREA is an extension in Netscape 2.0,
but the only SHAPE recognized is "rect", and ALT is not defined.
AU
Description
The AU element
changes the character rendering of the
contents of the element to logically represent
the name of an author. Minimum Attributes characters... All Possible Attributes
LANG="..."
DIR=ltr|rtl
ID="..."
CLASS="...">characters...
Elements Allowed Within...
-In progress, to be determined- Allowed In Content Of...
-In progress, to be determined- Variations
The AU element is a Version 3 proposed element.
All character definition elements are Level 2.
B
Description
The B element changes the physical rendering of the
contents of the element to a bold font. Minimum Attributes characters...
All Possible Attributes
LANG="..."
DIR=ltr|rtl
ID="..."
CLASS="...">characters...
Elements Allowed Within...
members of group Allowed In Content Of...
Any element that permits members of group Variations
Browsers who do not have bold may render in some other manner.
RFC 1866 states that content must be rendered as distinct
from content.
The LANG and DIR attributes are introduced with the
internationalization proposal.
All character definition elements are Level 2.
BANNER
Description
The BANNER element is proposed for corporate logos, navigation aids,
disclaimers and other information which shouldn't be scrolled
with the rest of the document. Minimum Attributes characters...
All Possible Attributes
LANG="..."
DIR=ltr|rtl
ID="..."
CLASS="...">characters...
Elements Allowed Within...
-In progress, to be determined- Allowed In Content Of... Variations
This is a proposed Version 3 element.
BASE
Description
The BASE element provides the absolute
base to be used for any relative URL links in this document.
It must be a complete file name,
and is usually the original URL of this document.
If this file is moved, having the BASE set to the original URL
eliminates the need to also move all the documents which are
identified by relative URL links in this document. Minimum Attributes All Possible Attributes Elements Allowed Within... Allowed In Content Of... Variations
This is a Level 0 element.
Netscape 2.0 defines the TARGET attribute to define a default
named target window for every link in a document that does not
have an explicit TARGET attribute.
BASEFONT
Description
Change the document base font size to one of the seven defined sizes.
The default is 3. Minimum Attributes All Possible Attributes Elements Allowed Within...
-In progress, to be determined- Allowed In Content Of...
-In progress, to be determined- Variations
The BASEFONT element is a Netscape extension.
BDO
Description
The BDO element is a directional override feature needed to deal
with unusual pieces of text in which directionality cannot be
resolved from context in an unambiguous fashion.
It requires the DIR attribute.
The meaning of DIR is different on BDO than on inline text markup elements.
For BDO the DIR attribute
is a bidi override, forcing the directionnality of even those
characters that have strong directionnality. On inline elements,
DIR indicates a new directional embedding level, affecting mostly the
neutrals and the overall layout. Minimum Attributes
characters... All Possible Attributes
DIR=ltr|rtl LANG="...">characters...
Elements Allowed Within...
members of group Allowed In Content Of...
Any element that permits members of group Variations
The BDO element is a proposed element as part of the enhancement
to deal with internationalization of HTML.
BGSOUND
Description
The BGSOUND element will cause an audio file to be presented
as background to the document. Minimum Attributes All Possible Attributes
SRC="..."
LOOP="..."> Elements Allowed Within...
The BGSOUND element is defined as having no content. Allowed In Content Of...
-In progress, to be determined- Variations
The BGSOUND element is a MS Internet Explorer 2.0 enhancement.
SRC specifies the URL of the audio
file to be played. LOOP specifies how many times the sound will
be displayed while the HTML document is displayed, and can either
be a number or the string "infinite". The default for LOOP is one.
Considerable opposition to the use of this element has been expressed
on the Web, especially the use of LOOP=infinite, since users currently
have no way to disable the audio.
BIG
Description
The BIG element changes the physical rendering of the
contents of the element to a bigger font than normal text, if practical. Minimum Attributes
characters...
All Possible Attributes
LANG="..."
DIR=ltr|rtl
ID="..."
CLASS="...">characters...
Elements Allowed Within...
-In progress, to be determined- Allowed In Content Of...
-In progress, to be determined- Variations
The BIG element is proposed in Version 3, and is implemented as
a Netscape 2.0 enhancement.
All character definition elements are Level 2.
BLINK
Description
The BLINK element changes the physical rendering of the
contents of the element to a blinking font. Minimum Attributes
All Possible Attributes
Elements Allowed Within...
-In progress, to be determined- Allowed In Content Of...
-In progress, to be determined- Variations
This element is a Netscape 1.1 enhancement
and many browsers ignore this element.
Many users find the use of this element annoying.
It should be restricted to short term use for new information.
Netscape 1.1N permits users to disable the rendering of this element.
BLOCKQUOTE
Description
The BLOCKQUOTE element defines a separated multi-line set of text
to be rendered as quoted text. Minimum Attributes
Elements Allowed Within...
members of group Allowed In Content Of...
Any element that permits members of group Variations
RFC 1866 states the contents of the BLOCKQUOTE element is typically
rendered slightly indented both left and right, and/or italic font.
It also states that a single-font browser rendering may
display the contents with a vertical line
of ">" characters down the left margin
to indicate quotation in the Internet mail style.
The LANG and DIR attributes are introduced with the
internationalization proposal.
The internationalization proposal also includes
ALIGN=center|left|right|justify
Version 3 proposes replacing the BLOCKQUOTE element with the
element.
BLOCKQUOTE is a Level 0 element.
BODY
Description
The BODY element contains all the content of the document,
as opposed to the
, which contains information about
the document. All displayable elements should be within the content
of the BODY. Minimum Attributes All Possible Attributes
Elements Allowed Within...
members of group Allowed In Content Of... Variations
The HTML, HEAD, and BODY elements were introduced with
RFC 1866, and are currently optional, but are considered
Level 0 elements.
The LANG and DIR attributes are introduced with the
internationalization proposal.
Version 3 proposes the attribute BACKGROUND.
Netscape 1.1 and MS Internet Explorer 2.0
include the BACKGROUND attribute, which is a URL to point
to an image to be reproduced to fill the background of the document.
Netscape 1.1 and MS Internet Explorer 2.0 both document the BGCOLOR extension.
Netscape requires an "#rrggbb" number, while
Internet Explorer also accepts the following color names:
Black, Maroon, Green, Olive, Navy, Purple, Teal, Gray, Silver, Red, Lime,
Yellow, Blue, Fuchsia, Aqua, White.
The TEXT, LINK, VLINK, and ALINK attributes are Netscape 1.1 extensions,
and also appear to work with MS Internet Explorer 2.0.
BGPROPERTIES is an MS Internet Explorer 2.0 extension and currently
only accepts the value of "fixed" which provides a watermark
(non-scrolling) background image. Sandia Requirements
The HTML, HEAD and BODY elements are required.
BQ
Description
The BQ element defines a multi-line set of text
to be rendered as quoted text.
The content of the BQ element may optionally contain the
element. Minimum Attributes
All Possible Attributes
LANG="..."
DIR=ltr|rtl
ID="..."
CLASS="..."
CLEAR=left|right|all|"..."
NOWRAP>
Elements Allowed Within...
-others to be determined- Allowed In Content Of...
-others to be determined- Variations
The BQ element is proposed in Version 3 as a replacement
for the BLOCKQUOTE element.
Version 3 does not indicate the typical rendering of the contents
of the BQ element, but does indicate that it may not imply
text separation.
BR
Description
The BR element breaks for a new line, but does not produce
separation of text. Minimum Attributes
All Possible Attributes
CLEAR=left|right|all|"..."
ID="..."
CLASS="..."> Elements Allowed Within...
The BR element is defined as having no content. Allowed In Content Of...
Any element that permits members of group Variations
The CLEAR attribute is a Netscape 1.1 extension and was added
to force the line break to clear possible floating graphic images.
The standard tables proposal expects the presence of this attribute
since it expects text to flow around a table, if possible,
but does not standardize the attribute's existence as part of the proposal.
Version 3 includes CLEAR, and proposes the remaining attributes.
The BR element is Level 0.
CAPTION
Description
The CAPTION element is used to label a table or figure.
The ALIGN attribute specifies on which outside edge to place the caption. Minimum Attributes
Elements Allowed Within...
-In progress, to be determined- Allowed In Content Of... Variations
The CAPTION element was originally proposed in Version 3
and is part of the current table proposal.
This element is an extension in Netscape 1.1.
CENTER
Description
All contents within the CENTER element is to be
centered between the current left and right margin. Minimum Attributes
characters...
All Possible Attributes
characters...
Elements Allowed Within...
-In progress, to be determined- Allowed In Content Of...
-In progress, to be determined- Variations
The CENTER element is a Netscape 1.1 extension.
It was provided as an alternative to the HTML+ and Version 3
ALIGN="center" proposed new attribute for all the
text block elements such as the
paragraph and header elements and the new
element.
Both RFC 1866 and the current Version 3 specification
only include the ALIGN attribute, not the CENTER element,
and Netscape 2.0 has added the ALIGN="center" attribute.
Что можно делать с помощью cookie?
Сами по себе cookies не могут делать ничего, это только лишь некоторая
информация. Однако, сервер может на содержащуюся в cookies информацию.
Например, в случае авторизованного доступа к чему либо через WWW,
в cookies сохраняется login и password в течение сессии, что позволяет
не вводить их при запросе каждого запаролированного документа.
Другой пример: cookies могут использоваться для построения персонализированных
страниц. Чаще всего встречается такое - на некотором сервере Вас
просят ввести свое имя, и каждый раз, когда Вы заходите на первую
страницу этого сервера, Вам пишут что-то типа "Hello, your_name!".
На использовании cookies также часто строят функцию оформления
заказа в онлайновых магазинах, в частности, в Амазоне, такая своеобразная
виртуальная корзина покупателя, как в обычном реальном супермаркете.
Что такое cookie?
Cookie является решением одной из наследственных проблем HTTP
спецификации. Эта проблема заключается в непостоянстве соединения
между клиентом и сервером, как при FTP или Telnet сессии, т.е.
для каждого документа (или файла) при передаче по HTTP протоколу
посылается отдельный запрос. Включение cookie в HTTP протокол
дало частичное решение этой проблемы.
Cookie это небольшая порция информации, которую сервер передает
клиенту. Клиент (броузер) будет хранить эту информацию и передавать
ее серверу с каждым запросом как часть HTTP заголовка. Некоторые
cookie хранятся только в течение одной сессии, они удаляются после
закрытия броузера. Другие, установленные на некоторый период времени,
записываются в файл. Обычно этот файл называется 'cookie.txt'.
Что такое cookies и как с ними работать
Откуда возник термин "cookie" никто достоверно не знает, хотя считается, что во времена зарождения где-то использовалось словосочетание Magic Cookies. Имелись в виду "квитанции" (token, ticket), которыми обменивались программы. Cookie является решением одной из наследственных проблем (HyperText Transfer Protocol). Эта проблема заключается в непостоянстве соединения между клиентом и сервером, как при или Telnet сессии, т.е. для каждого документа (или файла) при передаче по HTTP протоколу посылается отдельный запрос. Включение cookie в HTTP протокол дало частичное решение этой проблемы. Иначе говоря, транзакция завершается после того, как браузер сделал запрос, а сервер выдал соответствующий ответ. Сразу после этого сервер "забывает" о пользователе и каждый следующий запрос того же пользователя считает новым пользователем. Используя cookie, можно эмулировать сессию по HTTP протоколу. Коротко принцип эмуляции сессии таков: на первом запросе выдается соотвествующее значение cookie, а при каждом последующем запросе это значение читается из переменной окружения HTTP_COOKIE и соответствующим образом обрабатывается. Простой пример: есть форма, где пользователю предлагается указать свое имя, из нее вызывается скрипт, прописывающий значение cookie в браузер пользователя. При каждом последующем заходе на основе анализа значения cookie из браузера пользователя на странице появляется либо именное приветствие (если есть установленное значение cookie), либо первоначальная форма с запросом имени пользователя (если значение cookie не установлено). Cookie - это небольшая порция текстовой информации, которую сервер передает браузеру. Браузер будет хранить эту информацию и передавать ее серверу с каждым запросом как часть HTTP заголовка. Одни значения cookie могут храниться только в течение одной сессии, они удаляются после закрытия броузера. Другие, установленные на некоторый период времени, записываются в файл. Обычно этот файл называется 'cookies.txt' и лежит в рабочей директории установленного на компьютер браузера. У меня, к примеру, в этом файле содержится следующее:
Как видно, у меня оставили cookie , поисковая система , бесплатный почтовый сервер , рекламные сети и отечественная . В настоящее время большинство браузеров поддерживает механизм cookies. Я точно знаю, что cookie можно использовать во всех версиях Netscape Navigator, Microsoft Internet Explorer и NCSA Mosaic.
Что можно делать с помощью cookie?
Сами по себе cookies не могут делать ничего, это только лишь некоторая текстовая информация. Однако сервер может считывать содержащуюся в cookies информацию и на основании ее анализа совершать те или иные действия. Например, в случае авторизованного доступа к чему либо через WWW в cookies сохраняется login и password в течение сессии, что позволяет пользователю не вводить их снова при запросах каждого документа, защищенного паролем.
На использовании cookies также часто строят функции оформления заказов в онлайновых магазинах, в частности, в самом крупном виртуальном книжном магазине реализована своеобразная виртуальная корзина покупателя, как в обычном реальном супермаркете, в которую сервер записывает информацию обо всех заказанных книгах. Пользователь просто помечает интересующие его книги, а затем оформляет покупку сразу всех отмеченных книг.
Еще одна распространенная область использования cookies - при настройке индивидуального профиля каждого зарегистрированного пользователя.
И, наконец, самая последняя область - использование механизма cookie в рекламном бизнесе на Интернет. Еще год назад реклама в Интернет за деньги была довольно экзотической услугой, а сейчас этот бизнес уже устоялся и стремительно развивается. Однако рекламодатели начинают предъявлять более жесткие условия к оценке эффективности своих расходов. Cookie используются для таргетинга рекламы (определения целевой аудитории, например, по географическому положению пользователей), отслеживания интересов пользователей, учета количества показов и проходов сквозь баннеры.
Работа с cookie
Теперь, когда с принципами действия и областями применения cookie все более или менее понятно, можно приступить к изучению формата и синтаксиса, а также способов задания значений cookie.
Формат и синтаксис cookie
Предлагаемое мной в этой статье описание формата и синтаксиса cookie является вольным пересказом изначальной спецификации Netscape Communications "". В настоящий момент идет разработка более строгой спецификации для cookie. Итак, cookie является частью HTTP заголовка. Полное описание поля Set-Cookie HTTP заголовка:
Минимальное описание поля Set-Cookie HTTP заголовка:
Set-Cookie: NAME=VALUE;
NAME=VALUE - строка символов, исключая перевод строки, запятые и пробелы. NAME-имя cookie, VALUE - значение. Не допускается использование двоеточия, запятой и пробела.
expires=DATE - время хранения cookie, т.е. вместо DATE должна стоять дата в формате "expires=Monday, DD-Mon-YYYY HH:MM:SS GMT", после которой истекает время хранения cookie. Если этот атрибут не указан, то cookie хранится в течение одного сеанса, до закрытия броузера.
domain=DOMAIN_NAME - домен, для которого значение cookie действительно. Например, "domain=cit-forum.com". В этом случае значение cookie будет действительно и для домена cit-forum.com, и для www.cit-forum.com. Но не радуйтесь, указания двух последних периодов доменных имен хватает только для "COM", "EDU", "NET", "ORG", "GOV", "MIL" и "INT". Для обсуждаемых сейчас новых семи доменов первого уровня ("FIRM", "SHOP", "WEB", "ARTS", "REC", "INFO", "NOM"), вероятно, это условие сохранится. Для доменов иерархии "RU", например, придется указывать три периода.
Если этот атрибут опущен, то по умолчанию используется доменное имя сервера, на котором было задано значение cookie.
path=PATH - этот атрибут устанавливает подмножество документов, для которых действительно значение cookie. Например, указание "path=/win" приведет к тому, что значение cookie будет действительно для множества документов в директории /win/, в директории /wings/ и файлов в текущей директории с именами типа wind.html и windows.shtml. Для того, чтобы cookie отсылались при каждом запросе к серверу, необходимо указать корневой каталог сервера, например, "path=/".
Если этот атрибут не указан, то значение cookie распространяется только на документы в той же директории, что и документ, в котором было установлено значение cookie.
secure - если стоит этот маркер, то информация cookie пересылается только через HTTPS (HTTP с использованием SSL - Secure Socket Level), в защищенном режиме. Если этот маркер не указан, то информация пересылается обычным способом.
Синтаксис HTTP заголовка для поля Cookie
Когда запрашивается документ с HTTP сервера, браузер проверяет свои cookie на предмет соответствия домену сервера и прочей информации. В случае, если найдены удовлетворяющие всем условиям значения cookie, броузер посылает их в серверу в виде пары имя/значение:
Одновременно можно задавать несколько значений cookie.
В случае, если cookie принимает новое значение при имеющемся уже в браузере cookie с совпадающими параметрами NAME, domain и path, то старое значение заменяется новым. В остальных случаях новые значения cookie добавляются к старым.
Использование expires не гарантирует сохранность cookie в течение заданного периода времени, поскольку клиент (браузер) может удалить запись из-за нехватки выделенного места или каких-либо других причин.
Клиент (браузер) имеет следующие ограничения для cookies:
всего может храниться до 300 значений cookies
каждый cookie не может превышать 4Кбайт
с одного сервера или домена может храниться до 20 значений cookie
Если ограничение 300 или 20 превышается, то удаляется первая по времени запись. При превышении лимита объема в 4Кбайт корректность значения cookie страдает - отрезается кусок записи (с начала этой записи) равный превышению объема.
В случае кэширования документов, например, proxy-сервером, поле Set-cookie HTTP заголовка никогда не кэшируется.
Если proxy-сервер принимает ответ, содержащий поле Set-cookie в заголовке, предполагается, что поле доходит до клиента вне зависимости от кода возврата 304 (Not Modified) или 200 (OK). Соответственно, если клиентский запрос содержит в заголовке Cookie, то он должен дойти до сервера, даже если жестко установлен параметр If-modified-since.
Ниже приведено несколько примеров, иллюстрирующих использование cookies
Пример 1. Управление подмножеством документов, для которых действительны значения cookie, и их сроком годности
Браузер запрашивает документ и принимает от сервера в ответ:
Комментарий: здесь мы имеем две пары имя/значение с одинаковым именем "PART_NUMBER". При закрытии браузера ни одно из этих значений не сохранится, поскольку не задан параметр expires.
Способы задания значений cookie
Способ задания значений cookie зависит того, как эти значения будут использоваться и какие имеются серверные ресурсы. Можно манипулировать временем жизни выставленных cookie и устанавливать подмножества URL (Universal Resource Locator), в которых заданные значения действительны. Есть несколько способов задания, наиболее часто используются три - через META-таги языка HTML, JavaScript и CGI-скрипты. Любым способом можно задавать как одно, так и несколько значений сразу. Сразу хочу предупредить - не забывайте об ограничениях по объему и количеству значений cookie, а также параметре domain, так как помимо основного доменного имени узла часто бывает несколько алиасов (alias).
1. Задание cookie с помощью META-тагов
Простейший способ выставить cookie - использовать соответствующий META-таг в контейнере
... любого статического HTML документа. В общем случае это выглядит следующим образом:
Такой способ задания cookie, на мой взгляд, наиболее интересен для создателей маленьких домашних страничек, когда нет возможности писать свои собственные . А если есть поддержка (Server Side Include) или , то можно делать интерактивные страницы вообще без использования внешних CGI-скриптов. При наличии SSI на узле создание интерактивности с использованием механизма cookie становится просто удовольствием.
С помощью cookie задается на любой статичной странице, директивой (none) можно потом считать любые переменные окружения, в том числе и ранее заданные значения cookie (переменная HTTP_COOKIE), а с помощью конструкций ,