问题标签 [http.server]

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 回答
1024 浏览

python - 无法使用线程在后台运行 python http 服务器

我正在尝试使用线程在后台运行 python http 服务器。我遇到了几个执行以下操作的参考:

当 thread.daemon 设置为True时,程序将在不启动服务器的情况下完成(端口 6666 上没有运行)。当我将 thread.daemon 设置为False时,它​​会在前台启动服务器并阻止终端,直到我手动将其杀死。

关于如何使这项工作的任何想法?

0 投票
1 回答
91 浏览

python - `HTTPServer` 或`BaseHTTPRequestHandler` 中是否发生了一些缓存或分叉?

可能是我的代码实现错误,但我发现虽然我可以从文字数据中提供 GET 请求,但我无法更新该数据并将其显示为在后续 GET 请求中更新。我也不能让 POST 请求更新数据。

所以它的行为就好像在 Python 的 HTTPServer 或 BaseHTTPRequestHandler 的某个地方发生了缓存或分叉。

提前感谢您查看它,但是,轻轻地,不,我不想使用非核心 3.8 模块或使用完全不同的框架或某些 Flask 重新编写。我认为这应该可行,但它行为不端,我无法找出原因。如果我使用的是 C 或 Go 的内置库,它预计它不会像我一样令人头疼(对我来说)。

为了演示,您将运行以下 python 实现,并加载http://127.0.0.1:8081/两到三次:

即使在加载http://127.0.0.1:8081/之前,也可以尝试发布以向self.files字典添加内容。例如

您可以看到服务器响应,并打印收到的数据,现在应该在其中self.files,因此/应该显示它。您可以将其与以下内容混合使用:

但是这些都没有添加self.files['/new_file']or '/new_file2',而且还不清楚为什么。

一个应该能够请求/new_file/new_file2,而那些是 404。

中的最后几行do_GET,多个GET /请求应该显示更多列出的项目。

虽然将那些添加新键和值的行移到self.files顶部do_GET显示它确实更新了,但只有一次,这似乎更奇怪:

0 投票
0 回答
55 浏览

python - http.server 上的 PUT 请求没有响应

我在自己的线程上运行一个 http 服务器,并使用以下代码发出 PUT 请求。
服务器端:

客户端:

当我在主线程上与服务器建立连接并使用上述代码发出 PUT 请求时,没有收到任何响应。self.send_response(204)除非在 do_PUT() 的第一行,否则请求会挂起。我想根据情况打开并写入文件并发送响应代码,但这会导致客户端根本没有响应。我不确定在 do_PUT() 处理程序中还可以尝试什么来给客户端一个正确的响应。有什么我可以尝试的吗?

0 投票
0 回答
69 浏览

python - 如何在 django 中公开媒体文件夹(可通过 HTTP 公开访问)?

我在服务器的端口 8800 上有一个正在运行的 django 项目,同时我还在同一服务器上的端口 8000 上公开了一个静态媒体文件夹。这样,我就可以通过 Web 浏览器上的 HTTP 查看文件夹/目录列表。要执行后者(公开媒体目录),我运行以下命令:

我的问题是如何将两者合并在同一个端口上?或者,如何仅通过运行 django 项目来公开目标媒体文件夹,该项目允许我通过 HTTP 自动浏览目录,如下图所示?

目录列表图像

任何线索或反馈将不胜感激。非常感谢。

0 投票
0 回答
59 浏览

python-3.x - 如何使用 BaseHTTPRequestHandler 重定向 POST 请求

我目前正在尝试将 POST 请求作为 POST 请求重定向到不同的位置。阅读 HTTP Specs,我发现正确的方法是使用 307 状态代码。但是检查请求我发现我的 POST 在重定向后转换为 GET 请求。有任何想法吗?我的代码是(python):

0 投票
0 回答
127 浏览

python - python3 ConnectionRefusedError: [Errno 61] 执行线程 http.server 时连接被拒绝

我有一个使用 python 3.8 http.server 创建的简单 HTTP 服务器。

2 个端点 1:/restart 在后台执行线程 2:/check_status

当我请求第一个端点时,它执行得很好,第二个请求是收到套接字连接被拒绝错误,直到线程执行完成。请让我知道是否有更好的方法来做到这一点。

0 投票
1 回答
59 浏览

go - What errors are outputted to http.Server's ErrorLog struct field?

I'm trying to understand the purpose of an ErrorLog struct field in http.Server struct. By its name I suspect that those are some kind of errors, but which ones?

What would trigger errors being outputted there? Broken network? Too large http requests?

0 投票
1 回答
371 浏览

python - 带有 axios 的 HTTP POST:net::ERR_EMPTY_RESPONSE

我正在尝试通过 axios 发出 HTTP Post 请求:

我的后端服务器就像(Python):

我用 Postman 测试了我的后端服务器,它工作正常,但是如果我用 axios 尝试它,它会在浏览器中不断返回这个错误

顺便说一句:在服务器日志记录中,服务器似乎从未收到过 POST 请求,而只是收到了 OPTIONS 请求。

0 投票
1 回答
68 浏览

python - 有没有办法从不中断主线程的python HTTP服务器中的get请求启动一个新的命令提示符窗口?

这是我第一次发帖,我遇到了很多问题。与大多数希望他们的代码执行命令并等待它完成的人不同,我想在一个完全独立的新终端窗口中启动它。这是使用 Python HTTP 服务器,在终端窗口关闭之前,我无法在不暂停主线程的情况下运行它。我尝试了subprocess.call, subprocess.Popen, subprocess.run, os.system,但都没有奏效。我愿意接受任何建议。这是代码:

start.bat

trigger.py

requesthandler.py

0 投票
1 回答
159 浏览

python - 如何公开 Python 服务器?

使用此代码:

我尝试使用我的公共 IP,但它不起作用,我的私有 IP,它只能在同一个网络中工作,以及 localhost,它只是我的 PC。如何更改主机,以便当有人连接到我的 IP 时,它会连接到我的网站(从我的代码)?我需要我的路由器重定向到我的电脑吗?我知道主机可以是我的私有 IP 或本地主机,我可以使用其他主机吗?编辑:我在另一个使用 Flask 的问题中看到了答案,我现在不想使用任何依赖项。