Почему я не должен запускать свое программное обеспечение невеб-сервера на порте 80?

Ответили на мой вопрос ...

Сначала я получал sbSrc из sbDest (для реализации функциональности копирования / вставки), используя

SpannableStringBuilder ssbSrc = new SpannableStringBuilder (ssbDest.subSequence (start, end));

subSequence () действительно копирует промежутки, но не клонирует их, поэтому ssbSrc заканчивается САМыми промежутками (теми же экземплярами объектов, а не просто теми же типами), что и в ssbDest ... и именно поэтому sbDest.insert ( ) не вставляет их.

5
задан Luke 18 December 2008 в 02:22
поделиться

5 ответов

Если необходимо сделать это, почему не только переносят сеть comms код с интерфейсом SOAP или HTTPHandler?

Затем Ваши пакеты будут соответствовать HTTP, Вы пройдете через брандмауэры и общее счастливое?

Это будет намного легче, чем разрешение всей установки и операционных проблем, которые Вы получите от мультинамерения порта 80.

7
ответ дан 13 December 2019 в 19:38
поделиться

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

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

Наконец, если Ваше приложение будет работать на варианте Unix/Linux, то порт 80 потребует полномочий пользователя root.

1
ответ дан 13 December 2019 в 19:38
поделиться

Я могу думать о двух причинах: во-первых при выполнении его для обхождения брандмауэра компании, Вы нарушите политику безопасности и во-вторых, Вы будете использовать зарезервированный порт для протокола, что это не регистрируется, для которого мог вызвать значительный беспорядок клиентам, пытающимся взаимодействовать с Вашей системой (как, Google, например) и значительные головные боли для Вашего приложения, когда они делают.

РЕДАКТИРОВАНИЕ В системах Unix низко пронумеровало порты, требуют, чтобы привилегированные учетные записи работали. Это было бы другой причиной постараться не делать его в той среде, поскольку Вашему приложению, возможно, понадобятся более высокие полномочия, чем в других отношениях необходимый.

2
ответ дан 13 December 2019 в 19:38
поделиться

Я признаюсь в том, что работал вокруг Драконовского брандмауэра при наличии ssh сервера, слушают на порте 80 назад домой и использующий ssh туннелирующий для обеспечения доступа к другим серверам и сервисам. Я спешу добавлять, что я сделал это с благословением людей, администрирующих брандмауэр---, все мы согласились, что это было лучшее решение проблем под рукой.

Я спешу добавлять, что эта тактика представляет порт 80 бесполезных для его намеченной цели, которая меня устроила, так как это была моя персональная рабочая станция так или иначе. Если бы у Вас есть только одна машина в Вашем домене, это была бы проблема. Но имея машину я мог выделить для обслуживания, ssh от порта 80 не создал установки или операционных проблем. Я просто работал /etc/init.d/apache stop и затем работал sshd слушать порт 80. Затем я был хорош для движения в течение нескольких месяцев, я должен был сделать это.

Автоматизированные сканеры, кто приезжает, пробивая в порт 80 из моей персональной рабочей станции, могут пойти, зависают :-)

0
ответ дан 13 December 2019 в 19:38
поделиться

Для ответа на Вас, второй вопрос "является этим возможный использовать своего рода виртуальный хост, слушающий на порте 80":

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

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

Решение состоит в том, чтобы иметь больше чем один IP-адрес на Вашем сервере (можно связать больше чем один IP-адрес на nic). Затем можно связать mydomain.com:80 в адресе 1 к веб-серверу и myapp.mydomain.com в адресе 2 к приложению, но они все еще находятся на том же сервере.

И отвечать на Ваш первый вопрос: "есть ли любая причина, я не должен запускать программное обеспечение сервера на порте 80": Да, это - плохая практика. Ожидайте получать много запросов HTTP от автоматизированного сканирования. Можно принять решение ответить на них с корректным http-заголовком или проигнорировать их.

1
ответ дан 13 December 2019 в 19:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: