|
0 / 0 / 0
Регистрация: 12.09.2017
Сообщений: 35
|
|
Простой веб-сервер с directories walk28.09.2017, 17:31. Показов 4152. Ответов 24
Метки нет (Все метки)
В общем, на просторах инета уже многовато поискал информации, но сложновато все структуризировать и создать свой план действия. Смотрим скриншот, что мне нужно. Дальше я бы хотел услышать как мне лучше всего это сделать. Возможно у вас даже есть ссылки на готовое, чтоб можно было засесть и разбирать по строчке сам код.
0
|
|
| 28.09.2017, 17:31 | |
|
Ответы с готовыми решениями:
24
простой веб-сервер Простой веб сервер простой веб сервер |
|
|
||
| 02.10.2017, 18:56 | ||
|
TatiusWazo,
Не пытайтесь писать так как хочется. Пример и так упрощен - если его еще больше упрощать - лучше не будет. Попытайтесь сделать его лучше: разбейте код на небольшие подфункции (код получения списка файлов лучше оформить в отдельную функцию), где каждая будет выполнять свою маленькую подзадачу - так проще будет потом ориентироваться в коде и понимать, где баг, а где фича. :-) Не лепите в одну строку код формирования заголовков ответа и код данных (html) - по RFC2616(Hypertext Transfer Protocol) заголовки разделяются символами перевода строки, а данные отделяются от заголовков двумя (ну или хотя бы одним) символами перевода строки. Они у вас в строке answer, конечно, есть, но явно не обозначены и изменив формат raw строки легко и вовсе потерять их. В конечном итоге, если этот код довести до ума - получится... Flask или Bottle :-) (это такие готовые микрофреймворки для web, где не нужно думать над низоуровневыми вещами).
1
|
||
|
0 / 0 / 0
Регистрация: 12.09.2017
Сообщений: 35
|
||||||
| 02.10.2017, 21:05 [ТС] | ||||||
|
Garry Galler, кстати, я так и не совсем разобрался с этим.
0
|
||||||
|
|
|
| 02.10.2017, 21:57 | |
|
b"" - просто пустая строка (байтовая). b"\r\n" - перевод строки (в байтах).
Разница есть для конкретной системы: на windows перевод строки обозначается как "\r\n", на Linux - "\n", на Mac - "\r". Впрочем, python всю эту разницу нивелирует.
1
|
|
|
0 / 0 / 0
Регистрация: 12.09.2017
Сообщений: 35
|
||||||||||||||||||||||
| 02.10.2017, 23:18 [ТС] | ||||||||||||||||||||||
|
1
Не понял, что за rb.
Остановил только: address = udata. Стало отображать такое: 3
И mimetypes, unquote не знаю, для чего используем (но, я еще и не гуглил). 4
Что я понял с этого. На интуитивном уровне понимаю, что есть некие проверки в стиле status="500 Internal Server Error" и status="404 Not Found", где 404 выбивает, если я захочу ввести в url которого нет. А в от с 500 не могу понять, что мне сделать, что мне выбила эта ошибка. Popen - читал, но не вшарил. 5 Последнее, что я не понял, как оно узнает, в какой директории я есть? Т.е., имею ввиду, я думал, где-то будет использоваться getcwd, но он тут нигде не используется. Добавлено через 50 минут И да! Если сервак долго включен и потом его обновить, выбивает вот такое:
Пишет, что значения не хватает, но почему так происходит?
0
|
||||||||||||||||||||||
|
|
|||||||||||||
| 03.10.2017, 01:04 | |||||||||||||
|
method, protocol, status GET HTTP/1.1 200 OKЧто мы получаем от клиента в первой строки заголовков? method, address, protocol GET /путь_к_ресурсу_относительно_корня HTTP/1.1Кроме адреса нас ничего не интересует поэтому используем только address. Способ получения этих данных из байтов может быть любой. В данном случае используется просто split по пробелам первой строки и распаковка на три переменные. Стандарт есть стандарт.
А в функцию genereate_html передается сначала (первый запуск) - ее значение (то есть нашего корня), а затем уже - при листинге директорий - субдиректории.
1
|
|||||||||||||
| 03.10.2017, 01:04 | |
|
Простой веб-сервер Как написать простой веб сервер
Посоветуйте простой веб сервер для картинок Решить проблему: простой веб сервер на основе boost::asio падает именно при первом же обращении к серверу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|