myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему

> WebServer, скрипт создающий веб-интерфейс для хаба

Setuper
сообщение 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
Go to the top of the page
+Quote Post
Nickolya
сообщение 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
если хочешь - сделай свою, с функцией учту.
Go to the top of the page
+Quote Post
Setuper
сообщение 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().


Спасибо сказали:
Go to the top of the page
+Quote Post
Setuper
сообщение 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 обмен данными по технологии аякс!!! big_smile.gif
С мозиллой и ie аякс пашет на отлично, даже без специального Content-Type. А вот для оперы нужна функция header (((


Спасибо сказали:
Go to the top of the page
+Quote Post
Jaska
сообщение 9.3.2010, 21:30
Сообщение #25


Освоившийся участник
*****

Группа: Администраторы
Сообщений: 344
Регистрация: 2.6.2008
Из: RB,Ufa
Пользователь №: 8
Спасибо сказали: 106 раз




Немного отойду от темы, однако будет полезно я думаю. Здесь реализована работа lua c json big_smile.gif

Насчет 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-файл с исполняемым кодом. (хотя по соображениям безопасности этого не должно происходить я думаю)
Go to the top of the page
+Quote Post
Setuper
сообщение 9.3.2010, 21:56
Сообщение #26


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




По поводу отдачи файла исполняемым кодом, то это я немного наложал, когда переводил сервер под работу на встроенном веб-сервере.
Что касается json, то именно это я и реализовал, когда переписывал библиотеку JsHttpRequest с php на lua.

application/octet-stream веб-сервер должен хавать, поэтому его нельзя запрещать, в противном случае библиотека JsHttpRequest работать не будет!
Go to the top of the page
+Quote Post
Jaska
сообщение 9.3.2010, 22:18
Сообщение #27


Освоившийся участник
*****

Группа: Администраторы
Сообщений: 344
Регистрация: 2.6.2008
Из: RB,Ufa
Пользователь №: 8
Спасибо сказали: 106 раз




Понятно что должен хавать но должен хавать только определенные типы файлов а не отдавать исполняемый код
Go to the top of the page
+Quote Post
Setuper
сообщение 9.3.2010, 22:31
Сообщение #28


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Я же сказал, что отдача исполняемого кода - это была моя ошибка при переводе.
Go to the top of the page
+Quote Post
KCAHDEP
сообщение 11.7.2012, 17:03
Сообщение #29


Глубина-глубина, я не твой… Отпусти меня, глубина…
****

Группа: Пользователи
Сообщений: 199
Регистрация: 13.10.2010
Из: Михайловск
Пользователь №: 7 882
Спасибо сказали: 23 раза




А планируется ли в будущем или может уже есть подобное vhcp?
Go to the top of the page
+Quote Post

2 страниц V  < 1 2
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Сейчас: 28.3.2024, 16:41