2012-03-21 2 views
0

Я разрабатываю, как создать приложение python для обработки изображений. Клиент (а не веб-браузер) отправляет изображение и некоторые текстовые данные на сервер, а ответ сервера основан на полученном изображении.Отправка изображения на сервер: http POST vs custom tcp protocol

Одним из методов является использование веб-сервера + WSGI-модуля и предоставление клиентам HTTP-запроса POST (с использованием multipart/form-data). Затем http-сервер «выдает» загруженное изображение и другие данные, которые программа может использовать.

Другой метод - создать протокол, который отправляет только необходимые данные и обрабатывается в приложении. Приложение будет делать все (прослушивание порта и т. Д.).

Является ли один из них отличным «лучшим» способом (если да, какой?), Или он более соответствует предпочтениям (или есть ли другой способ, который лучше)?

ответ

0

Я считаю, что это больше зависит от ваших потребностей, размера изображений и общих знаний о сетевом программировании.

С точки зрения простоты размещения изображения на веб-сервер, используя WSGI бы достаточно просто, и вы не придется беспокоиться об обработке соединений, розетки, обработку ошибок по причине занятости сетевых портов и т.д.

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

Это был бы мой выбор.

Кроме того, на Python у вас есть огромное множество веб-фреймворков на выбор, от подобных Django, что, вероятно, является огромным излишеством для ваших нужд, чем-то намного проще, например http://flask.pocoo.org/, которое может удовлетворить ваши потребности и действительно прост в настройке.

0

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

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

Смежные вопросы