Python HTTP服务器从iPhone获取多个请求
我创建了一个非常基本的Python http服务器(Python v3.2),它使用BaseHTTPRequestHandler处理GET请求。当我在电脑上使用任何网络浏览器时,它都可以正常工作。但是,当我在iPhone上使用移动浏览器时,我总是看到三个GET请求 例如,如果我运行以下命令:Python HTTP服务器从iPhone获取多个请求,iphone,python,http,request,Iphone,Python,Http,Request,我创建了一个非常基本的Python http服务器(Python v3.2),它使用BaseHTTPRequestHandler处理GET请求。当我在电脑上使用任何网络浏览器时,它都可以正常工作。但是,当我在iPhone上使用移动浏览器时,我总是看到三个GET请求 例如,如果我运行以下命令: import http.server from http.server import HTTPServer from http.server import BaseHTTPRequestHandler c
import http.server
from http.server import HTTPServer
from http.server import BaseHTTPRequestHandler
class MyHandler (BaseHTTPRequestHandler):
def do_GET(self):
print(self.path)
print('running server on port 80')
server = HTTPServer(('', 80), MyHandler)
server.serve_forever()
…然后我进入iPhone上的网络浏览器,输入“192.168.1.191/blah”,输出如下:
/blah
/blah
/blah
但如果我在计算机上执行此操作,它只发送一个GET请求,因此输出如下:
/blah
有人能向我解释为什么iPhone会这样吗?它每次始终发送3个请求。这有什么办法吗
顺便说一句,如果我使用Apache服务器,iPhone不会这样做。它只发送一个GET请求。只有当我使用Python运行服务器时,才会出现这种情况
谢谢,Safari最多会返回三次请求——显然是在出现HTTP错误的情况下。
从do_GET()方法内部生成正确的HTTP响应将解决此问题。Safari最多返回三次请求-显然是在出现HTTP错误的情况下。
从do_GET()方法内部生成正确的HTTP响应将解决此问题。好的,那么我是否可以在do_GET()方法中添加以下行?self.send_response(200)当我这样做时,它似乎只锁定了一秒钟,但是的,它只发送一个GET。很抱歉,当一个请求通过Safari到达服务器端时,它会正常工作。我使用AJAX将不同的GET背靠背发送到我的Python服务器。当我使用上述方法(发送200响应)时,它会锁定几秒钟。因此,如果我尝试发送两个不同的,相隔1秒的,第一个到达,然后它挂起几秒钟,然后第二个到达并被处理。是否有其他HTTP响应我可以尝试?谢天谢地。我明白了。我使用self.send_response_only(200)。谢谢你的指导。好的,我是否可以在do_GET()方法中添加以下行?self.send_response(200)当我这样做时,它似乎只锁定了一秒钟,但是的,它只发送一个GET。很抱歉,当一个请求通过Safari到达服务器端时,它会正常工作。我使用AJAX将不同的GET背靠背发送到我的Python服务器。当我使用上述方法(发送200响应)时,它会锁定几秒钟。因此,如果我尝试发送两个不同的,相隔1秒的,第一个到达,然后它挂起几秒钟,然后第二个到达并被处理。是否有其他HTTP响应我可以尝试?谢天谢地。我明白了。我使用self.send_response_only(200)。谢谢你的指导。