看了几个可用的http服务器库,我还没找到我要找的东西,并且我确信我不能成为第一个有这套要求的人.
我需要一个库,它提供了一个"流水线"的API.流水线操作用于描述HTTP功能,其中可以一次通过TCP链路发送多个HTTP请求,而无需等待响应.我想在库API上有类似的功能,我的应用程序可以接收所有这些请求,而不必发送响应(我会响应,但希望能够一次处理多个请求以减少内部延迟的影响).
因此,Web服务器库需要支持以下流程
1)HTTP客户端发送http请求1
2)HTTP客户端传输http请求2 ...
3)Web服务器库接收请求1并将其传递给My Web Server App
4)我的Web服务器应用程序接收请求1并将其发送到我的系统
5)Web服务器接收请求2并将其传递给My Web Server App
6)我的Web服务器应用程序接收请求2并将其发送到我的系统
7)我的Web服务器应用程序从我的系统接收对请求1的响应并将其传递给Web服务器
8)Web Server将HTTP响应1发送到HTTP客户端
9)我的Web服务器应用程序从我的系统接收对请求2的响应并将其传递给Web服务器
10)Web服务器将HTTP响应2发送到HTTP客户端
希望这说明了我的要求.有两个要点可以识别.对Web服务器库的响应是异步的,并且可能有多个HTTP请求传递给My Web Server App且响应未完成.
附加要求是
我将非常感谢任何建议
最好的祝福
我正在编写一个小型Web服务器,用于使用python,BasicHTTPServer和SimpleHTTPServer进行测试.它看起来像是一次处理一个请求.有没有什么方法可以让它更快一点而不会太深入?基本上我的代码如下所示,我想保持这个简单;)
os.chdir(webroot)
httpd = BaseHTTPServer.HTTPServer(("", port), SimpleHTTPServer.SimpleHTTPRequestHandler)
print("Serving directory %s on port %i" %(webroot, port) )
try:
httpd.serve_forever()
except KeyboardInterrupt:
print("Server stopped.")
Run Code Online (Sandbox Code Playgroud) 我从http://www.linuxjournal.com/content/tech-tip-really-simple-http-server-python找到了一个 python http web 服务器
import sys
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
HandlerClass = SimpleHTTPRequestHandler
ServerClass = BaseHTTPServer.HTTPServer
Protocol = "HTTP/1.0"
if sys.argv[1:]:
port = int(sys.argv[1])
else:
port = 8000
server_address = ('127.0.0.1', port)
HandlerClass.protocol_version = Protocol
httpd = ServerClass(server_address, HandlerClass)
sa = httpd.socket.getsockname()
print "Serving HTTP on", sa[0], "port", sa[1], "..."
httpd.serve_forever()
Run Code Online (Sandbox Code Playgroud)
如果目录中有一个名为index.html的文件,则该文件将作为初始文件。如果没有index.html,那么将列出该目录中的文件。
如何修改脚本以便将自定义 html 发送到浏览器?
为什么这个命令行中的重定向操作显然被bash忽略了?我的目标是将标准错误重定向到标准输出,然后将整个批次输入空白.
( cd ../src/ && python -m SimpleHTTPServer 8000 2>&1 > /dev/null ) &
Run Code Online (Sandbox Code Playgroud)
我在一些静态Web内容上运行SimpleHTTPServer,以便wget可以检查它是否有死链接.但是,我不希望看到来自服务器的错误(对失败页面的请求),因为wget日志文件提供了我需要的所有信息.
不过,当我跑这个......
( cd ../log/ && wget --quiet --spider --recursive -o spider.log http://localhost:8000/ 2>&1 > /dev/null )
Run Code Online (Sandbox Code Playgroud)
...在后台运行的原始SimpleHTTPServer命令继续喷出有关失败的资源请求的标准错误报告,如...
127.0.0.1 - - [28/May/2013 17:22:31] "GET /technology/actuator.html HTTP/1.1" 200 -
127.0.0.1 - - [28/May/2013 17:22:31] code 404, message File not found
Run Code Online (Sandbox Code Playgroud) 可以通过以下方式从ouside Network设置和访问Apache服务器:http : //lifehacker.com/124212/geek-to-live--how-to-set-up-a-personal-home-web-server 我想使用python SimpleHTTPServer实现类似的功能。这怎么可能?
最近我一直在玩 Python 以发现它的潜力,我刚刚偶然发现了 SimpleHTTPServer。
我在 Windows 10 上。
我跑:
python -m SimpleHTTPServer
Run Code Online (Sandbox Code Playgroud)
输出是:
Serving HTTP on 0.0.0.0 port 8000 ...
Run Code Online (Sandbox Code Playgroud)
我在智能手机和平板电脑上都打开了浏览器,但是当我输入“ http://127.0.0.1:8000 ”时,它们都无法连接到服务器。
(翻译自意大利语,可能不是准确的翻译)
iPad:“Safari 无法打开页面,因为服务器已停止响应”
Android:“网页没有响应。该网页可能暂时不可用,或者可能已移至其他地址”
为什么它不起作用?我该如何解决?
我刚刚尝试python -m SimpleHTTPServer 8000在一个目录中运行,我有一些基本的Web文件.它首先在它打印的命令行上运行正常:
Serving HTTP on 0.0.0.0 port 8000 ...
但是,当我尝试http://127.0.0.1:8000在浏览器中查看我的页面时,我收到以下错误消息:
发生服务器错误.请联系管理员.
很抱歉,如果这看起来很模糊,但我不是Python开发人员,所以我不知道它为什么不起作用.您有任何想法,为什么或如何开始调试此问题?
使用SimpleHTTPServerPython 中的模块构建一个简单的文件服务器,但是我在尝试从连接的客户端获取 IP 时遇到了问题。这是我所拥有的..
import SimpleHTTPServer
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", 8080), Handler)
print "Serving local directory"
while True:
httpd.handle_request()
print Handler.client_address[0]
Run Code Online (Sandbox Code Playgroud)
当客户端连接时,我得到..
AttributeError:SimpleHTTPRequestHandler 类没有属性“client_address”
我知道这是因为我还没有实例化这个类,但是有没有另一种方法可以从客户端获取 IP 而不必创建处理程序实例?建立连接时,客户端的 IP 会输出到控制台,我只需要一种在脚本中获取该 IP 的方法。
谢谢!
我有一个用 Python 实现的非常简单的 HTTPServer。代码如下:
import SimpleHTTPServer
import SocketServer as socketserver
import os
import threading
class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
path_to_image = 'RGBWebcam1.png'
img = open(path_to_image, 'rb')
statinfo = os.stat(path_to_image)
img_size = statinfo.st_size
print(img_size)
def do_HEAD(self):
self.send_response(200)
self.send_header("Content-type", "image/png")
self.send_header("Content-length", img_size)
self.end_headers()
def do_GET(self):
self.send_response(200)
self.send_header("Content-type", "image/png")
self.send_header("Content-length", img_size)
self.end_headers()
f = open(path_to_image, 'rb')
self.wfile.write(f.read())
f.close()
class MyServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
def __init__(self, server_adress, RequestHandlerClass):
self.allow_reuse_address = True
socketserver.TCPServer.__init__(self, server_adress, RequestHandlerClass, False)
if __name__ == "__main__":
HOST, PORT = "192.168.2.10", 9999
server = MyServer((HOST, PORT), MyHandler) …Run Code Online (Sandbox Code Playgroud) 我有一个使用 http.server 的小型演示页面。我尝试与同事共享,但发现 http.server 在任何打开的连接上仍然被阻止,因此无法为并发用户提供服务。有没有办法运行 http.server 来处理并发连接?我在这里没有发现任何有用的东西:https ://docs.python.org/3/library/http.server.html
simplehttpserver ×10
python ×9
http ×4
bash ×1
c ×1
concurrency ×1
fileserver ×1
httpserver ×1
ip ×1
localhost ×1
networking ×1
refresh ×1