我正在实现带有缓存的简单代理,并处理某些情况下客户端请求的URL不存在。
我知道这是首先进入DNS并以err返回的结果无法解析主机。我目前正在关闭套接字,这将慢慢向客户端返回空响应(我正在使用curl进行测试)。如果没有我的代理,curl将以curl(6)响应,因为无法解析主机。目前,我从服务器收到curl(52)空响应。
我如何直接向客户端发送消息,以便它立即知道有错误并与没有代理的情况下响应相同?
编辑
我的想法是例外,我可以发送一些HTTP响应或强制从客户端关闭套接字以快速释放客户端的内容。这是发生这种情况的部分代码:
try:
host_address_info = socket.getaddrinfo(host, port,
type=socket.SOCK_STREAM,
family=socket.AF_INET)
except socket.gaierror as err:
utils.debug_print('We weren\'t able to resolve host.')
utils.debug_print('err:', err)
input_sockets.remove(client_socket)
client_socket.close()
active_sockets.remove(client_socket)
return
谢谢!