`
忧里修斯
  • 浏览: 436516 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

简易web服务器版本二

阅读更多
# -*- coding:UTF-8 -*-

import os
import BaseHTTPServer
import time
import threading
import urlparse

class ServerHandler(BaseHTTPServer.BaseHTTPRequestHandler):
    
    '''
    简单的Http服务器,处理get请求
    '''
    
    #处理用户的GET请求
    def do_GET(self):
        try:
            str = urlparse.urlparse(self.path)
            print str
            #请求的参数
            args = dict(urlparse.parse_qsl(str.query))
            #请求的路径
            filepath = os.curdir+os.sep+self.path
            #请求路径不能正确打开
#            if ( False == os.path.isfile(filepath)):
#                self.send_response(404)
#                self.end_headers() 
#                return
            
            #处理普通的链接请求
            content = None;
            if ( filepath[-5:] == ".html"  ):
                content = "text/html; charset=utf-8";
            elif ( filepath[-4:] == ".css" ):
                content = "text/css";
            elif ( filepath[-3:] == ".js" ):
                content = "application/x-javascript";
            elif ( filepath[-4:] == ".png" ):
                content = "image/png";
            elif ( filepath[-4:] == ".gif" ):
                content = "image/gif";
            elif ( filepath[-4:] == ".jpg" ):
                content = "image/jpg";                                
            elif ( filepath[-4:] == ".mp3" ):
                content = "audio/mpeg";                
            elif ( filepath[-4:] == ".xml" ):
                content = "text/xml; charset=utf-8";  
                
            #请求是以上文件类型
            if ( content <> None ):
                self.send_response(200)
                self.send_header("Content-Length", os.path.getsize(filepath))
                self.send_header("Content-type", content)
                self.end_headers()        
                with open(filepath , "rb" ) as f:
                    self.wfile.write(f.read());
                    self.wfile.flush();                
                return
            
            #请求不包含操作,直接返回,否则特殊处理
            if (False == args.has_key('cmd') ):
                return
            cmd = args['cmd']
            
            #若请求包含操作
            if cmd == 'searchUser':
                self.send_response(200);
                self.send_header("Content-Type", 'text/html')
                self.end_headers()
                self.wfile.write('<b>成功</b>')
                self.wfile.close()
            
        except:
            print '出现异常'
            self.send_error(404, 'File Not Found:%s' % filepath)
    

class Server:
    def startServer(self):
        server_address = ('', 8000)
        httpd = BaseHTTPServer.HTTPServer(server_address, ServerHandler)
        server_thread = threading.Thread(target=httpd.serve_forever)
        server_thread.setDaemon(True)
        server_thread.start()
        
        
if __name__ == '__main__':
    
    server = Server()
    server.startServer()
    starttime = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))  
    print '%s 服务器已启动' % starttime
    time.sleep(50000)
  • pyp.rar (39.3 KB)
  • 下载次数: 9
分享到:
评论

相关推荐

    易语言简易WEB服务器

    2. **简易WEB服务器**:简易WEB服务器是指功能相对简单的HTTP服务器,通常只支持基础的GET和POST请求,不包含复杂的路由、会话管理等功能。这种服务器常用于教学、测试或者个人项目,帮助开发者理解HTTP协议和服务器...

    易语言简易WEB服务器源码.rar

    【标题】"易语言简易WEB服务器源码.rar" 指的是一款基于易语言开发的简单Web服务器的源代码资源。易语言是中国本土设计的一种编程语言,它以其独特的汉字编程方式,降低了编程的门槛,使得非计算机专业人员也能快速...

    VB6.0编写的简易WEB服务器

    VB6.0编写的简易WEB服务器是一个非常适合初学者入门网络编程的项目。VB6.0(Visual Basic 6.0)是微软推出的一种可视化编程工具,以其易学易用的特性,深受程序员喜爱。在这个项目中,我们将探讨如何利用VB6.0构建一...

    VC15简易WEB服务器研究毕业设计全套

    VC15简易WEB服务器研究毕业设计全套VC15简易WEB服务器研究毕业设计全套VC15简易WEB服务器研究毕业设计全套VC15简易WEB服务器研究毕业设计全套VC15简易WEB服务器研究毕业设计全套VC15简易WEB服务器研究毕业设计全套VC...

    简易Web服务器.rar

    简易Web服务器.rar

    简易个人WEB服务器

    【简易个人WEB服务器】 在数字化时代,个人网页和网站已经成为表达自我、分享信息的重要平台。然而,对于非专业人员来说,搭建一个Web服务器可能显得既复杂又费时。"简易个人WEB服务器"软件解决了这个问题,它提供...

    简易WEB服务器(C++)

    【简易WEB服务器(C++)】是一个编程项目,旨在通过C++语言实现一个基础的互联网服务器,能够响应用户的HTTP请求并提供文件服务。这个项目主要关注网络编程和HTTP协议的理解,是学习网络通信和服务器开发的初级实践...

    简易web服务器实现

    本篇文章将深入探讨如何实现一个简单的Web服务器,并基于给出的标题"简易web服务器实现"以及描述中的信息,我们将重点讲解Web服务器的基本概念、工作原理以及实现步骤。 一、Web服务器基本概念 Web服务器是一种运行...

    简易静态Web服务器

    【简易静态Web服务器】是一个适合Java初学者的项目,它实现了最基本的Web服务器功能,只用于加载HTML文件。这个Web服务器的核心在于三个Java类:HttpServer、Request和Response,每个类都扮演着Web服务中关键角色。 ...

    (linux下C语言实现)简易web服务器

    综上所述,开发一个基于Linux的C语言简易Web服务器涉及到的知识点广泛,包括C语言基础、网络编程原理、HTTP协议、操作系统接口以及安全性等。通过这样的实践,不仅可以深入理解网络通信过程,也能提升系统级编程的...

    JAVA版简易web服务器

    学习计算机网络http协议时写的 JAVA版简易web服务器 JAVA版简易web服务器 JAVA版简易web服务器 JAVA版简易web服务器 JAVA版简易web服务器 JAVA版简易web服务器 JAVA版简易web服务器

    简易WEB服务器(简单改造可当IIS使用)

    【标题】简易WEB服务器(简单改造可当IIS使用) 这个标题揭示了我们要讨论的核心内容:一个基础的WEB服务器,其设计目标是可以经过简单的修改,用作类似IIS(Internet Information Services)这样的专业Web服务器。...

    个人简易WEB服务器搭建软件

    【个人简易WEB服务器搭建软件】 在互联网世界中,拥有自己的Web服务器可以让你自由地托管网站、测试应用程序或者分享数据。对于个人用户来说,无需复杂的配置和专业知识,就能搭建起一个简单的Web服务器,这就是...

    简易web服务器博客源码

    【简易Web服务器博客源码详解】 在Web开发领域,创建一个简易的Web服务器博客源码是初学者和开发者常做的实践项目。这个项目的核心目标是实现一个基础的HTTP服务器,能够处理请求并返回HTML页面,展示个人或团队的...

    易语言源码易语言简易WEB服务器源码.rar

    易语言源码易语言简易WEB服务器源码.rar 易语言源码易语言简易WEB服务器源码.rar 易语言源码易语言简易WEB服务器源码.rar 易语言源码易语言简易WEB服务器源码.rar 易语言源码易语言简易WEB服务器源码.rar ...

    个人WEB服务器 2.0

    【个人WEB服务器 2.0】是一款专为个人用户设计的轻量级Web服务器软件,它使得用户可以在自己的计算机上搭建起属于自己的网站,进行网页浏览、数据共享、测试网页应用等多种用途。这款2.0版本可能在原有基础上提升了...

    Netserver(简易WEB服务器)

    Netserver是一款简易的WEB服务器,它的设计目标是提供一个轻量级、易操作的平台,让用户可以快速地搭建和管理自己的Web服务。这款服务器适用于个人项目、小型企业或教学环境,因为它简化了复杂的网络配置过程,让...

    简易IIS服务器 服务器 IIS

    简易IIS服务器,全称为Internet Information Services(互联网信息服务),是由微软公司提供的一个功能强大的Web服务器软件。它作为一个重要的组件存在于Windows操作系统中,为用户提供网页托管、应用程序部署、FTP...

    简易Web服务器

    【简易Web服务器】是针对初学者设计的一个基于Java编程语言实现的简单Web服务器项目。这个项目旨在帮助初学者理解Web服务器的基本工作原理和如何用Java实现一个基础的HTTP服务器。通过学习和实践这个项目,你可以...

Global site tag (gtag.js) - Google Analytics