【发布时间】:2019-11-05 12:05:39
【问题描述】:
我正在开发一个将 HTTP 消息传入和传出路由器 Web 服务器的应用程序。
我面临的问题在于 HTTP basic authentication。
RFC 7617 状态:
"服务器可以使用401 (Unauthorized) 状态码回复质询"
我从浏览器 HTTP 中看到的情况并非每个路由器都如此。例如,TPLINK TLWR840N 不会向我发送401,我可以通过简单地传输 http 请求以及 http 消息中 base64{username:pass} 形式的正确凭据来获取资源,如下所示。
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 协议?)。
我有另一个 TPLINK TL-WR841N 路由器,它不采用 base64{username:pass} 形式的凭据(在 http 消息中)作为前一个路由器,而是采用 base64(用户)形式的凭据: md5(密码)。我有两个关于这个路由器的问题(以及所有的路由器)
-
我想知道路由器如何将凭据协议传递给浏览器,以便我可以将那个东西嵌入到我的应用程序中。我检查了 http 消息(在 Chrome/Firefox 中),但找不到正在通信协议的消息。
-
当我登录
TPLINK TL-WR841N路由器时,与之前的模型不同,Web 浏览器在 URL 中包含一些 SessionID,例如URL 显示www.192.168.0.1/SessionID/path/to/resource。我想知道这个 SessionID 是如何传递给浏览器的?
【问题讨论】:
标签: http browser network-programming webserver