问题标签 [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.
python - BaseHTTPServer POST 请求 - 连接重置
我正在构建一个简单的 Python 工具,该工具通过 COM 端口从外部接收器获取 GPS 坐标,并将其转换为 JSON 字符串,如 Google Geolocation API 返回的那样。目的是将 Firefox 中的 Google Geolocation 提供程序 URL 替换为将这个字符串返回给浏览器的本地 URL,从而在我的浏览器中实现基于 GPS 的位置。
GPS 部分很好,但我无法使用 HTTP 服务器将数据发送到浏览器。当浏览器向 Google 请求位置时,它会发送如下所示的 POST:
这是我的响应代码:
因此,当我从 Curl 发送一个空的 POST 请求时它可以正常工作,但当请求是浏览器发送的请求时(即正文中的“{}”)则不行:
我根本不熟悉 HTTP 协议或 BaseHTTPServer。为什么会出错?我该如何解决。
python - 在 python 中编写带有上下文的 HTTP 服务器
我正在尝试在 python 2.7 中编写一个 HTTP 服务器。我正在尝试使用现成的类来简化工作(例如SimpleHTTPServer
,BaseHTTPRequestHandler
等)。
服务器应该监听 GET 请求,一旦它得到一个 - 解析请求(路径和参数),并与已经初始化的对象交互(访问数据库,计算请求数等) - 我们称之为'处理程序',并返回响应。
我了解BaseHTTPRequestHandler
将为每个请求构建 RequestHandler 类(例如)。如何将“处理程序”传递给处理例程,以便他们可以调用其方法?
谢谢!
python - 来自 HTML 表单的空 POST 请求(Python)
我正在尝试使用 BaseHTTPRequestHandler 模块在 Python 中接收 POST 请求。我写了一个简单的 HTML 表单:
和一个最小的应用程序:
问题是每个 POST 请求都是空的。我得到 content_length = 0。
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 服务器一样快。
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
工作。因此,我想我做错了什么,排除了无法同时设置两台服务器。
任何帮助表示赞赏!
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:
断管错误信息:
python-3.x - 从 Python 的 http.server 提供文件 - 正确响应文件
我只是想从 http.server 提供一个 PDF 文件。这是我的代码:
我不确定我file.pdf
现在该如何回应,而且我一无所获。我相信标题是正确的,但我无法发送实际文件。
python - python3 HTTPServer/BaseHTTPRequestHandler 输出流问题
我遇到了内置 python3 http.server 模块的问题。具体来说,就是 BaseHTTPRequestHandler 类中的 wfile.write() 方法。
我正在尝试使用 GET 请求将预定义为字符串的 html 表单发送给客户端。到客户端的输出流被编码为类似字节的对象并传输到客户端。
但是,在客户端启动服务器时,它不会呈现为 html 表单。它最终被包装到<pre>
标签中并显示为预格式化的文本。
这是代码:
python-2.7 - python开发的web服务器,如何传输图片文件,可以在web浏览器中显示?
我想用python开发一个简单的web服务器来处理一些简单的http请求。我已经学习了如何响应请求,例如传输 html 页面或传输其他文件。当我传输图像文件时,客户端使用浏览器获取文件,网址如下所示:
我设置了'Content-Type = application/x-png'。但是浏览器直接下载文件,并不能在浏览器中显示。不像下图
它可以显示在浏览器中。如何在浏览器中显示图像?有人能帮我吗?
我知道我可以将图像文件编码为 html 页面来修复它。代码如下:
但我知道一定有另一种方式,我看到它只是使用的 URL( https://www.baidu.com/ )的源代码
与我的页面不同:
python - python的BaseHTTPHandler的可扩展性?
我使用 python 的标准 API (BaseHTTPServer.BaseHTTPRequestHander) 作为后端来处理用户的 HTTP 请求。现在,假设平均而言,我网站上的用户数量约为 150,那么坚持使用这个 python 的 API 是否安全?