Я все еще начинаю с Lua и хотел бы написать (относительно) простой прокси, используя его.
Это то, что я хотел бы получить:
- Прослушивание порта.
- Принять соединение.
- Поскольку это прокси, я ожидаю HTTP (Получить / Опубликовать и т. Д.) / HTTPS / FTP / любые запросы от моего браузера.
- Проверка запроса (просто для извлечения информации о хосте и порте?)
- Создайте новый сокет и подключитесь к хосту, указанному в запросе.
- Передача точного запроса в том виде, в котором он был получен, с данными POST и всеми.
- Получить ответ (заголовок / тело / что-нибудь еще ..) и ответить на первоначальный запрос.
- Закрыть соединения? Я полагаю, что Keep-Alive не следует уважать?
Я понимаю, что это не должно быть тривиально, но у меня много проблем с настройкой с помощью LuaSockets или Copas - как мне получить весь запрос? Продолжать получать, пока я не отсканирую \ r \ n \ r \ n? Тогда как мне вытащить данные поста? а тело? Или принять файл "скачать"? Я читал о «раковине», но, по общему признанию, не понимал большую часть того, что это значило, так что, может быть, мне стоит прочитать об этом больше?
В случае, если это имеет значение, я работаю на машине с Windows, использую LuaForWindows и все еще довольно плохо знаком с Lua. Люблю это до сих пор, хотя таблицы просто потрясающие:)
Я обнаружил lua-http, но, похоже, он был объединен с Xavante (и я не нашел никакой версии для lua 5.1 и LuaForWindows), не уверен, облегчит ли это мне жизнь?
Заранее спасибо за любые советы, указатели, библиотеки / источники, на которые я должен обратить внимание, и т. Д .:)