1

Я хотел бы избежать запоминания общих имен портов: например, для моего CUPS это http://localhost:631/ .

Я знаю, что в '/etc/services' есть имена сервисов (называемые псевдонимами для портов):

$ cat /etc/services | grep ipp
ipp             631/tcp     # Internet Printing Protocol
ipp             631/udp

И это работает просто отлично:

$ lynx http://localhost:ipp/

Однако доступ к http://localhost:ipp/ не работает в Firefox, Opera, Konqueror.

Есть идеи?

2 ответа2

5

Файл с ошибкой. Подождите, кто-то сделал, и это было отклонено, потому что это противоречит RFC 1738. Поэтому я думаю, вам придется убедить Mozilla (или Opera, или KDE) передумать.

4

Будьте рады, что авторы браузера придерживаются RFC (1738). Хаос возникает, когда производители программного обеспечения не следуют RFC, поскольку эти документы задают темп для стандартов в Интернете.

Использование номера порта вместо имени службы является кроссплатформенным, поскольку не все системы имеют согласованное содержимое для /etc /services или эквивалентный.

В частности, в этом случае в разделе 3.1 RFC говорится:

3.1. Общий синтаксис интернет-схемы

Хотя синтаксис для остальной части URL-адреса может отличаться в зависимости от
выбранная схема, схемы URL, которые предполагают прямое использование
протокола на основе IP к указанному хосту в Интернете используйте общий синтаксис для данных схемы:

    //<user>:<password>@<host>:<port>/<url-path>

...

port
    The port number to connect to. Most schemes designate
    protocols that have a default port number. Another port number
    may optionally be supplied, in decimal, separated from the
    host by a colon. If the port is omitted, the colon is as well.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .