WebServer, скрипт создающий веб-интерфейс для хаба |
Здравствуйте, гость ( Вход | Регистрация )
WebServer, скрипт создающий веб-интерфейс для хаба |
5.3.2010, 23:52
Сообщение
#21
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Нужна функция отсылки заголовка. Аналог php функции header, так как я, например, хочу в заголовке отправить: "Content-Type: text/plain; charset=windows-1251"
И ещё нужно добавить очень важный тип отправки файлов: js |
|
|
6.3.2010, 15:10
Сообщение
#22
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Пока заголовки берутся из подборок, к примеру:
Код tServerInfo[1] = new.. -- usual если хочешь - сделай свою, с функцией учту.
tServerData.Server..new.. tServerData.ContentType..new.. tServerData.Expires..new.. tServerData.CacheControl..new.. tServerData.Pragma..new.. tServerData.Connection..new.. new |
|
|
8.3.2010, 16:35
Сообщение
#23
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Разбор полётов.
Сравнение полей PHP переменной $_SERVER с полями Lua таблицы SERVER. Обозначение соответствия: php <=> lua Заголовки: Код $_SERVER["HTTP_ACCEPT"] <=> SERVER["tHeaders"]["Accept"] $_SERVER["HTTP_ACCEPT_LANGUAGE"] <=> SERVER["tHeaders"]["Accept-Language"] $_SERVER["HTTP_ACCEPT_ENCODING"] <=> SERVER["tHeaders"]["Accept-Encoding"] $_SERVER["HTTP_ACCEPT_CHARSET"] <=> SERVER["tHeaders"]["Accept-Charset"] $_SERVER["HTTP_HOST"] <=> SERVER["tHeaders"]["Host"] $_SERVER["HTTP_USER_AGENT"] <=> SERVER["tHeaders"]["User-Agent"] $_SERVER["HTTP_CONNECTION"] <=> SERVER["tHeaders"]["Connection"] $_SERVER["HTTP_KEEP_ALIVE"] <=> SERVER["tHeaders"]["Keep-Alive"] $_SERVER["HTTP_COOKIE"] <=> SERVER["tHeaders"]["Cookie"] $_SERVER["HTTP_REFERER"] <=> SERVER["tHeaders"]["Referer"] $_SERVER["HTTP_TE"] <=> SERVER["tHeaders"]["TE"] $_SERVER["HTTP_FROM"] <=> SERVER["tHeaders"]["From"] $_SERVER["HTTP_EXPECT"] <=> SERVER["tHeaders"]["Expect"] $_SERVER["HTTP_RANGE"] <=> SERVER["tHeaders"]["Range"] $_SERVER["HTTP_AUTHORIZATION"] <=> SERVER["tHeaders"]["Authorization"] $_SERVER["HTTP_IF_MATCH"] <=> SERVER["tHeaders"]["If-Match"] $_SERVER["HTTP_IF_MODIFIED_SINCE"] <=> SERVER["tHeaders"]["If-Modified-Since"] $_SERVER["HTTP_IF_MODIFIED_SINCE"] <=> SERVER["tHeaders"]["If-None-Match"] $_SERVER["HTTP_IF_RANGE"] <=> SERVER["tHeaders"]["If-Range"] $_SERVER["HTTP_IF_UNMODIFIED_SINCE"] <=> SERVER["tHeaders"]["If-Unmodified-Since"] $_SERVER["HTTP_MAX_FORWARDS"] <=> SERVER["tHeaders"]["Max-Forwards"] $_SERVER["HTTP_X_FORWARDED_FOR"] <=> SERVER["tHeaders"]["X-Forwarded-For"] $_SERVER["HTTP_PROXY_AUTHORIZATION"] <=> SERVER["tHeaders"]["Proxy-Authorization"] $_SERVER["CONTENT_LENGTH"] <=> SERVER["tHeaders"]["Content-Length"] $_SERVER["CONTENT_TYPE"] <=> SERVER["tHeaders"]["Content-Type"] Переменные сервера: Код $_SERVER["GATEWAY_INTERFACE"] <=> ? $_SERVER["PATH_INFO"] <=> ? $_SERVER["PATH_TRANSLATED"] <=> ? $_SERVER["REMOTE_ADDR"] <=> ? $_SERVER["REMOTE_HOST"] <=> ? $_SERVER["REMOTE_PORT"] <=> ? $_SERVER["REMOTE_USER"] <=> ? $_SERVER["SERVER_ADDR"] <=> ? $_SERVER["SERVER_NAME"] <=> ? $_SERVER["SERVER_PORT"] <=> ? $_SERVER["SERVER_SOFTWARE"] <=> ? $_SERVER["SCRIPT_FILENAME"] <=> SERVER["sLoadFileWay"] $_SERVER["SERVER_PROTOCOL"] <=> SERVER["sVersion"] $_SERVER["REQUEST_METHOD"] <=> SERVER["sMethod"] $_SERVER["QUERY_STRING"] <=> SERVER["sGetData"] $_SERVER["REQUEST_URI"] <=> SERVER["sUrl"] $_SERVER["SCRIPT_NAME"] <=> SERVER["sPath"]..SERVER["sFile"] $_SERVER["REQUEST_TIME"] <=> _G.os.time() Переменные сервера Apache: Код $_SERVER["DOCUMENT_ROOT"] <=> _G.Core.sScriptsPath.."www/" $_SERVER["SERVER_ADMIN"] <=> ? $_SERVER["SERVER_SIGNATURE"] <=> ? Замечания: PHP переменная $_SERVER["SCRIPT_NAME"] содержит информацию вместе взятых Lua переменных: SERVER["sPath"]..SERVER["sFile"] PHP переменная $_SERVER["REQUEST_TIME"] отличается от lua переменной SERVER["iStartTime"] тем, что в отличии от последней возвращает os.time(), а не os.clock(). |
|
|
9.3.2010, 20:36
Сообщение
#24
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Библиотека для аякса написана. Однако, при испытаниях с данным скриптом, клиент не может ничего отослать на сервер, так как соединение сервер не поддерживает.
Переписав немного данный скрипт под использование на встроенном в хаб веб-сервере, не разрывая соединение с клиентом, клиент при помощи библиотеки jquery отправляет запрос на сервер, однако от сервера получает в ответ lua файл с исполняемым кодом))))))) Подозреваю что все дело в заголовке: "Content-Type: text/html;" Поэтому для успешной работы аякса необходима функция установки полей заголовка (аналог php функции header). строчка: Код if tClient.tHeaders["Content-Type"] == "application/x-www-form-urlencoded" then не даёт получить POST данные. Например, мой браузер отправляет в POST заголовке следующее: Код Content-Type: application/octet-stream; Ух... Наконец-то реализовал на lua обмен данными по технологии аякс!!! С мозиллой и ie аякс пашет на отлично, даже без специального Content-Type. А вот для оперы нужна функция header ((( |
|
|
9.3.2010, 21:30
Сообщение
#25
|
|
Освоившийся участник Группа: Администраторы Сообщений: 344 Регистрация: 2.6.2008 Из: RB,Ufa Пользователь №: 8 Спасибо сказали: 106 раз |
Немного отойду от темы, однако будет полезно я думаю.
Насчет post заголовка, вычитал Цитата A MIME attachment with the content type "application/octet-stream" is a binary file. Поискав еще нашел Цитата mime type: application/octet-stream - Исполняемый файл для DOS или Microsoft Windows (37*) (.com, .exe) У меня подозрения что где-то ошибка. Этот тип не используется для обработки запросов, сервер николя сделал правильно, что отдал lua-файл с исполняемым кодом. (хотя по соображениям безопасности этого не должно происходить я думаю) |
|
|
9.3.2010, 21:56
Сообщение
#26
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
По поводу отдачи файла исполняемым кодом, то это я немного наложал, когда переводил сервер под работу на встроенном веб-сервере.
Что касается json, то именно это я и реализовал, когда переписывал библиотеку JsHttpRequest с php на lua. application/octet-stream веб-сервер должен хавать, поэтому его нельзя запрещать, в противном случае библиотека JsHttpRequest работать не будет! |
|
|
9.3.2010, 22:18
Сообщение
#27
|
|
Освоившийся участник Группа: Администраторы Сообщений: 344 Регистрация: 2.6.2008 Из: RB,Ufa Пользователь №: 8 Спасибо сказали: 106 раз |
Понятно что должен хавать но должен хавать только определенные типы файлов а не отдавать исполняемый код
|
|
|
9.3.2010, 22:31
Сообщение
#28
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Я же сказал, что отдача исполняемого кода - это была моя ошибка при переводе.
|
|
|
11.7.2012, 17:03
Сообщение
#29
|
|
Глубина-глубина, я не твой… Отпусти меня, глубина… Группа: Пользователи Сообщений: 199 Регистрация: 13.10.2010 Из: Михайловск Пользователь №: 7 882 Спасибо сказали: 23 раза |
А планируется ли в будущем или может уже есть подобное vhcp?
|
|
|
|
Сейчас: 23.12.2024, 9:04 |