web-dev-qa-db-fra.com

pourquoi wget n'utilise pas le nom d'utilisateur et le mot de passe dans l'URL pour la première fois

Vous trouverez ci-dessous la commande et la réponse de wget. La première fois, il n'utilise pas le nom d'utilisateur et le mot de passe fournis et obtient 401; plus tard, il utilise l'auth et obtient 200.

Cela fonctionne bien avec curl mais la même chose se passe aussi avec Postman, quel est ce phénomène et pourquoi?

$> wget 'http://userName:password@Host:port/v1/api'
--2018-08-31 16:06:01--  http://userName:password@Host:port
Connecting to Host:port... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Authentication selected: Basic realm="myApp", API-Key realm="myApp"
Reusing existing connection to Host:port.
HTTP request sent, awaiting response... 200 OK
Length: 146 [application/json]
Saving to: 'api'

api 100%[==================================================================================================================>]     146  --.-KB/s   in 0s

2018-08-31 16:06:01 (9.28 MB/s) - 'api' saved [146/146]
2
Saurabh

wget et la plupart des autres programmes demandent un défi d'authentification de base du côté du serveur avant d'envoyer les informations d'identification.

Ceci est le comportement par défaut de wget depuis la version 1.10.2.
Vous pouvez changer ce comportement en utilisant l’option --auth-no-challenge:

Si cette option est donnée, Wget enverra des informations d'authentification HTTP de base (nom d'utilisateur et mot de passe en texte clair) pour toutes les demandes, comme pour Wget 1.10.2 et les versions antérieures par défaut.

L'utilisation de cette option n'est pas recommandée et est uniquement destinée à prendre en charge quelques serveurs obscurs, qui n'envoient jamais de défis d'authentification HTTP, mais acceptent les informations d'authentification non sollicitées, par exemple, en plus de l'authentification basée sur un formulaire.


Il s'agit du flux de travail général par défaut pour l'authentification HTTP:

enter image description here

En savoir plus sur l'authentification HTTP.

3
pLumo