Httpie: Ajouter un indicateur cURL équivalent --resolve

Créé le 27 oct. 2012  ·  13Commentaires  ·  Source: httpie/httpie

Par cURL --help :

--resolve HOST:PORT :ADDRESS Force la résolution de HOST:PORT en ADDRESS

(contourne le fichier hosts)

exemple d'utilisation :

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

OU

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

feature

Commentaire le plus utile

L'astuce ci-dessus ne fonctionne pas pour les sites HTTPS. Nous avons besoin d'une option de résolution complète similaire à curl.

Tous les 13 commentaires

Je pense que vous pouvez obtenir la même chose en définissant explicitement l'en-tête Host :

http 127.0.0.1/whatever Host:www.foo.com

L'astuce ci-dessus ne fonctionne pas pour les sites HTTPS. Nous avons besoin d'une option de résolution complète similaire à curl.

J'utilise httpie pour tester que j'ai configuré correctement mon DNS round-robin. +1 pour la fonctionnalité

Juste curieux... Cela est ouvert depuis plus d'un an maintenant (depuis sa réouverture)... une chance qu'on y regarde ? Cela semble être une fonctionnalité utile à avoir.

Le logiciel sous-jacent utilisé par HTTPie ne permet pas aux utilisateurs de spécifier leurs propres adresses IP pour un hôte spécifique. Il est peu probable qu'il y soit ajouté. Donc, @aztlan2k, il est peu probable que cela soit en cours d'

Salut! J'ai soumis du code et j'apprécierais tous les commentaires.

Je viens de soumettre à nouveau via un autre PR. Voudriez-vous vérifier?

Une chance d'obtenir cela fusionné? @jakubroztocil

Ce serait formidable pour préparer la migration du site et éviter les problèmes !

Ceci peut être réalisé via dig +short <host> A . C'est un truc DNS, pas vraiment HTTP

dig est utilisé pour interroger le DNS, le --resove proposé est utilisé pour forcer la résolution d'une adresse lors d'une récupération HTTP (probablement à une valeur que le serveur DNS n'a pas encore mais qu'il aura dans l'avenir, une fois ces tests effectués).
C'est plutôt une alternative à l'édition de /etc/hosts qu'à l'utilisation de dig (ou drill , ou similaire).

Au cas où quelqu'un ne comprendrait pas pourquoi cela est nécessaire "pour HTTPS", c'est spécifiquement lorsque TLS SNI (Server Name Indication) est utilisé à la place de l'en-tête HTTP Host pour lever l'ambiguïté des connexions (par exemple, le routage L7 basé sur le nom d'hôte dans les proxys inverses, ou les cas d'utilisation de « serveur virtuel » en général), ce qui est extrêmement courant.

Dans ce contexte, la résolution préalable de l'IP n'est pas suffisante car elle ne constituera pas un nom de serveur virtuel attendu par le serveur réel.

Si un équivalent à --resolve n'est pas souhaitable pour une raison quelconque, forcer la valeur SNI (par exemple --sni ) serait une alternative acceptable IMO car nous pouvons déjà faire l'équivalent pour le HTTP simple (c'est-à-dire définir explicitement la valeur de l'en-tête Host).

Cela peut également être utile pour les redirections absolues (qui incluent une URL complète avec un nom d'hôte)

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

Abdallah-Obaid picture Abdallah-Obaid  ·  4Commentaires

rshurts picture rshurts  ·  5Commentaires

loretoparisi picture loretoparisi  ·  6Commentaires

mattotodd picture mattotodd  ·  3Commentaires

cunde picture cunde  ·  7Commentaires