Какова точная семантика части имени пользователя HTTP-URL? - PullRequest
0 голосов
/ 15 марта 2019

Если бы я разрабатывал API или протокол, который использует URL-адреса HTTP и хотел использовать подкомпонент userinfo для обозначения чего-то другого, кроме имени пользователя запрашивающей стороны, это было бы нарушением спецификации?

Например, пользовательский агент, аутентифицированный как пользователь 'a@example.com', отправляет запрос http://b@example.com/stuff на доступ к данным, контролируемым или относящимся к пользователю 'b'.

1 Ответ

0 голосов
/ 15 марта 2019

RFC 3986 3.2.1 просто говорит «имя пользователя», а не имя пользователя клиента:

Подкомпонент userinfo может состоять из имени пользователя и, необязательно,Специфичная для схемы информация о том, как получить авторизацию для доступа к ресурсу.

Но RFC 7230 2.7.1 говорит

Отправитель НЕ ДОЛЖЕН генерироватьподкомпонент userinfo (и его разделитель «@»), когда в сообщении генерируется ссылка URI «http» в качестве цели запроса или значения поля заголовка.Перед использованием ссылки URI «http», полученной из ненадежного источника, получателю СЛЕДУЕТ проанализировать userinfo и обработать его наличие как ошибку;

Исходя из вышеизложенного, кажется, что вы можете использоватьКомпонент username означает желаемое, но сервер просто не может ответить ссылками / идентификаторами ресурсов, включая имя пользователя.

После тестирования ссылки (например, 1019 *) в Firefox, он отобразит предупреждение изатем сделайте HTTP-запрос без имени пользователя, если решите продолжить.)

...