Httpie: Добавить эквивалентный флаг cURL --resolve

Созданный на 27 окт. 2012  ·  13Комментарии  ·  Источник: httpie/httpie

На cURL --help:

--resolve HOST: PORT : ADDRESS Принудительное преобразование : PORT в АДРЕС

(обходит файл hosts)

пример использования:

http --resolve "www.foo.com:127.0.0.1" GET www.foo.com/whatever

ИЛИ

http --resolve "www.foo.com:8080:127.0.0.1" GET www.foo.com:8080/whatever

Самый полезный комментарий

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

Все 13 Комментарий

Я думаю, вы можете добиться того же, явно установив заголовок Host :

http 127.0.0.1/whatever Host:www.foo.com

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

Я использую httpie, чтобы проверить правильность настройки циклического перебора DNS. +1 за функцию

Просто любопытно ... Это было открыто уже больше года (с тех пор, как оно было повторно открыто) ... есть ли шанс, что на него посмотрят? Кажется, это полезная функция.

Базовое программное обеспечение, которое использует HTTPie, не позволяет людям указывать свои собственные IP-адреса для определенного хоста. Вряд ли его туда добавят. Итак, @ aztlan2k , вряд ли над этим работают. Извините. : /

Привет! Я отправил код и буду благодарен за любые комментарии.

Просто повторно отправлено через другой PR. Не могли бы вы проверить?

Есть ли шанс объединить это? @jakubroztocil

Было бы здорово подготовить перенос сайта и избежать проблем!

Этого можно добиться с помощью dig +short <host> A . Это DNS, а не HTTP

dig используется для запроса DNS, предлагаемый --resove используется для принудительного разрешения адреса во время HTTP-выборки (вероятно, до значения, которое DNS-сервер еще не имеет, но будет иметь в будущее, после того, как это тестирование будет сделано).
Это скорее альтернатива редактированию /etc/hosts чем использованию dig (или drill или аналогичного).

Если кто-то не понимает, зачем это нужно «для HTTPS», это, в частности, когда TLS SNI (указание имени сервера) используется вместо заголовка HTTP Host для устранения неоднозначности соединений (например, маршрутизация L7 на основе имени хоста в обратных прокси-серверах, или «виртуальный сервер» в целом), что очень часто.

В этом контексте предварительного разрешения IP-адреса недостаточно, поскольку он не будет представлять собой имя виртуального сервера, ожидаемое фактическим сервером.

Если эквивалент --resolve нежелателен по какой-либо причине, принудительное использование значения SNI (например, --sni ) будет приемлемой альтернативой IMO, поскольку мы уже можем сделать эквивалент для простого HTTP (т.е. установить значение заголовка Host явно).

Это также может быть полезно для абсолютных перенаправлений (которые включают полный URL-адрес с именем хоста)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги