2012-06-14 2 views
0

Я хочу использовать веб-службу, которая работает на локальной машине (не спрашивайте меня, почему я не сделал веб-сервис, просто нужно используйте его), и я хочу знать, есть ли какая-либо разница (техническая и, возможно, производительность) путем ссылки на него через localhost, 127.0.0.1, имя компьютера и статический IP-адрес компьютера? Это очень важно, потому что я должен потреблять веб-сервис почти каждые 30 секунд из триггера таблицы внутри базы данных (опять же, не спрашивайте меня, почему, это все, что я могу сделать в этом случае). Веб-служба была написана на ASP.NET, а объект, который обращается к ней из базы данных, представляет собой пользовательскую функцию CLR, созданную на C# .NET.Разница с использованием localhost, 127.0.0.1, имя компьютера и статический ip

EDIT: Извините, 30 секунд была низкой оценкой. Это транзакционная таблица, в которой продажи почти сто магазинов сохраняются в режиме онлайн. Период переменный, от нескольких минут до миллисекунд между транзакциями.

ответ

1

Это зависит от того, где работает веб-сервис (прослушивание).

localhost и 127.0.0.1 свяжутся с ним во внутреннем интерфейсе localhost. Другие два метода будут искать сервис на определенной сетевой карте.

С точки зрения производительности, использование IP-адреса происходит немного быстрее, поскольку оно позволяет избежать поиска DNS, который, однако, в этом случае будет разрешен локально и будет в значительной степени мгновенным. (30 секунд - относительная бесконечность, поэтому это не может быть узким местом.)

С точки зрения обслуживания статический IP-адрес, скорее всего, вас укусит.

Победитель: 127.0.0.1 или localhost.

1

Отсутствие реального воздействия на производительность, но самые быстрые из них должны быть 127.0.0.1 и статическим IP-адресом, поскольку в файлах хостов или DNS нет необходимости искать их. И поскольку у вас есть окно в 30 секунд, это действительно не имеет значения.

1

Есть разница.

В то время как все четыре имени авторизации будут связаны с TCP-соединением с одним и тем же хостом, разница в HTTP: HTTP имеет заголовок «Host:», который отправляет браузер или клиент, а содержимое этого заголовка - имя хоста часть имени органа URI.

Главный заголовок имеет важное значение, поскольку веб-серверы, такие как запросы маршрута IIS, поступают на правильный веб-сайт, даже если несколько веб-сайтов имеют общий IP-адрес (HTTP1.1 имеет заголовок Host, HTTP1.0 - нет, поэтому в середине 90- 1990-е годы каждый веб-сайт нуждался в собственном IP-адресе).

Если ваш веб-сервис работает на сервере, который использует заголовок хоста, или если он сам использует заголовок узла, то это имеет значение.

Оценка производительности незначительна, так как «localhost» и «% computername%» должны быть постоянно сохранены в кеш-клиенте вашего DNS-клиента, но здравый смысл заключается в том, чтобы избежать хардкодирования имен хостов в вашем приложении.

+0

Итак, вы имеете в виду, что я должен указать имя хоста, если у веб-службы есть назначенный ему? –

+0

Да. Если ваш веб-сервис настроен только на «localhost», то подключение к http://127.0.0.1 не будет работать, потому что заголовок Host будет установлен на «127.0.0.1» вместо «localhost». – Dai

0

Нет никакой реальной разницы, однако все они будут переведены на 127.0.0.1, чтобы вы могли это сделать первым.

Если вы проверить ваши хосты файл, вы можете увидеть, что локальный непосредственно перевод на 127.0.0.1

3

30 секунд действительно долгое время по сравнению с «реального времени», так что IP вы используете не будет никакой разницы, и будет прозрачным для вашего приложения.

+0

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

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