首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在路由器、web服务器和浏览器之间通信协议

问如何在路由器、web服务器和浏览器之间通信协议
EN

Stack Overflow用户
提问于 2019-11-05 12:05:39
回答 1查看 53关注 0票数 0

我正在开发一个应用程序,它接收来自路由器web服务器的HTTP消息。

我面临的问题是HTTP中的basic authentication。

RFC 7617声明:

“服务器可以使用401 (Unauthorized)状态代码回答问题”

我从浏览器HTTP中看到的是,并不是每个路由器都是如此。例如,TPLINK TLWR840N不向我发送401,我可以通过简单地传输http请求和正确的凭据(在http消息中以base64{username:pass}的形式传递)获得资源,如下所示。

代码语言:javascript
复制
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(密码)的形式接受凭据。我有两个关于这个路由器(和所有路由器)的问题。

  1. 我想知道路由器如何将凭据协议与浏览器通信,以便将其嵌入到我的应用程序中。我已经检查过http消息(在Chrome/Firefox中),但是找不到协议正在传递的消息。
  2. 当我登录到TPLINK TL-WR841N路由器时,与以前的模型不同,web浏览器在URL中包含了一些SessionID,例如URL显示了www.192.168.0.1/SessionID/path/to/resource。我想知道这个SessionID是如何与浏览器通信的?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-05 12:24:38

编写路由器维护应用程序的人,以及设计显卡驱动程序安装程序屏幕(看着你,AMD)的人,都不遵守任何准则、最佳实践或协议。

但他们也不需要。他们编写了一个碰巧使用HTTP的应用程序,但您不必使用所有的HTTP。他们写前端和后端,这样他们可以密切控制他们的服务器和客户端。

客户端最有可能是使用JavaScript执行一些请求的一些HTML页面。

如果他们决定web接口使用一个按字面上声明为LetMeIn: true的请求头对服务器进行身份验证,那么这也是可行的。

HTTP不要求服务器在该头丢失或带有false时返回401,因此它们不必返回。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58711026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档