Ответ 1
Чтобы помочь всем избежать путаницы, я переформулирую вопрос в двух частях.
Во-первых: "как можно сделать аутентифицированный HTTP-запрос с помощью браузера, используя BASIC-аутентификацию?" ,
В браузере вы можете сначала выполнить базовую http-аутентификацию, дождавшись приглашения или отредактировав URL, если вы используете следующий формат: http://myusername:[email protected]
NB: команда curl, упомянутая в вопросе, прекрасно работает, если у вас установлена командная строка и curl. ;)
Рекомендации:
- https://en.wikipedia.org/wiki/Basic_access_authentication#URL_encoding
- https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax
- https://tools.ietf.org/html/rfc3986#page-18
Также согласно странице руководства CURL https://curl.haxx.se/docs/manual.html
HTTP
Curl also supports user and password in HTTP URLs, thus you can pick a file
like:
curl http://name:[email protected]/full/path/to/file
or specify user and password separately like in
curl -u name:passwd http://machine.domain/full/path/to/file
HTTP offers many different methods of authentication and curl supports
several: Basic, Digest, NTLM and Negotiate (SPNEGO). Without telling which
method to use, curl defaults to Basic. You can also ask curl to pick the
most secure ones out of the ones that the server accepts for the given URL,
by using --anyauth.
NOTE! According to the URL specification, HTTP URLs can not contain a user
and password, so that style will not work when using curl via a proxy, even
though curl allows it at other times. When using a proxy, you _must_ use
the -u style for user and password.
Второй и реальный вопрос: "Однако на somesite.com я вообще не получаю приглашение на авторизацию, просто на странице, на которой написано, что я не авторизован. Неужели на каком-то сайте неправильно реализован рабочий процесс Basic Auth, или что-то есть? что еще мне нужно сделать?
В документации curl говорится, что опция -u
поддерживает множество методов аутентификации, по умолчанию используется Basic.