欢迎加入python学习交流群 667279387

工作经常要用到测试http和https协议,这里写了两个简单的脚本实现简单的http服务器和https服务器。

http服务器代码

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()

https服务器代码

# taken from https://gist.github.com/dergachev/7028596
#
# generate server.xml with the following command:
# openssl req -new -x509 -keyout https_svr_key.pem -out https_svr_key.pem -days 3650 -nodes
#
import BaseHTTPServer
import SimpleHTTPServer
import os
import socket
import ssl script_home = os.path.dirname(os.path.abspath(__file__))
ip = [(s.connect(('8.8.8.8', 53)), s.getsockname()[0], s.close())
for s in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1]
port = 8888 def main():
print ("simple https server, address:%s:%d, document root:%s" % (ip, port, script_home)) httpd = BaseHTTPServer.HTTPServer(('127.0.0.1', port), SimpleHTTPServer.SimpleHTTPRequestHandler)
httpd.socket = ssl.wrap_socket(httpd.socket, certfile='./https_svr_key.pem', server_side=True)
httpd.serve_forever() if __name__ == '__main__':
os.chdir(script_home)
main()

欢迎加入python学习交流群 667279387

最新文章

  1. 钉钉开放平台demo调试异常问题解决:hostname in certificate didn't match
  2. iOS 触摸事件与UIResponder(内容根据iOS编程编写)
  3. 新课程开始的第二天,HTML基础制作
  4. hdu 2586 How far away
  5. 我对Padding Oracle Attack的分析和思考
  6. HBase(二): c#访问HBase之股票行情Demo
  7. AssetBundle依赖关系
  8. Apriori算法例子
  9. YII千万级PV架构经验分享--俯瞰篇--性能介绍
  10. 【转载】java数据库操作
  11. -_-#【CSS3】浏览器前缀
  12. 变形课--hdu1181
  13. 不允许在单例对象中创建Srping容器
  14. Java基础之String类
  15. 【JavaScript从入门到精通】第三课 初探JavaScript魅力-03
  16. Codeforces Beta Round #40 (Div. 2)
  17. 写一写关于python开发面试的常遇到的问题以及解答吧,持续更新——看心情
  18. android显示通知栏Notification以及自定义Notification的View
  19. hive 修复分区、添加二级分区
  20. [转]C#中图片.BYTE[]和base64string的转换

热门文章

  1. [转载]【转】教你如何实现linux和Windows之间的文件共享,samba的安
  2. pat 1069 The Black Hole of Numbers(20 分)
  3. linux与Windows进程控制
  4. linux命令--文件目录操作命令
  5. H5之外部浏览器唤起微信分享
  6. windows 10 上源码编译boost 1.66.0 | compile boost 1.66.0 from source on windows 10
  7. MySQL基础知识面试与答案
  8. myBaits持久性框架
  9. Github远程库与Git本地库连接
  10. spark graphX作图计算