今天用python写一个简单的web服务器代码网上都有只是为了方便大家学习做了一个简单的教程 第一首先我们来一张架构以及运行过程的流程图
本文学习仅供参考,需要更多资料可以加群:496257369 简单来说就是web服务器一直监听是否有来自用户的请求 1.如果有请求判断请求得html文件是否存在 2.存在就返回html文件给用户 3.不存在就返回一个404的错误给用户 效果
本文学习仅供参考,需要更多资料可以加群:496257369
本文学习仅供参考,需要更多资料可以加群:496257369 下面贴上这次实现的代码 #-*- coding:utf-8 -*-from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServerclass MyHandler(BaseHTTPRequestHandler): #继承BaseHTTPRequestHandler类里面所有的方法 def do_GET(self): try: #当服务器接收到GET请求后调用此方法并尝试打开客户端传来的路径('移除前导"/"') 如果一切正常就会return一个ok #比如我的url是 127.0.0.1/cehsi.html (第八行)会读取当前路径下面的ceshi.html files = open(self.path[1:],'r') self.send_response(200) #如果找到了就返回一个200 self.send_header('Content-type', 'text/html') #这个是数据的头部文件 self.wfile.write(files.read()) #读取html文件并返回给用户 files.close() #释放文件占用的系统资源 except: self.send_error(404, 'File not found: %s '% self.path) #如果报错就提示404 没有找到文件def main(): try: server = HTTPServer(('', 8088), MyHandler) #实例化对象server调用HTTPServer类 并传进去一个8088(socket服务监听的端口) 并把我们自己写的类传进去 print 'welcome to the machine...' #打印欢迎信息 print 'ctrl+c quit' #退出方法 server.serve_forever() #调用serve_forver方法让程序一直监听8088端口并循环等待用户请求 except KeyboardInterrupt: print 'ctrl+c received, shuttingdow server' #如果监听到键盘输入crtl+c就停止程序 server.socket.close()if __name__ == '__main__': main()Html代码 ceshi.html
|
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|