Я работаю над приложением, которое получает HTTP-сообщение с веб-сервера маршрутизаторов и с него.
Проблема, с которой я сталкиваюсь, заключается в HTTP basic authentication
.
RFC 7617 заявляет:
" сервер может ответить на запрос, используя 401 (Unauthorized)
код состояния "
То, что я видел в браузере, HTTP захватывает, чтоэто не так для каждого маршрутизатора. Например, TPLINK TLWR840N
не отправляет мне 401
, и я могу получить ресурс, просто передав запрос http вместе с правильными учетными данными в виде base64 {username: pass} в сообщении http, как показано ниже.
GET //main/ddos.htm?_=1572950350469 HTTP/1.1
Host: 192.168.0.1
Accept: */*
Connection: keep-alive
Referer: http://192.168.0.1
Cookie: Authorization=Basic YeRtaW46YWRtaW5AMTIz
Это дает мне запрошенный контент, если пароль введен правильно, в противном случае он перенаправляет меня на страницу входа (почему этот маршрутизатор не следует протоколу 401
?).
Iиметь другой TPLINK TL-WR841N
маршрутизатор, который не принимает учетные данные (в сообщении http) в виде base64 {username: pass} в качестве предыдущего маршрутизатора, но вместо этого он принимает учетные данные в виде base64 (пользователь): md5 (пароль),У меня есть два вопроса об этом маршрутизаторе ( и всех маршрутизаторах в целом )
1) Я хочу знать, как маршрутизатор передает протокол для учетных данных в браузер, чтобы я мог встроить эту вещьв моем приложении. Я проверил сообщения http (в Chrome / Firefox), но не смог найти сообщение о том, где происходит обмен протоколом.
2) При входе в маршрутизатор TPLINK TL-WR841N
, в отличие от предыдущей модели,веб-браузер содержит некоторый SessionID в URL, например, URL показывает www.192.168.0.1/SessionID/path/to/resource
. Я хотел бы знать, как этот SessionID передается в браузер?