问题标签 [basehttpserver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
993 浏览

python - BaseHTTPServer POST 请求 - 连接重置

我正在构建一个简单的 Python 工具,该工具通过 COM 端口从外部接收器获取 GPS 坐标,并将其转换为 JSON 字符串,如 Google Geolocation API 返回的那样。目的是将 Firefox 中的 Google Geolocation 提供程序 URL 替换为将这个字符串返回给浏​​览器的本地 URL,从而在我的浏览器中实现基于 GPS 的位置。

GPS 部分很好,但我无法使用 HTTP 服务器将数据发送到浏览器。当浏览器向 Google 请求位置时,它会发送如下所示的 POST:

这是我的响应代码:

因此,当我从 Curl 发送一个空的 POST 请求时它可以正常工作,但当请求是浏览器发送的请求时(即正文中的“{}”)则不行:

我根本不熟悉 HTTP 协议或 BaseHTTPServer。为什么会出错?我该如何解决。

0 投票
1 回答
232 浏览

python - 在 python 中编写带有上下文的 HTTP 服务器

我正在尝试在 python 2.7 中编写一个 HTTP 服务器。我正在尝试使用现成的类来简化工作(例如SimpleHTTPServer,BaseHTTPRequestHandler等)。

服务器应该监听 GET 请求,一旦它得到一个 - 解析请求(路径和参数),并与已经初始化的对象交互(访问数据库,计算请求数等) - 我们称之为'处理程序',并返回响应。

我了解BaseHTTPRequestHandler将为每个请求构建 RequestHandler 类(例如)。如何将“处理程序”传递给处理例程,以便他们可以调用其方法?

谢谢!

0 投票
2 回答
982 浏览

python - 来自 HTML 表单的空 POST 请求(Python)

我正在尝试使用 BaseHTTPRequestHandler 模块在 Python 中接收 POST 请求。我写了一个简单的 HTML 表单:

和一个最小的应用程序:

问题是每个 POST 请求都是空的。我得到 content_length = 0。

0 投票
2 回答
1289 浏览

python - Python 3 的 http.server.HTTPServer 在 localhost 上有一秒的延迟

我有一个客户端和一个服务器在同一个盒子上运行。客户端能够向urllib.request.Request()外部 URL 发出命令并在大约 0.1 秒内得到响应,速度足够快,作为用户,我没有注意到任何真正的延迟。Request()当向我的本地发出 a时,客户端调用和服务器甚至收到请求http.server.HTTPServer()之间会有 1 秒的延迟。urllib.request.urlopen()do_GET(self)

我看到一些答案表明这是用于记录的 DNS 查找问题,并且覆盖address_string(self)可以解决它,但无论是否修改,我仍然看到完全相同的延迟。

服务器:

客户:

有什么想法我想摆脱那一秒钟的延迟吗?我希望这个基本服务器的响应速度至少与 Web 服务器一样快。

0 投票
1 回答
1620 浏览

python - 基于 BaseHTTPServer 的双 HTTP 和 HTTPS Python 服务器无法按预期工作

我正在尝试基于 BaseHTTPServer 实现支持 HTTP 和 HTTPS 的 Python 服务器。这是我的代码:

因此,HTTP 运行在 1044 端口,HTTPS 运行在 11044。为了简洁起见,省略了 MyHandler 类。

使用该代码,当我向 HTTP 端口(例如)发送请求时,curl http://localhost:1044/path它可以工作。但是,当我向 HTTPS 端口(例如curl -k https://localhost:11104/path)发送请求时,服务器永远不会响应,即 curl 终端被挂起。

我观察到,如果我注释启动 HTTP 服务器 (ie httpd.server_forever()) 的行,那么 HTTPS 服务器工作,.iecurl -k https://localhost:11104/path工作。因此,我想我做错了什么,排除了无法同时设置两台服务器。

任何帮助表示赞赏!

0 投票
0 回答
331 浏览

javascript - 对 python API 的请求被 chrome 无缘无故地停止了 10 秒。[BaseHTTPServer + Chrome]

问题概述

我正在运行一个网页和一个用 python 编写的 API。网页在 POST 请求中将一些数据发送到 python API,后者对其进行处理并将其发回。该 API 适用于 curl 请求和控制台 AJAX 请求。但是,当我在新选项卡中加载网页时,前 10 秒左右的所有 POST 请求都会“停止”(不是由 Chrome 执行),直到它们失败。大约 10 秒后,POST 请求工作正常,python API 捕获了一个损坏的管道(ERRNO 32,下面的日志)。如果我硬刷新选项卡,那么该站点会立即运行,并且请求根本不会停止,但是如果我打开一个带有该站点的新选项卡,那么就会有 10 秒的延迟。

细节

这只发生在 Chrome 上,它在 Firefox 和 Safari 上运行良好。我已经在 localhost 和 AWS 实例上运行了 API 和网页,但仍有约 10 秒的延迟,之后它工作正常。它发生在其他计算机上的 chrome 上,并且适用于其他计算机上的 Firefox。

我是如何尝试修复它的

当 Chrome 协商代理连接或达到 6 个 TCP 连接的限制时,Chrome 显然会停止请求。我不知道为什么进行硬重置不会导致它必须重新协商其与 API 的连接,或者为什么不必每次都这样做。即使它正在这样做,它也不应该持续花费大约 10 秒吗?我还确保该站点没有达到 6 个 TCP 连接。

潜在问题?

如果我将请求更改为来自另一个站点,我对 HTTP 请求停止没有问题,而且这个问题是 Chrome 特有的,所以我想知道 Chrome 是否以 BaseHTTPRequests 不知道如何处理的方式实现 XMLHTTPRequests ,这导致管道破裂。但我不知道为什么它总是在每次约 10 秒后自行修复。

我现在已经花了很多时间,任何帮助将不胜感激!

HTML/JS:

Python API:

断管错误信息:

chrome网络工具截图

0 投票
1 回答
13688 浏览

python-3.x - 从 Python 的 http.server 提供文件 - 正确响应文件

我只是想从 http.server 提供一个 PDF 文件。这是我的代码:

我不确定我file.pdf现在该如何回应,而且我一无所获。我相信标题是正确的,但我无法发送实际文件。

0 投票
1 回答
2612 浏览

python - python3 HTTPServer/BaseHTTPRequestHandler 输出流问题

我遇到了内置 python3 http.server 模块的问题。具体来说,就是 BaseHTTPRequestHandler 类中的 wfile.write() 方法。

我正在尝试使用 GET 请求将预定义为字符串的 html 表单发送给客户端。到客户端的输出流被编码为类似字节的对象并传输到客户端。

但是,在客户端启动服务器时,它不会呈现为 html 表单。它最终被包装到<pre>标签中并显示为预格式化的文本。

这是代码:

0 投票
1 回答
1198 浏览

python-2.7 - python开发的web服务器,如何传输图片文件,可以在web浏览器中显示?

我想用python开发一个简单的web服务器来处理一些简单的http请求。我已经学习了如何响应请求,例如传输 html 页面或传输其他文件。当我传输图像文件时,客户端使用浏览器获取文件,网址如下所示:

我设置了'Content-Type = application/x-png'。但是浏览器直接下载文件,并不能在浏览器中显示。不像下图

它可以显示在浏览器中。如何在浏览器中显示图像?有人能帮我吗?

我知道我可以将图像文件编码为 html 页面来修复它。代码如下:

但我知道一定有另一种方式,我看到它只是使用的 URL( https://www.baidu.com/ )的源代码

与我的页面不同:

0 投票
0 回答
48 浏览

python - python的BaseHTTPHandler的可扩展性?

我使用 python 的标准 API (BaseHTTPServer.BaseHTTPRequestHander) 作为后端来处理用户的 HTTP 请求。现在,假设平均而言,我网站上的用户数量约为 150,那么坚持使用这个 python 的 API 是否安全?