2019 г.  "Вебмастеру"

Порядок работы над Веб-сайтом

1. Разработка концепции сайта и, соответственно – вебдизайн, основные темы, контент, логика.

2. Вёрстка, отладка.

3. Выбор хостера. Размещение страниц.

4. Регистрация сайта в поисковиках и каталогах.

5. Дальнейшее развитие проекта: создание мобильных версий сайта и т.д.

 

Разработка сайта

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

Интерфейс сайта должен быть интуитивно понятен и удобен. Основные ссылки – вверху страниц, легко читаемы и тематически сгруппированы. Для коммерческих проектов, особенно важен интерактив – возможность контактов с менеджером Интернет-ресурса, что обеспечивается формой обратной связи (для защиты от почтового спама – ставится каптча (captcha), картинка с символами).

Юзабилити (Usability) сайта - это степень удобства работы с интернет-ресурсом. Считается хорошей – если посетитель, впервые попав на сайт, имеет возможность быстро освоиться в интерфейсе, сориентироваться в меню и найти нужную ему информацию. Всё это оттачивается тестированием, опросами и мониторингом, оперативной и адекватной реакцией на пожелания клиентов.

Структура сайта создаётся "на всегда", т.к. если она когда-нибудь изменится - соответственно, появятся "битые ссылки" (с выдачей ошибки: код статуса HTTP 404 - не найдена страница или 301, 302 - страничка перемещена на постоянку или временно), размещённые по старым адресам, раньше, на других ресурсах.


Прописать основные метатеги:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Название страницы</title>
<meta name="Description" content="Описание страницы">
<meta name="Keywords" content="ключевые, слова, этой, страници">


Размеры рисунков указывать в явном виде (Width= ... Height=...) – для быстрой загрузки странички в браузер. Общий размер графики – до 50 килобайт на странице (большие картинки - открываются кликом по уменьшенным их копиям, в отдельном окне). Чем меньше их объём – тем быстрее скорость загрузки, особенно, на мобильных устройствах (телефонах, смартфонах, айфонах и планшетниках). Используя методы сжатия Gzip и буферизацию вывода (ob_start) - можно значительно ускорить выгрузку контента страниц с сервера в браузер клиента.


Явное форматирование (предпочтительно - в таблице стилей CSS для классов и селекторов элементов кода документа) с заданием цвета текста и фона, и с универсальным, стандартным набором шрифтов – для его читаемости в любом броузере:

<style type="text/css">
BODY { font: 100% Arial,sans-serif; background-color:#ffffff; color:#000000; }
</style>

Для вывода значков Юникода и надписей только определённым шрифтом - применяется динамическая подгрузка (с сервера, на котором размещён сайт или из сервиса Google Web Fonts) файлов нужных шрифтов к открываемой веб-странице. Это может осуществляться через CSS, с помощью правила @font-face. При загрузке малых блоков, содержащих только необходимые буквы и знаки, достигается увеличение скорости открытия страницы.


При необходимости включения скриптов – предусмотреть "дежурные сообщения":

<font color=red><noscript> Для правильного отображения страницы должна быть включена поддержка JavaScript </noscript></font> - это сообщение появится в случае отключённой обработки скриптоф


Если система навигации по сайту выполнена на Java Script'е, тогда поисковый паук на сможет пройтись по страницам для их индексации, поэтому – ссылки рекомендуется указывать в явном виде. При ссылках в виде реакции на событие "onclick" или "onmouseover" над текстом, чтобы пользователь понял, где можно кликать мышкой - надо задать курсору форму в виде руки, когда указатель находится в пределах элемента:
<span style="cursor: pointer; cursor: hand; text-decoration: underline"

Часто применяемые значения: text - текст, move - перемещение, help - помощь (знак вопроса), pointer / hand - рука, crosshair - перекрестие, no-drop / not-allowed - "нет доступа".

Для сокращения количества внешних ссылок на странице - вместо них ставятся "внутренние", на единственную страницу-обработчик. Используется РНР-скрипт, который открывает ВС по GET-переменной (в соответствии со значением числовой переменной, из списка выбирается нужный адрес или, напрямую):
https://свой-сайт.ру/go.php?url=N  или  https://свой-сайт.ру/go.php?url=site.ru
...
код PHP:
header("Location: $url");


Есть и другие способы. Например, через редирект, с помощью метатега <meta http-equiv="refresh", который ставится на отдельную страничку, под каждую гиперссылку. Другой вариант - делать не ссылку, а кнопку формы.


Аккуратнее использовать всяческое расслоение - <DIV ...>, "style=POSITION: relative;" и тому подобное, чтобы Интернет-страница сохраняла свою структуру в любом браузере и на всех устройствах.


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


User-agent: *
Disallow: /arhiv2005/
Disallow: /dir/page1.htm/
Disallow: /name

в примере файла robots.txt, блоком директив, из четырёх строк,
для индексирования запрещены всем роботам (User-agent: *):
– директория "arhiv2005" и всё её содержимое,
– файл "page1.htm", располагающийся в директории "dir"
(закрывающий слэш = спецсимвол $, ограничивает "полный URL")

– файлы и каталоги, имя которых начинается с последовательности
символов name (нет закрывающего слэша = спецсимволу *, частичный URL)
файлы name.htm, name.html, names.htm..., находящиеся в корневом
каталоге, или любые файлы, находящиеся в каталогах name, names...


# Для бота поисковой системы Яндекс - разрешено
# посещение всех страниц и папок сайта
# Директивой Host - основным зеркалом назначено https://site.ru/
User-agent: Yandex
Disallow:
Host: site.ru


# To exclude all robots from the entire server
# - полный запрет на индексацию
# всего сайта для всех роботов
User-agent: *
Disallow: /


# To allow a single robot
# - разрешен только робот Гугла
# и запрещены все остальные
User-agent: Google
Disallow:

User-agent: *
Disallow: /


# Удалить конкретное изображение
# из Картинок Google
User-agent: Googlebot-Image
Disallow: /images/imageN.jpg


Официальная документация,
спецификация robots.txt:
https://www.robotstxt.org/orig.html
- стандарт описания для файла robots.txt
https://help.yandex.ru/webmaster/?id=996567
- робот Яндекса

Домен и его поддомены - могут иметь только по одному файлу роботс, располагающемуся в корневом каталоге сайта.

В robots.txt допустима только латиница в кодировке ANSI, то есть, готовый файл сохраняется в среде Windows (Win), в Unix-формате (с переводом строки через [ 0 x 0A ], вместо [ 0x0D 0x0A ] ).

Написание директив Disallow и User-agent не зависит от регистра, в отличие от символов их значений (file.html и File.html - для робота, это разные файлы).

В соответствии со стандартом, перед каждой очередной директивой User-agent рекомендуется вставлять пустой перевод строки (или комментарий, начинающийся с символа #).

Блоки, содержащие ошибки или не поддерживаемые конкретным роботом - игнорируются им.

Роботс может содержать несколько записей (блоков). Между блоками должна быть пустая строка (или несколько строк).

Инструкции, содержащие спецсимволы, вида Disallow: *.html или User-agent: Ya* не поддерживаются некоторыми спецификациями различных поисковых систем.

Блок параметров, для каждого Юзер-агента - не должен содержать пустых строк.

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

В одной директиве User-agent - можно указать только одного робота (список из нескольких имён, через пробел или запятую - Российские поисковики не обрабатывают).

Если нет запретов по индексации - на сервер грузят пустой роботс.

Возможна чувствительность к регистру в имени юзерагента (надо уточнить у хостера).

Директивы по разному обрабатывают шаблон типа "*" (звёздочка):
- для User-agent это означает - "все роботы"
- в "disallow" - обрабатывается не во всех спецификациях роботса

Для ограничения частоты посещения сайта роботами (для снижения нагрузки на сервер) существует специальная директива:
User-agent: *
Disallow: /search
Crawl-delay: 4.5 # задает таймаут в 4.5 секунды

- минимальная задержка для бота (не больше одной страницы в пять секунд)
https://help.yandex.ru/webmaster/?id=996567#1022359

Поисковая система Google использует в своих алгоритмах большое количество оригинальных расширений - директиву Allow (и на Яндексе), символы подстановки * и $ (Рамблер тоже обрабатывает звездочку)

# блокируются все адреса с параметром u
User-agent: Google
Disallow: /*u=*

# запрещена индексация файлов, заканчивающихся на php
User-agent: StackRambler
Disallow: /*.php$



Строка с комментариями - начинается с символа #

Аргумент директивы Host (доменное имя с номером порта - 80 по умолчанию, изобретение Яндекса) указывает роботу на главное зеркало сайта.


Карты сайта, путь до них - можно указать специальными директивами:
Sitemap: https://site.ru/sitemap1.xml
Sitemap: https://site.ru/sitemap2.xml


Правильная кодировка карты сайта - utf-8 с префиксом (0xEF 0xBB 0xBF), то есть, в начале файла sitemap.xml должна быть метка BOM (byte-order mark, подпись сигнатуры УТФ).
Периодичность, регулярность обновлений (в теге <changefreq>): ежедневно, еженедельно, ежемесячно, ежегодно (daily, weekly, monthly, yearly). Sitemap, расположенный в каталоге https://primer.ru/catalog/sitemap.xml (это возможный вариант размещения, но рекомендуется - размещать карту сайта в корневом каталоге), может включать только URL-адреса, начинающиеся с https://p r i m e r.r u/c a t a l o g/ и использовать один и тот же протокол (в данном случае — HTTPS). Если количество страниц - больше 5000, то придётся разбивать карту сайта на несколько частей, адреса на которые необходимо прописать в, так называемом, индексном файле sitemap.
подробнее: https://help.yandex.ru/webmaster/?id=1007070
https://www.sitemaps.org/ru/protocol.html


После чтения указаний в роботсе, поисковый паук смотрит наличие в HTML-файлах META-тега с именем ROBOTS, где указываются допустимые параметры работы с Интернет-страницей:
<meta name="robots" content="noindex,nofollow">
- запрещает индексирование документа и проход по ссылкам

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

примечание автора сайта – способы, как сделать перенос на новую строку в файлах robots.txt и .htaccess


 

Вёрстка, отладка сайта


Вёрстку страниц, нарезку таблиц – проще делать в html-редакторе. Доводку страницы-шаблона сделать в "блокноте" (или сохранять в текстовом редакторе notepad++ - если нужен формат UTF без метки ВОМ) – удалить всё лишнее (пробелы и т.д.). Шаблонную страницу делать "под ключ", до её полной готовности.

В процессе создания своих страниц – периодически делать их резервные копии, хранимые на внешнем носителе (флэшке или CD).

Проверить правописание, грамматику текста (с помощью специальных сервисов-спеллеров, помогающих находить и исправлять орфографические ошибки в тексте на русском, украинском или английском языке, например, по адресу https://tech.yandex.ru/speller/ ). При необходимости мультиязычности и расширения географии посетителей сайта - заказать профессиональный перевод (в этом случае - настроить кодировку UTF и разместить на страницах кнопки переключения языковой раскладки RU, EN и т.д.). Протестировать все ссылки на страницах. Регистр в именах файлов, например, file и File – это разные файлы.

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

По логфайлу ошибок проводить отладку – вносить нужные исправления на сайте. С помощью инструментов и сервисов cPanel можно проводить тонкую настройку сервера, включать Cron (автоматическое выполнение скриптов в заданное время) и многое другое.

Валидность (соответствие кода страниц стандартам HTML и CSS) – можно проверить в http://validator.w3.org/ и http://jigsaw.w3.org/css-validator/ соответственно. Некоторые специальные теги (к примеру, noindex) - там будут названы ошибкой, но это не всегда критично. Проверка проводится по спецификации (определению типа документа, ОТД), указанной в начале страницы, например – для HTML4.01 и XHTML 1.0 (в русском переводе):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/ DTD/xhtml1-transitional.dtd">

 

 

По шагам

Создание сайта это "капитальное строительство" на перспективу. Ведь на раскрутку сайта и его регистрацию на досках объявлений и в каталогах - будут потрачены средства. Поэтому, выбор доменного имени (вида SITE.RU или С А Й Т.РФ) - очень важный момент. Если, в дальнейшем, адрес сайта меняется - то опять надо будет тратиться на рекламу нового имени.

Будущий владелец сайта:
1) регистрирует, оформляет домен на свое имя (или по названию организации, фирмы) - регистраторе доменных имён.

2) заказывает разработку сайта или самостоятельно его делает;

3) размещает свой сайт у выбранного хостера;

4) в своём аккаунте у регистратора - указывается ДНС сервера хостера, где разместился.

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

 

 

Выбор хостера


Критерии при выборе хостера: надёжность, скорость, техподдержка...

Для малобюджетного сайта – можно поискать начинающие компании. У них, в первое время работы, обычно есть недорогие тарифы (сохраняющиеся для первых клиентов и в дальнейшем) и при этом может быть "всё включено". Усли повезёт - воспользуетесь акциями и бонусами для первых клиентов. Надёжнее и дороже – крупные хостинговые компании, ДАВНО работающие и хорошо себя зарекомендовавшие.

Если веб-сайт без форума и интерактива (нет загрузки графики и больших файлов) – будет достаточно виртуального хостинга.

Дублирование – размещение частей ресурса (при наличии доменов / поддоменов третьего уровня) на разных хостинг-площадках (работает не один, так другой). Надёжность сервера можно мониторить по "количеству перезагрузок" и ошибок 502-504 (из данных статистики, например - Liveinternet, при настроенном в .htaccess обработчике, к примеру: ErrorDocument 503 https://www.сайт.ru/?error=503   - линк с пятьсот третьей ошибкой будет виден в стат.списке, а их суммарное количество будет считаться для каждого дня, по отдельности).

Чтобы создать свой первый сайт и потренироваться в сайтостроении, подойдут бесплатные системы управления, такие как www.ucoz.ru (конструктор с шаблонами и плагинами) и blogspot.com (движок заточен под блоги). Ресурсы с этих площадок тоже индексируются поисковиками.

 

Примечание: основной показатель качества хостинга - отзывы клиентов (на форумах и т.д.)

Если устраивает - смотреть сайт хостера, тарифы, объём и  к а ч е с т в о  сервисов.

Слишком дорогой хостинг – накладно. Очень недорогой – вскоре, с увеличением у этого хостера числа клиентов, особенно с большим трафиком – начнутся перегрузки сервера и тормоза в работе сайта (это будет заметно по количеству перезагрузок, если смотреть статистику посещений ресурса; счётчик ставится вверху страницы).

 

Мониторинг хоста - Аптаймы и т.д.

Рейтинг хостеров по UpTime (стабильность, в процентном соотношении - общее время работы хостинга в течение месяца) и средняя скорость соединения (без учёта явных выскоков). При суммарном времени простоев серверов хостера в десять минут, в течение месяца - аптайм составит, примерно, 99.7% Нормальная средн. скорость передачи данных - не меньше трёхсот килобайт в секунду по нужному таргеттингу (географии пользователей).

Ссылка на сервис: https://ping-admin.ru/hosting_rating/

 

CMSки (движок сайта)

CMS (Content Management System, система управления контентом, конструктор сайтов) - инструмент для облегчения работы с Интернет-ресурсом, как его владельца (даже с минимальным уровнем компьютерной грамотности), так и конечных клиентов. Основные, наиболее распространённые бесплатные движки: Joomla, Wordpress, MODx, OpenCms. Популярные платные CMS: Drupal, Битрикс (Bitrix), UMI и, специально для создания Интернет-магазина - ShopCMS (бывший АvalonShop), Shop-script, PHPshop и т.д. В качестве хранилища базы данных, эти системы, чаще всего, используют MySQL или современную MsSQL. Дорогие решения используют Oracle, PostgreSQL или SQLite. Есть и простые "файловые" CMS, работающие без MySQL: Rumba, CMSimple, Wikipad, Leviaf, LinkorCMS и другие.

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

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

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

 

 

Настройки сервера


Права доступа (CHMOD)

Первая цифра задаёт права доступа для администратора (user), вторая - для группы (имеют право подключаться к серверу по FTP) и третья - для всех остальных (смотрят через броузер).

U = user; G = group; W = world (other)
r = Read; w = Write; x = Execute;

'r--'  – 4  - чтение.
'-w-' – 2  - запись,
'--x'  – 1  - исполнение,
'---'  – 0

'rwx' соответствуют 7 (4+2+1=7),
'rw-' – 4+2+0=6
'r-x'  – 4+0+1=5,
'r--'  – 4+0+0=4,
'-wx'  – 0+2+1=3,



Пример:
755 (rwxr-xr-x) – исполнение-запись-чтение для владельца и чтение-исполнение для всех остальных. Устанавливаются "по умолчанию" при создании нового каталога. В таком случае, установка восьмеричного корректного значения режима/mode
chmod("/somedir/somefile", 0755);

Обычные права доступа на файлы:
644 (0644) - чтение-запись с сервера (read/write by owner) для админа, остальным можно только читать.
655 (0655) - посетители сайта имеют права на чтение и исполнение файлов интернет-страниц сайта в своём браузере.

Выставить права доступа можно через любой ftp-клиент. Быстрые клавиши для перехода в режим установки атрибутов (Set attributes): Ctrl + A

 


Файл .htaccess

Собственные страницы ошибок 301, 302, 401, 403, 404, 500

для обработки ошибок - добавляется соответствующая строчка в файле .htaccess
ErrorDocument 404 /errors/404.shtml

где 404.shtml - своя страница обработчика ошибки 404 (её размер должен превышать 1 килобайт,
иначе будут грузиться стандартные страницы сообщений об ошибке), которая откроется в случае
переходов по кривым ссылкам или неверного обращения к странице.
Файл .htaccess с такой строчкой можно размещать в разных каталогах.


Коды ошибок:

100-199 - информационный, запрос клиента принят и обрабатывается
200-299 - запрос клиента обработан успешно
300-399 - запрос клиента переадресован, необходимы дальнейшие действия
400-499 - запрос клиента является неполным
500-599 - ошибки сервера


некоторые типовые:

400 - Некорректный запрос
401 - Требуется авторизация (Authorization Required)
403 - Доступ запрещен (Forbidde)
404 - Страница не найдена (Not Found).
500 - Ошибка в скрипте, Внутренняя ошибка сервера (Internal Server Error)
502 - перегрузки на сервере и т.д.


Определения, используемые в тексте:

URI (Universal Resource Identifier) - универсальный системный идентификатор ресурса, абсолютный или относительный (не содержащий информации о схеме именования, например - закладки внутри ресурса; URI этого типа заканчиваются знаком "#", после которого следует идентификатор якоря) кодированный адрес его размещения в сети Web, включающий в себя схему именования механизма доступа к ресурсу (например, www, mailto, ftp), хост и путь от корневого каталога).


Перечень кодов статуса HTTP, подробно:

100 Continue - начальная часть запроса принята, и клиент может продолжать передачу запроса.

101 Switching Protocols - сервер выполняет требование клиента и переключает протоколы в соответствии с указанием, данным в поле заголовка Upgrade.


200 OK - запрос клиента обработан успешно, и ответ сервера содержит затребованные данные (они находятся в заголовке и/или теле сообщения).


201 Created - этот код состояния используется в случае создания нового URI.
Вместе с этим кодом результата, сервер выдает заголовок Location, который содержит информацию о том, куда были помещены новые данные.

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

203 Non-Authoritative Information - информация в заголовке содержимого взята из локальной копии или у третьей стороны, а не с исходного сервера и поэтому может быть неактуальной.

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

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

206 Partial Content - сервер возвращает лишь часть данных затребованного объема (частичный GET). Используется в ответе на запрос с указанием заголовка Range. Сервер должен указать в заголовке Content-Range байтовый диапазон, включенный в ответ. Особое внимание при работе с подобными ответами следует уделить кэшированию.

207 - сервер передаёт результаты выполнения сразу нескольких независимых операций. Они помещаются в само тело сообщения в виде XML-документа с объектом multistatus.

226 - IM использовано. Заголовок A-IM от клиента был успешно принят и сервер возвращает содержимое с учётом указанных параметров.


Переадресации – запрос не выполнен, необходимы дальнейшие действия клиента

300 Multiple Choices - затребованный URI обозначает более одного ресурса. Например, URI может обозначать документ, переведённый на несколько языков (чаще: русский, английский, немецкий, французский). В теле содержимого, возвращенном сервером, может находиться перечень более конкретных данных о том, как выбрать ресурс правильно.

301 Moved Permanently (перемещён на постоянку). Новое местонахождение затребованного документа указывается в заголовке Location. Во всех последущих запросах данного документа следует указывать этот новый URI.

302 Moved Temporarily (временно перемещён). Заголовок Location указывает на новое местонахождение. Сразу же после получения этого кода состояния клиент должен разрешить запрос при помощи нового URI, но во всех последующих запросах необходимо пользоваться старым URI. Например - при переходе через обработчик 404-й ошибки сразу на нужную страницу

303 See Other (Смотрите другой ресурс) - затребованный URI можно найти по другому URI (указанному в заголовке Location). Его следует выбрать методом GET по данному ресурсу.

304 Not Modified - это код ответа на заголовок lf-Modified-Since, если содержимое страницы не изменялось с момента последнего обращения к ней робота или браузера (с указанной в Cookie даты). Тело содержимого не посылается и клиент должен использовать свою локальную копию, что позволяет снизить нагрузку на сервер. Триста четвёртый код бывает, если робот поисковика вышел на страничку, которая не изменилась со времени его предыдущего визита. Иначе - сервер генерирует заголовок Last-Modified (время последнего изменения ресурса) и, с кодом 200, отдаёт интернет-страницу.

305 Use Proxy - доступ к затребованному URI должен осуществляться через proxy-сервер, указанный в заголовке Location.

307 Temporary Redirect - временное перенаправление (временный редирект). Затребованный ресурс был временно переведен на другой адрес, который необходимо прописать в Location


Неполные запросы клиента. От клиента требуется дополнительная информация.

400 Bad Request ("Неверный запрос") - означает, что сервер обнаружил в запросе клиента синтаксическую ошибку.

401 Unauthorized ("Требуется авторизация") - этот код результата, передаваемый с заголовком WWW-Authenticate, показывает, что пославший запрос пользователь не имеет необходимых полномочий и что при повторении запроса с указанием данного URI пользователь должен такие полномочия предоставить. Для доступа к документу необходимо ввести логин и пароль или уже быть зарегистрированным пользователем.

402 Payment Required ("Необходима оплата за запрос") - причиной такого сообщения может быть внутренняя ошибка на сервере.

403 Forbidden - запрос отклонен по той причине, что сервер не хочет (или не имеет возможности) ответить клиенту. Доступ к документу может быть запрещён в роботсе (директивами 'User-agent' и 'Disallow'), в файле .htaccess или в PHP-обработчике на самой интернет-странице. Если нужно, чтобы страница индексировалась поисковыми роботами - потребуется разрешить, на стороне сервера, доступ к ней.

404 Not Found ("Страница не найдена") - документ по указанному URI не существует, или на сайт пришли по кривой ссылке. Рекомендуется обязательно ставить свой обработчик этой ошибки - в виде страницы, содержащей ссылки навигации по сайту.

405 Method Not Allowed - этот код выдается с заголовком Allow и показывает, что метод, используемый клиентом или индексирующим роботом, на данном ресурсе не поддерживается.

406 Not Acceptable - ресурс, указанный клиентом по данному URI, существует, но не в том формате, который нужен клиенту. Вместе с этим кодом сервер выдает заголовки Content-Language, Content-Encoding и Content-Type.

407 Proxy Authentication Required - Proxy-сервер должен санкционировать запрос перед тем, как пересылать его. Используется с заголовком Proxy-Authenticate.

408 Request Time-out - этот код ответа означает, что клиент не передал полный запрос в течение некоторого установленного промежутка времени (который обычно задается в конфигурации сервера) и сервер разрывает сетевое соединение. Причиной может быть узкий, нестабильный канал связи.

409 Conflict - данный запрос конфликтует с другим запросом или с конфигурацией сервера. Информацию о конфликте следует возвратить в информационной части ответа.

410 Gone - данный код показывает, что затребованный URI больше не существует и навсегда удален с сервера.

411 Length Required - сервер не примет запрос без указанного в нем заголовка Content-Length.

412 Precondition Failed - результат вычисления условия, заданного в запросе одним или несколькими заголовками if, представляет собой "ложь".

413 Request Entity Too Large - сервер не будет обрабатывать запрос, потому что его тело слишком велико (больше того, что может обработать серв.)

414 Request-URI Too Long - сервер не будет обрабатывать запрос, потому что его URI слишком длинный.

415 Unsupported Media Type - сервер не будет обрабатывать запрос, потому что его тело имеет неподдерживаемый формат (MIME тип).

416 Requested Range Not Satisfiable - диапазон не может быть обработан Сервер отказывается обрабатывать запрос, потому что значение поля Range в заголовке запроса указывает на недопустимый диапазон байтов.

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

422 Unprocessable Entity - необрабатываемый элемент. Сервер не в состоянии обработать один (или более) элемент запроса.

423 Locked - заблокировано. Сервер отказывается обработать запрос, так как один из требуемых ресурсов заблокирован.

424 Failed Dependency - неверная зависимость. Сервер отказывается обработать запрос, так как один из зависимых ресурсов заблокирован.

426 Upgrade Required - требуется обновление. Сервер запросил апгрейд соединения до SSL, но SSL не поддерживается клиентом.


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

500 Internal Server Error - при обработке запроса на сервере один из его компонентов (например, CGI-программа) выдал аварийный отказ или столкнулся с ошибкой конфигурации. Может быть следствием неправильной настройки файла конфиг.-и (например, httpd.conf в Apache).
Неверный синтаксис .htaccess - записан в формате Windows, вместо UNIX.

501 Not Implemented - клиент запросил выполнение действия, которое сервер выполнить не может (правила mod_security для обеспечения безопасности сервера).

502 Bad Gateway - сервер (или proxy-сервер) получил недопустимые ответы другого сервера (или proxy-сервера) или тот разорвал соединение, не дав никакого ответа или не удалось установить соединение. Ошибки 502 - 504 могут быть связаны с перегрузкой сервера. Обычно, в таких случаях советуют подождать, обновить страницу - F5.

503 Service Unavailable - такая ошибка возникает при временной перегрузке сервера (слишком большой объём трафика или чрезмерно частые запросы) или его отключения на техническое обслуживание. 503-й код означает, что данная служба временно недоступна, но в будущем доступ к ней может быть восстановлен. Причиной может быть плохое железо и ненастроенное программное обеспечение или плохие соседи на хостинге - тяжёлые сайты с файлообменниками и жирными форумами.
Если сервер знает, когда произойдет восстановление работоспособности, может быть также выдан заголовок Retry-After.

504 Gateway Time-out - этот ответ похож на 408 (Request Time-out) , за исключением того, что шлюз или уполномоченный сервер превысил лимит времени.

505 HTTP Version not supported - сервер не поддерживает версию протокола HTTP, использованную в запросе.

507 Insufficient Storage - недостаточно места на диске, поэтому сервер не может обработать запрос.

510 Not Extended - запрашиваемое расширение не поддерживается.



Рекомендации, как настроить сервер

Явное задание индексного файла (главной страницы) в каталоге, где размещён .htaccess:
DirectoryIndex index.php main.html

чтобы код PHP обрабатывался в файлах с расширением .htm (.html)
необходимо добавить в файл .htaccess следущие две строчки:
RemoveHandler .htm .html
AddType application/x-httpd-php .htm .html


Файл robots.txt – размещается в корневом каталоге
Файлы .htaccess – в корневом каталоге и в подкаталогах

 

Статистика посещаемости сайта

При определении географии посетителя сайта – данные, получаемые с помощью
(new Date()).getTimezoneOffset(); достаточно надёжны, по сравнению с IP-таргетингом и показывают временную зону локального компьютера, а не у провайдера на сервере (актуально для посещений с мобильных устройств).

Рефереры. Для декодирования поисковых запросов из utf8 в кодировку 1251 (в кириллицу):
// PHP версии 5 и выше, с библиотекой php_iconv.dll - включить раскомментировав
// строку ;extension=php_iconv.dll в файле PHP.INI, в каталоге Windows
$text_1251 = @iconv("UTF-8","CP1251",$text_utf8);


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

 

Настройка на сайте Last-Modified, Cache-Control и Expires

Даже если страницы сайта созданы в виде простого HTML, есть возможности задать им нужные параметры ответа сервера, прописав их в файле .htaccess
Пример

<ifModule mod_headers.c>
<FilesMatch "\.(ico|js)$">
Header append Cache-Control "public"
ExpiresActive On
ExpiresDefault "access plus 1 year"
</FilesMatch>
<FilesMatch "\.(html|jpg|png|gif)$">
Header set Expires "Thu, 01 Jan 1970 01:01:01 GMT"
Header set Cache-Control "max-age=3600, public, must-revalidate"
Header Set Last-Modified "Thu, 01 Jan 1970 02:02:02 GMT"
</FilesMatch>
<FilesMatch "page\.html$">
Header set Expires "Thu, 01 Jan 1970 03:03:03 GMT"
Header set Cache-Control "max-age=7200, public, must-revalidate"
Header Set Last-Modified "Thu, 01 Jan 1970 04:04:04 GMT"
</FilesMatch>
<FilesMatch "page2\.html$">
Header set Expires "Thu, 01 Jan 1970 05:05:05 GMT"
Header set Cache-Control "max-age=10800, public, must-revalidate"
Header Set Last-Modified "1970-01-31"
</FilesMatch>
</ifModule>

- в примере, вначале, задаются парамерты для всех страниц,
соответствующих двум маскам (html|jpg|png|gif) и (ico|js),
и индивидуально - для страниц page.html и page2.html


Если на сайте есть PHP-страницы, то в первых строчках кода страниц, можно задать заголовки header:

$last-modified = getlastmod();
header("Cache-Control: public, must-revalidate, max-age=3600");
header("Expires: Thu, 01 Jan 1970 05:05:05 GMT");
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $last-modified).' GMT');

- в ответе сервера, на запрос страницы, будут эти значения заголовков header, а не заданные в .htaccess


 

Проверка орфографии

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

Есть много нюансов. Например, знак "минус", в тексте, воспринимается некоторыми программами-чекерами – как ошибка, если, в конкретном случае, нет словарного эквивалента с дефисом. Возможно, что и поисковики понижают, из-за этого, весовой коэффициент интернет-страницы, при её ранжировании. Для исправления, замены знака "минуса" на типографское тире (узкое или широкое), в текстовом редакторе производится замена символов, автоматически или пошагово – в ручном режиме.

" - " => " — " (с пробелами, по бокам)

Автоматические сервисы проверки правописания, пока ещё, не совершенны. К примеру, на сегодняшний день, они не могут находить все ошибки пунктуации в тексте.

 

 

 

"Полезности"

Три способа редакции файла .htaccess (Unix – формат) в среде Windows
"перевод строки" через [ 0x0A ] (Unix – формат), вместо [ 0 x 0D   0 x 0A ] (возврат каретки и переход на следующую строку (CR/LF) – в DOS и Windows)

1. Из ком.строки (работает и в Windows Commander)

copy con .htaccess

набор с переходом на нову строку через Alt+10 (в правой цифровой панели)
при выходе – нажать F6 и Enter
в итоге – создан .htaccess

2. В текстовом редакторе FAR – редактирование с переводом строки через Alt+10

3. В FAR – после редактирования в обычном режиме (с переводом строки энтером) – "сохранить как" (Shift+F2) -> "Unix format"

Файл .htaccess необходимо сохранять в кодировке UTF-8 без сигнатуры BOM. Если в файле .htaccess используются только ASCII-символы, только латиница, тогда можно использовать, для сохранения, и формат ANSI.

 

Редактирование текста или таблицы вертикальными (прямоугольными) блоками
на примере FAR (диспетчера файлов):
Alt+Shift+Стрелка – выделение вертикального блока
Ctrl+U – снять пометку с блока
Ctrl+C – скопировать в Буфер Обмена.
Ctrl+V – вставить из Буфера
Ctrl+D – удалить что выделено.
Ctrl+M – перенести / сдвинуть блок в текущую позицию курсора.

Shift+Стрелка – выделение поточного / строчного блока.

Ins – включение / отключение режима курсора – "сдвиг текста" / стирание.

 

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

 

[ на главную страницу ]