import base64
from multiprocessing import Process, Queue
from httplib import HTTPSConnection
import ssl
import datetime
class MyHttpEndpointHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def __init__(self, q, *args):
self.q = q
BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, *args)
def do_POST(self):
self.send_response(200, 'OK')
self.send_header('Server', 'Apache-Coyote/1.1')
self.send_header('Content-type','text/xml')
self.end_headers()
# Extract and print the contents of the POST
length = int(self.headers['Content-Length'])
print "Length of content is " + str(length)
post_data = self.rfile.read(length)
self.q.put(post_data)
class ServerEndpointHandler:
def __init__(self,q,keyfile,certfile):
self.q = q
self.keyfile = keyfile
self.certfile = certfile
def setupEndpointHandler(self, queue):
return lambda *args: MyHttpEndpointHandler(queue, *args)
def handleEndpoint(self):
print "Starting endpoint handler"
handler = self.setupEndpointHandler(self.q)
httpd = BaseHTTPServer.HTTPServer(('',8443), handler)
httpd.socket = ssl.wrap_socket(httpd.socket, keyfile=self.keyfile, certfile = self.certfile, server_side=True)
httpd.serve_forever()
if __name__ == '__main__':
q = Queue()
print "trying to start endpoint"
ep = ServerEndpointHandler(q, keyfile="~/certificates/server.key", certfile = "~/certificates/server.crt")
t2 = Process(target=ep.handleEndpoint)
t2.start()
t2.join()
我遇到的问题是,在RedhatLinux服务器上,接受连接的时间大约为20秒,而在Windows7下运行的相同代码的连接时间大约为200毫秒。在
两个系统都运行python2.6.6。在
redhat版本是6.4(圣地亚哥)
^{pr2}$
我已经将openssl和python包更新到Redhat的当前版本。在Installed Packages
openssl.x86_64 1.0.1e-16.el6_5.14 @rhel-x86_64-server-6
python.x86_64 2.6.6-52.el6 @rhel-x86_64-server-6
Available Packages
openssl.i686 1.0.1e-16.el6_5.14 rhel-x86_64-server-6
python.i686 2.6.5-3.el6_0.2 rhel-x86_64-server-6
我认为延迟与协议协商有关,我想知道从哪里解决这个问题,或者这个问题可能是什么。在
有什么线索吗?在
下面的python代码用于创建HTTPS服务器。在'''Created on 23/07/2014@author: o880732'''import sysimport BaseHTTPServerimport base64from multiprocessing import Process, Queuefrom httplib import HTTPSConnectionimport ssli...
HTTP
Web
服务器
(ip ='localhost',port = 8000):
Http
Servers().start()
具有CGI(ip ='localhost',port = 8000)的
HTTP
Web
服务器
:
Http
Servers(use_cgi=True).start()
HTTP
S Web
服务器
(ip ='localhost',端口= 1443):
Http
Servers(use_
ssl
=True).start()
具有CGI(ip ='localhost',端口= 1443)的
HTTP
S Web
服务器
:
Http
Servers(use_
ssl
=True, use_cgi=True).sta
复制代码 代码如下:# -*- coding: cp936 -*-from scapy.all import *from threading import Thread,activeCountfrom random import randint
class Loop(Thread): def __init__(self,remoteAddr): Thread.__init__(self) self.remoteAddr = remoteAddr
def run(self): ip = str(randint(0,255))+’.’\
python
3
http
.server模块 搭建简易
http
服务器
1、选择
服务器
根目录2、开启
http
服务3、本地查看4、非本地查看
1、选择
服务器
根目录
选择一个目录作为
http
服务器
的根目录,并进入。
2、开启
http
服务
运行
命令
python
-m
http
.server 8888
3、本地查看
本地浏览器输入
http
://localhost:8888/可以查看简易
服务器
4、非本地查看
运行
ipconfig(window) 或者ifconfig(linux)查看电脑ip地址。这里为:
对于
Python
开发用户来讲,PIP安装软件包是家常便饭。但国外的源下载速度实在太
慢
,浪费时间。而且经常出现下载后安装出错问题。所以把PIP安装源替换成国内镜像,可以大幅提升下载速度,还可以提高安装成功率。
新版ubuntu要求使用
http
s源,要注意。
清华:
http
s://pypi.tuna.tsinghua.edu.cn/simple
阿里云:
http
://mir...
代码中存在性能问题,如频繁的 I/O 操作或过于复杂的运算
服务器
硬件问题,如硬盘故障或磁盘读写速度过
慢
Python
运行
时环境问题,如
Python
版本过低或第三方库版本不兼容.
建议进行性能调优和监控,以确定问题的具体原因。
certfile = "/path/to/cert.pem"
keyfile = "/path/to/key.pem"
ssl
_context =
ssl
.
SSL
Context(
ssl
.PROTOCOL_TLS_SERVER)
ssl
_context.load_cert_chain(certfile=certfile, keyfile=keyfile)
# 创建
HTTP
服务器
对象,将证书和私钥传递给
HTTP
SServer
server_address = ("localhost", 4443)
http
d =
http
.server.
HTTP
Server(server_address,
http
.server.Simple
HTTP
RequestHandler)
http
d.socket =
ssl
_context.wrap_socket(
http
d.socket, server_side=True)
# 启动
服务器
http
d.serve_forever()
在上面的代码中,我们首先使用
Python
的`
ssl
`模块生成了自签名证书和私钥。然后,我们使用`
http
.server`模块创建了一个
HTTP
服务器
对象,并将证书和私钥传递给`
HTTP
SServer`类的构造函数。最后,我们调用`serve_forever`方法启动
服务器
。
注意:由于这是一个自签名证书,客户端可能会收到安全警告。在实际生产环境中,应该使用由受信任的证书颁发机构(CA)签名的证书。