Unit http web-сервер доступа к торговому оборудованию через json запросы по http (ajax/rest) протоколу

ISPConfig


ISPConfig устанавливается не так, как все описанные выше панели управления: сначала устанавливается все необходимое ПО (веб-сервер, СУБД, FTP, почтовая система), и только затем с помощью специального скрипта устанавливается сама панель управления. С подробной инструкцией по ручной установке и настройке под различные конфигурации и дистрибутивы можно ознакомиться на сайте howtoforge.com (см. также более упорядоченный вариант).

Такой подход дает возможность поддерживать большее количество дистрибутивов, а также реализовать функции, недоступные для большинства ПУ. Например, имеется возможность работы в своеобразном кластере из нескольких серверов, на которых установлен ISPConfig; при этом один из них является главным и управляет всеми остальными. В таком режиме работы при создании пользователя и домена можно сразу указать, на каком именно сервере будут храниться его данные. Можно также разделить функции между серверами: один будет отвечать за работу БД, другой — за основной веб-сервер, выполняющий динамическую обработку запросов, а третий — за фронтенд, принимающий запросы пользователей.

Так как подготовка среды осуществляется еще до установки самой панели, ISPConfig можно установить на систему, где уже работает сервер Nginx либо Apache. ISPConfig может работать с любым из этих серверов, которые к тому же можно настроить удобным для пользователя способом (например, Nginx + php-fpm). Поддержку связки Nginx + Apache можно настроить с помощью специального модуля.

Подготовка веб-сервера и его окружения — задача рутинная и довольно непростая, но ее можно ускорить и автоматизировать с помощью специальных скриптов. На сервер с OC Debian или Ubuntu ISPConfig можно установить c помощью cкрипта ISPConfig3-Debian-Installer. Скрипт работает как с сервером Apache, так и с Nginx. Существует и скрипт для работы со связкой Nginx + Apache.

К числу несомненных достоинств панели относятся поддержка кластерного режима и стандарта APS — функции, которые встречаются в основном у проприетарных продуктов.

Очевидным недостатком ISPConfig является сложность подготовки сервера к установке и ручная настройка всех компонентов. И хотя на на сайте howtoforge.com представлены подробные пошаговые инструкции, всех сложностей установки это не снимает.

Настраиваем 302 редирект в .htaccess

Создание 302 редиректа в файле .htaccess доступно только для пользователей веб-сервера Apache.

Самый простой вариант создания 302 редиректа в .htaccess умещается в 2 строки:

RewriteEngine on
Redirect 302 /old-url https://dh-agency.ru/new-url

А вот уже пример более сложной переадресации, которая распространяется на весь сайт:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.dh-agency.ru 
RewriteRule ^(.*)$ https://dh-agency.ru /$1 

Как Вы уже догадались, процедура проставления 302-го редиректа очень схожа с проставлением 301-го. Необходимо лишь поменять код (R=301 на R=302).

Так как ранее мы уже описывали создание редиректа 301 в .htaccess, то подробно не будем касаться этой темы еще раз.

Gradle dependencies

In gradle you can use NanoHTTPD the same way because gradle accesses the same central repository:

Just replace the name with the artifact id of the module you want to use and gradle will find it for you.

Develop your own specialized HTTP service

For a specialized HTTP (HTTPS) service you can use the module with artifactId nanohttpd.

Here you write your own subclass of org.nanohttpd.NanoHTTPD to configure and to serve the requests.

Develop a websocket based service

For a specialized websocket service you can use the module with artifactId nanohttpd-websocket.

Here you write your own subclass of org.nanohttpd.NanoWebSocketServer to configure and to serve the websocket requests. A small standard echo example is included as org.nanohttpd.samples.echo.DebugWebSocketServer. You can use it as a starting point to implement your own services.

Develop a custom HTTP file server

For a more classic approach, perhaps to just create a HTTP server serving mostly service files from your disk, you can use the module with artifactId nanohttpd-webserver.

The included class org.nanohttpd.SimpleWebServer is intended to be used as a starting point for your own implementation but it also can be used as is. Starting the class as is will start a HTTP server on port 8080 and publishing the current directory.

generating an self signed SSL certificate

Just a hint how to generate a certificate for localhost.

This will generate a keystore file named ‘keystore.jks’ with a self signed certificate for a host named localhost with the IP address 127.0.0.1 . Now
you can use:

Before you start the server to make NanoHTTPD serve HTTPS connections, when you make sure ‘keystore.jks’ is in your classpath.

Thank you to everyone who has reported bugs and suggested fixes.

Подгонка веб-интерфейса «под себя»

Мы предусмотрели штатный механизм изменения веб-страниц
веб-интерфейса AVReg с сохранением ваших изменений при обновлениях
пакета .

В каталоге «» вы можете
разместить свои колонтитулы почти к любой странице веб-интерфейса
AVReg:

  • верхний (HEADER) — шаблон

  • нижний (FOOTER) — шаблон

где:

  • RELDIR — часть пути файла URL целевой страницы;
  • BASE — имя файла целевой страницы без
    расширения.

Пример:

целевая страница «/avreg/online/view.php»
RELDIR = «online»
BASE   = «view»
HEADER = «online/view_header.inc.php»
FOOTER = «online/view_footer.inc.php»

В HEADER и FOOTER вы можете добавлять произвольные прямоугольные
блоки с текстом и изображениями. В HEADER вы можете
добавлять/переопределять CSS-стили, добавлять свои
скрипты и даже делать автоматические перенаправления на другие
страницы (только с главной страницы).

Если вам нужно полностью переопределить
страницу, разместите ваш контент в HEADER файле и поместите вызов
php-функции в конце кода.

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

Серверные ошибки

Коды серверных ошибок (5xx)

  • Код ошибки 500 Internal Server Error Сервер столкнулся с непредвиденным условием, которое не позволяет ему выполнить запрос.
  • Код ошибки 501 Not Implemented Сервер не поддерживает функциональность, необходимую для выполнения запроса.
  • Код ошибки 502 Bad Gateway Сервер, действуя в качестве шлюза или прокси-сервера, получил недопустимый ответ от вышестоящего сервера к которому он обратился для выполнения запроса.
  • Код ошибки 503 Service Unavailable Сервер в настоящее время не в состоянии обработать запрос из-за временной перегрузки или техобслуживания.
  • Код ошибки 504 Gateway Timeout Сервер, действуя в качестве шлюза или прокси-сервера, не получил своевременного ответа от вышестоящего сервера, указанного в URI (например, HTTP, FTP, LDAP) или какого-либо другого вспомогательного сервера (например, DNS), который был необходим для выполнения запроса.
  • Код ошибки 505 HTTP Version Not Supported Сервер не поддерживает или отказывается поддерживать версию протокола HTTP, который был использован в сообщении запроса.

DNS ошибки

  • Код ошибки Unknown Host DNS-сервер не может понять имя хоста, указанное в запросе.
  • Код ошибки Private Network Address Имя хоста ведет к частному сетевому адресу (private network address).

TCP ошибки

Код ошибки TCP Connection Failed DNS обработаны успешно, но не удалось установить TCP соединение с обработанным адресом. Это может быть связано с отказом в соединении или 30-ти секундной задержкой. Узнать больше про TCP

HTTP ошибки

Код ошибки Redirect Loop Detected Достигнуто максимально допустимое количество перенаправлений (редиректов). Мы будем следовать не более чем по 5-ти редиректам до разрыва петли. Узнать больше про циклические редиректы

Другие ошибки

Код ошибки Node Unavailable В данный момент не удалось подключиться к региональному узлу. Эта ошибка не связана с обрабатываемым URL.

Инструкция по установке драйвера для 1с:

Установка сертификата
1. Загрузите сертификат: Сертификат разработчика
2

Установите сертификат в хранилище локальной машины, в доверенные корневые центры сертификации
ВНИМАНИЕ!: Сертификат нужно устонавливать только на тех машинах где будет использоватся Web-клиент!
Загрузка драйвера в базу 1с

1. Загрузите драйвер: Драйвер KkmServer для фискальных регистраторов
2

Запустите конфигурацию 1С под тонким клиентом
3. Откройте окно настройки и подключения оборудования.
4. В панели команд окна (сверху) нажмите кнопку «Драйверы оборудования..»
5. В открывшемся окне нажмите кнопку «Добавить новый драйвер из файла»
6. В окне выбора файлов выберите скаченный файл «DriverKkmServer.zip»
7. Нажмите кнопку «Записать».
Установка драйвера на машинах

ВНИМАНИЕ!: следующие разделы нужно повторять для каждого компьютера где предполагается использовать драйвер!
1. Запустите конфигурацию 1С на машине где предполагается печатать чеки (через тонкий клиент или через браузер IE или Crome)
2. Откройте окно настройки и подключения оборудования.
3. В панели команд окна (сверху) нажмите кнопку «Драйверы оборудования..»
4. Откройте созданный драйвер «KkmServer.ru: Фискальные регистраторы»
5. Установите драйвер: Кнопка «Функции»->»Установить драйвер»
Создание ККМ у пользователей

ВНИМАНИЕ!: следующие разделы нужно повторять для каждого рабочего места (связка компьютер-пользователь)!
1. Откройте окно настройки и подключения оборудования.
2. Выберите «крыжик» Фискальные регистраторы.
3. Нажмите кнопку «Создать.»
4. В открывшемся окне выберите в поле «Драйвер оборудования» = «KkmServer.ru: Фискальные регистраторы»
5. Нажмите кнопку «Записать».
6. Нажмите кнопку «Настроить».
7. В открывшемся окне выберите:
Настройка доступа через KKM Web-сервер

Для настройки работы через web-server KKM :
1. В поле «Адрес Сервера» укажите путь к установленному серверу, например: «http://localhost:5893»
2. В поле «Имя пользователя ККМ Сервера» укажите имя пользователя как указали в настройках сервера, по умолчанию «User»
3. В поле «Пароль пользователя ККМ Сервера» укажите пароль пользователя как указали в настройках сервера, по умолчанию «»
4. В поле «Тип устройства» укажите номер устройства как настроили на сервере.
Переустановка драйвера

Для переустановки драйвера:
1. Удалите драйвер («Панель управления» — «Программы и компоненты» —
«KkmServer.ru: Drivers KKM for Internet Explorer» или «KkmServer.ru: Drivers KKM for Chrome» — удалить
2. Скачайте с сайта новый драйвер.
3. Загрузите новый драйвер в конфигурацию.
4. Установите драйвер заново на всех нужных машинах

Web-сервер

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

Итерфейс создаётся средствами HTML и JavaScript, размещается на SD-карте модуля PL302, исполняется браузером и взаимодействует с PL302 посредством AJAX-запросов. Работа с переменными осуществляется по их символьным именам, описанным в таблице опроса.

PL302 в локальной и глобальной сетях

Таким образом предоставляются широкие возможности для отображения информации, ограниченные только возможностями технологий HTML+JavaScript и размером SD-карты. Например, можно создать интерфейс для диагностики и конфигурирования оборудования, интерфейс для управления «умным домом», разместить справочные материалы и другие файлы для скачивания, ссылок на внешние сайты и т.п. 

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

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

2 Services

The webserver offers several services which can be accessed based on the path specified in the HTTP request. The webserver is accessible through HTTP using the following URL

http://:

2.1 Webinterface

When no path is specified or the specified path does not correspond to any of the available services the webserver will try to locate the requested path/file in the configured Web interface.

2.2 Webinterface addons /addons

Requesting the /addons path will show a HTML page with a list of all installed and available webinterface addons. By appending the identifier of one of the webinterface addons to the /addons path it is possible to access all the available webinterfaces without configuring them in the settings.

2.3 Image cache /image

The image cache service provides access to cached images (thumbnails, fanart, …) of media items. The image URL (image://) returned by JSON-RPC has to be URL encoded before appending it:

http://:/image/

2.4 JSON-RPC API /jsonrpc

The JSON-RPC API service provides access to the JSON-RPC API using HTTP POST or GET. Requesting the /jsonrpc path without any additional POST or GET data will return the full of the JSON-RPC API in JSON schema format.

2.5 Virtual File System /vfs

The Virtual File System (VFS) service provides access to files accessible to Kodi through its VFS. The VFS path has to be URL encoded before appending it:

http://:/vfs/

As of XBMC v12 Frodo, in an effort to make the Virtual File System service more secure (in Eden and before it allowed access to literally any file on the local hard disc and on network shares accessible to Kodi) the access has been limited to files within directories that have been specified by the user as sources (video, music, files, programs) in Kodi.

Инструкция по настройке ККТ Атол:

Проверка и настройка канала обмена:
ККТ ‘Атол’ может быть подключен через следующие интерфейсы (типы соединений):
Ehternet/WiFi: сеть (Предпочтительный способ подключения)
USB-to-COM: эмуляция СОМ порта через USB
Внимание! При работе по ‘USB-to-COM’ необходимо установить Атоловские драйвера USB-COM.
Иначе не будет работать EoU, и не будет связи с ОФД!
Для переключения интерфейса подключения надо сделать следующие:
1. Выключить питание
2

Нажать и удерживать единственную кнопку ‘Прогон чековой лены’
3. Включить питание (не отпуская кнопки)
4. Дождаться 5 гудков: 1 гудок сразу, длинная пауза, 4 гудка через паузу
5. После 5 гудка отпустить кнопку
ККТ напечатает меню:
1. Выход
2. Канал обмена
3. …
Нажмите два раза кнопку (вход в меню ‘Канал обмена’)
ККТ напечатает меню:
1. Выход
2. RS-232 (COM порт)
3. USB
4. Ethernet
5. Bluetooth
6. WiFi
Нажмите кнопку с количеством соответствующему требуемую номеру канала обмена
Нажмите кнопку 1 раз для записи параметра и выхода
Выключите-включите ККТ
Установка «USB-To-COM» драйверов:
Если ККТ подключается через USB-to-COM:
1. Зайдите в «Диспетчер устройств» набрав «Диспетчер устройств» в строке поиска windows.
2. В диспетчере разверните ветку «Порты (СОМ и USB)»
3. Проверьте что ККТ Атол создало 2 СОМ порта.
4. Если порт один то удалите СОМ порт Атола вместе с драйверами:
5. Если после этого не появились СОМ порты вызовети контекстное меню и в нем выберите «Обновить конфигурацию оборудования».
6. Имена СОМ портов должны иметь в имени слово «Атол», если это не так необходимо установить Атоловские драйвера:
    При установке укажите путь к папке драйверов атола: «C:\Program Files (x86)\ATOL»

Вам необходимо зайти на страницу настроек:
1. Если у Вас «Расширение» то действуйте как на картинке:
2. Если у Вас KkmServer или UnitServer то действуйте как на картинке:
3. Или можно зайти в настройки набрав URL в строке браузера (Если настройки «по умолчанию»):
    Расширение: http://localhost:5890 или https://localhost:5890
    KkmServer: http://localhost:5893 или https://localhost:5893
    UnitServer: http://localhost:5894 или https://localhost:5894
Добавление устройства в KkmServer/Расширение:
1. Сбоку в меню выберите «Настройка оборудования».
Под меню выберите «Добавить устройство».
В открывшейся странице выберите «Фискальный регистратор» и «Атол: ККТ…..».
Настройка устройства:
1. На странице настроек выберите:
В поле «Тип соединения» выберите или СОМ или Ethernet.
2. Если «Тип соединения» — СОМ то:
В поле «СОМ порт» выберите 1-вый из 2 СОМ-портов Атола.
Нажмите кнопку «Сохранить настройки».
Если выбранный порт правильный то после перезагрузки страницы появится наименование модели ККТ.
Если наименование модели не появилось то выберите 2-рой СОМ-порт Атола и сохраните настройки.
Как только настроите СОМ-порт нужно указать СОМ-Порт для программы связи ККТ с ОФД.
Это должен быть Другой/Отличный СОМ-порт Атола от того, что выбран в поле «СОМ порт».
Укажите это СОМ-порт в поле «COM порт PPP Ethernet Over Usb»
Нажмите кнопку «Сохранить настройки».
Проверить что связь ККТ с ОФД работает можно по логам в папке «C:\ProgramData\ATOL\EoU\logs».
3. Если «Тип соединения» — Ethernet то:
В поле «IP адрес/имя хоста:» укажите IP адрес ККТ Атол.
Узнать IP адрес ККТ Атол можно так:
    Выключите/включите ККТ.
    ККТ при включении напечатает присвоенный ей по DHTP IP адресс.

Features

Core

  • Only one Java file, providing HTTP 1.1 support.
  • No fixed config files, logging, authorization etc. (Implement by yourself if you need them. Errors are passed to java.util.logging, though.)
  • Support for HTTPS (SSL).
  • Basic support for cookies.
  • Supports parameter parsing of GET and POST methods.
  • Some built-in support for HEAD, POST and DELETE requests. You can easily implement/customize any HTTP method, though.
  • Supports file upload. Uses memory for small uploads, temp files for large ones.
  • Never caches anything.
  • Does not limit bandwidth, request time or simultaneous connections by default.
  • All header names are converted to lower case so they don’t vary between browsers/clients.
  • Persistent connections (Connection «keep-alive») support allowing multiple requests to be served over a single socket connection.

Webserver

  • Default code serves files and shows (prints on console) all HTTP parameters and headers.
  • Supports both dynamic content and file serving.
  • File server supports directory listing, and .
  • File server supports partial content (streaming & continue download).
  • File server supports ETags.
  • File server does the 301 redirection trick for directories without .
  • File server serves also very long files without memory overhead.
  • Contains a built-in list of most common MIME types.
  • Runtime extension support (extensions that serve particular MIME types) — example extension that serves Markdown formatted files. Simply including an extension JAR in the webserver classpath is enough for the extension to be loaded.

CORS argument examples

  • : note the double quotes so that the two URLs are considered part of a single argument.

1 Enabling the webserver

The webserver is disabled by default and has to be manually enabled by the user. This can be done in . The settings allow to specify a custom port number and an optional username and password for HTTP’s Basic Access Authentication. Furthermore a Web interface can be chosen which will be used when accessing the webserver without any specific path.

1.1 Hints

  • If the webserver fails to start make sure you use a port that is not blocked by your firewall and is not used by any other process running on the same machine. If there is another webserver like Apache running on the same machine it is very likely that port 80 (HTTP default port) is already used.
  • On Linux, ports below 1024 require super-user privileges and are therefore not available to Kodi. For Linux, you must change the port number to a port number above 1024 that’s not in use on your computer, like 1485, 1588 or 1066 for example. Those 3 port numbers have no popular uses registered with IANA, the Internet Assigned Numbers Authority. Remote control via HTTP will see the web server with whatever port you choose.
  • For use in a virtual hosts environment in Apache, the following directives can be used:
#Kodi configuration, replace kodiserver with the actual server name.
DocumentRoot /
LogLevel emerg
ErrorLog /var/log/apache2/kodiserver_error.log
CustomLog /var/log/apache2/kodiserver_access.log "vhost_combined"
ProxyPass / http://kodiserver:8080/ nocanon
ProxyPassReverse / http://kodiserver:8080/
"/">
allow from all
Options +Indexes

ServerName servername
AllowEncodedSlashes On

Allow EncodedSlashes is necessary to have webpages work properly.

nocanon is used to disable url encoding use this if images are not showing in the webbrowser.

Архивирование данных

Значения переменных, включённые в перечень опроса могут быть сохранены в архиве на SD-карте. Необходимость архивирования настраивается в таблице опроса даных. Добавление новых отсчётов в архив выполняется единовременно для всех переменных, через настраиваемые промежутки времени (от 1 до 65535 сек.)

Архивные данные сохраняются на карте памяти micro-SD в файлы формата CSV (текстовый файл с разделителями), поэтому они легко могут быть импортированы в большинство программ для последующего анализа. Файл данных может быть перенесён на SD-карте или получен через web-интерфейс с помощью браузера. Кроме того, PL302 может передавать отдельные выборки архивных данных в ответ на http-запросы браузера. Эта возможность может использоваться в работе пользовательского интерфейса, например для визуализации данных в виде графиков.

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

Сервер сбора данных

Модуль PL302 позволяет настроить перечень переменных, которые необходимо циклически опрашивать, отправляя запросы на Modbus-устройства. Значения переменных, полученные от устройств, сохраняются в локальной базе PL302 и циклически обновляются.

В случае запроса клиентом переменных, включённых в перечень опроса, нужные переменные извлекаются из базы без обращения к Modbus-устройству. Это позволяет значительно сократить время ответа на запросы по Modbus TCP. Если запрошенная переменная отсутствует в перечне и для неё не настроен сбор данных, PL302 выступает в роли шлюза, т.е. транслирует запрос на шину RS-485.

Modbus-устройства могут быть подключены как к порту RS-485 по протоколу Modbus RTU, так и к порту Ethernet по протоколу Modbus TCP.

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

Таблица опроса данных

Vesta CP

— Для установки достаточно скачать скрипт и запустить его на выполнение. Далее все происходит в автоматическом режиме. При необходимости подключаются дополнительные репозитории. Если какие-либо нужные компоненты уже были установлены ранее, то в директории /root/vst_install_backup будут сохранены резервные копии всех конфигурационных файлов, которые были затронуты при их установке.

От всех рассмотренных выше панелей Vesta CP отличается во-первых, тем, что в ней все операции, выполняемые через браузер, можно также выполнять и через консоль, а во-вторых — тем, что в ней используется модуль Apache mod_ruid2. Все консольные утилиты располагаются в директории /usr/local/vesta/bin/; иx имена начинаются с префикса «v-», например v-add-user, v-change-database-password и т.д.

Уже упомянутый выше модуль Apache mod_ruid2 заслуживает отдельного рассмотрения. О нем можно написать целую статью; здесь мы ограничимся лишь кратким описанием, но этого будет вполне достаточно, чтобы понять специфику Vesta CP. Когда на одном сервере сосуществуют множество пользователей, а  все их сайты обслуживаются только одним веб-сервером, возникает проблема разграничения прав при исполнении php-скриптов. Обычно эта проблема решается путем исполнения скриптов через suexec и suphp. Преимуществом mod_ruid2 является то, что он работает напрямую с mod_php, что обеспечивает более высокую скорость выполнения.

Также для mod_ruid2 можно указать дополнительную группу (например, ту, от имени которой запущен процесс Apache) — это иногда может потребоваться для установки некоторых CMS.
У этого модуля есть существенный недостаток: при наличии уязвимостей через него возможно теоретически получить root-доступ. Сам разработчик mod_ruid2 для обеспечения безопасности предлагает использовать патчи ядра grsecurity.
Несмотря на то, что этот модуль находится еще в несколько «сыром» состоянии, он становится все более распространенным и популярным. Об этом может свидетельствовать хотя бы то, что он уже используется в панели CPanel в качестве одного из обработчиков php.

После установки ничего настраивать дополнительно не нужно, требуется лишь указать основные NS-серверы. По умолчанию при создании сайта используется веб-сервер Apache, поддерживается также связка Apache + Nginx:

Типы кодов ошибок и состояния HTTP

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

  • 100-199: информационный статус;
  • 200-299: статус успешного запроса;
  • 300-399: статус редиректа;
  • 400-499: ошибки клиента;
  • 500-599: ошибки сервера.

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

1. HTTP 200 «OK»

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

2. Ошибка HTTP 404 «Не найдено»


Сервер не смог найти запрошенную страницу, файл или другой ресурс. Ошибка HTTP 404 указывает на то, что сетевое соединение между клиентом и сервером было успешно выполнено. Возникает, когда пользователь ввел в браузере неправильный URI, или администратор сервера удалил файл, не настроив редирект на новое местоположение. Чтобы устранить эту проблему, пользователи должны набрать правильный URL-адрес.

3. Ошибка HTTP 500 «Внутренняя ошибка сервера»


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

4. Ошибка HTTP 503 «Служба недоступна»


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

5. HTTP 301 «Перемещен навсегда»


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

6. HTTP 302 «Найдено» или «Перемещено временно»

HTTP код 302 предназначен для случаев, когда ресурс перемещен временно, а не постоянно. Администратор сервера должен использовать HTTP 302 только в течение коротких периодов обновления (изменения) контента. Браузеры автоматически выполняют редирект 302, как и для кода 301. В версии HTTP 1.1 для указания временных редиректов был добавлен новый код 307.

7. HTTP 400 «Неверный запрос»


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

8. HTTP 401 «Не авторизованный»


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

9. HTTP 100 «Продолжить»


Добавленный в версию 1.1 протокола код HTTP ответа 100 был разработан для более эффективного использования пропускной способности сети. Он позволяет серверам подтверждать готовность принимать большие запросы. Протокол Continue позволяет клиенту HTTP 1.1 отправлять небольшое специально сконфигурированное сообщение, запрашивающее ответ сервера с кодом 100, а затем дожидаться ответа до отправки запроса на дальнейшие действия. Клиенты и серверы HTTP 1.0 не используют этот код.

10. HTTP 204 «Отсутствует контент»


Сервер отправил ответ на запрос клиента, который содержит только информацию заголовка (то есть не содержит тела сообщения). Клиенты могут использовать HTTP код 204 для более эффективной обработки ответов сервера, избегая, например, ненужного обновления страниц.

11. HTTP 502 «Неверный шлюз»


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

Данная публикация представляет собой перевод статьи «HTTP Error and Status Codes Explained» , подготовленной дружной командой проекта Интернет-технологии.ру

Project structure

NanoHTTPD project currently consist of four parts:

  • – Fully functional HTTP(s) server consisting of one (1) Java file, ready to be customized/inherited for your own project.

  • – Simple examples on how to customize NanoHTTPD. See HelloServer.java for a killer app that greets you enthusiastically!

  • – Websocket implementation, also in a single Java file. Depends on core.

  • – Standalone file server. Run & enjoy. A popular use seems to be serving files out off an Android device.

  • – Standalone nano app server, giving a servlet like system to the implementor.

  • – integration of the apache common file upload library.

Установка

После скачивания и запуска файла предстоит пройти несколько шагов. На первом экране программы установки приводятся типовые  фразы, что надо бы закрыть другие приложения и нажмите кнопку «Next» (Далее) для продолжения. Нажимаем и видим текст лицензии GNU, для согласия с которой надо нажать кнопку «I Agree» (Согласен). На следующем экране (рис. 1) вы должны указать папку, в которую будет установлен комплект. По умолчанию стоит C:\AppServ, и если это местоположение устраивает, жмем «Next», либо меняем путь на желаемый.  

Рис. 1. Место для сохранения файлов комплекта

При желании вы можете установить только необходимые компоненты, но из-за того что выбор небогат, нужны все (рис. 2). Поэтому нажимаем «Next» без внесения каких-либо изменений.

Рис. 2. Выбор компонент

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

Рис. 3. Параметры веб-сервера Apache

На следующем экране предлагают ввести пароль для доступа к базам MySQL (рис. 4). Этот пункт крайне важен, поэтому запишите пароль где-нибудь отдельно, в ближайшее время он нам еще пригодится. В поле введите пароль и повторите его для проверки в соседнем поле. Больше никаких изменений делать не потребуется.

Рис. 4. Настройки MySQL

Все готово для установки, поэтому жмем кнопку «Install» и ожидаем, когда программа перепишет файлы и настроит необходимые службы. Окончательно вы можете указать, запустить Apache и MySQL после нажатия на кнопку «Finish» (Готово) или нет (рис. 5).

Рис. 5. Завершение установки

Если вы оставили галочки включенными как на приведенном рисунке, после завершения установки Apache и MySQL будут запущены как службы Windows. Для проверки работоспособности достаточно в адресной строке любого браузера набрать localhost. Если все в порядке, вы увидите страницу, показанную на рис. 6.

Рис. 6. Страница по умолчанию

Ссылка на основную публикацию