搜索
简帛阁>技术文章>计算机网络课程实验1——WINDOWS 环境下实现 WEB 服务器(python)

计算机网络课程实验1——WINDOWS 环境下实现 WEB 服务器(python)

代码部分如下:

# coding=utf-8

from http.server import BaseHTTPRequestHandler, HTTPServer

PORT_NUMBER = 8080

# This class will handles any incoming request from
# the browser
class myHandler(BaseHTTPRequestHandler):
    # Handler for the GET requests
    def do_GET(self):
        if self.path == "/":
            self.path = "./html/from.html"
        if self.path == "/index.html":
            self.path = "./html/to.html"

        try:
            # Check the file extension required and
            # set the right mime type

            sendReply = False
            if self.path.endswith(".html"):
                mimetype = 'text/html'      # mimetype用来指示文件类型的字符串
                sendReply = True
            if self.path.endswith(".jpg"):
                mimetype = 'image/jpg'
                sendReply = True
            if self.path.endswith(".gif"):
                mimetype = 'image/gif'
                sendReply = True
            if self.path.endswith(".js"):
                mimetype = 'application/javascript'
                sendReply = True
            if self.path.endswith(".css"):
                mimetype = 'text/css'
                sendReply = True
            if sendReply:
                # Open the static file requested and send it
                f = open(self.path)
                self.send_response(200)
                self.send_header('Content-type', mimetype)
                self.end_headers()
                self.wfile.write(f.read().encode('utf-8'))
                f.close()
            return

        except IOError:
            self.send_error(404, 'File Not Found: %s' % self.path)


try:
    # Create a web server and define the handler to manage the
    # incoming request
    server = HTTPServer(('127.0.0.1', PORT_NUMBER), myHandler)
    print('Started httpserver on port ', PORT_NUMBER)

    # Wait forever for incoming http requests
    server.serve_forever()

except KeyboardInterrupt:
    print('^C received, shutting down the web server')
    server.socket.close()

代码分析:

本次实验通过Python程序实现web服务器的功能,其中代码的前半段是对于程序文件目录中的HTML文件进行相对路径到绝对路径的调整和修正,确保程序可以正确的找到我们指定的和HTML文件以及图片等网页资源。
代码的后半段,则是整个程序实现web功能的主要部分,主要为以下几个函数,共同实现get请求的处理。

self.send_response(200)
self.send_header('Content-type', mimetype)
self.end_headers()
self.wfile.write(f.read().encode('utf-8'))

代码实现效果:运行Python程序后进入localhost8080出现一下界面:

点击next_page之后,出现另一个界面:

实验心得与体会

通过这次实验,我对html协议有了更深刻的了解。知道了怎么用Python搭建一个web服务器。并进行简单的网页跳转和8080页面编写。对于HTTP 协议下客户/服务器模式中信息交换的实现原理、流程(建立连接、发送请求、发送响应、关闭连接),相比于理论知识,在动手实践后能更好地掌握和理解。

代码部分如下:codingutf8fromhttpserverimportBaseHTTPRequestHandler,HTTPServerPORT_NUMBER8080Thisclasswillha
实验步骤:一、选择合适的编程语言编程实现基于smtp协议的Email客户端软件。二、安装Email服务器或选择已有的Email服务器,验证自己的Email客户端软件是否能进行正常的Email收发功能。
PS:本文主要用于自我整理总结,方便后续参考,如果恰好帮助到你,也是件值得高兴的事所需环境下载PyQt5与PyQt5toolspipinstallPyQt5pipinstallPyQt5tools界面
一、实验目的:1.熟悉VLAN的技术背景和原理2.熟悉VLAN的基本配置方法和配置命令3.在交换机上实现VLAN的划分二、实验意义通过在实验室搭建VLAN实验环境,利用交换机进行VLAN配置,使学生
1、安装web管理工具控制面板》程序和功能》打开或关闭功能2、将internet信息服务中的所有选项全部勾上,并点击确定。3、打开浏览器,输入http://localhost/,如果出现以下界面说明
windowspython环境安装windowspython开发环境的搭建还是很方便的安装本体python本体的下载可以通过官方渠道,也可以通过windows应用商店,这里推荐后者,因为前者还要
我刚开始接触Python没多久,当然这也是为初学者来更好的去入门Python,我电脑上既跑着Windows也跑着RedHat的Linux,相比较而言,开发我还是更青睐于Linux系统,很多开发工具红
我刚开始接触Python没多久,当然这也是为初学者来更好的去入门Python,我电脑上既跑着Windows也跑着RedHat的Linux,相比较而言,开发我还是更青睐于Linux系统,很多开发工具红
前一直在通过windowsserverIIS跑php程序,直到后来,发现了她“wampserver,一个法国的windows+apache+php+mysql部署包。感觉挺好用的,分享一下。优势简单
本文为大家分享了Windows搭建python开发环境详细步骤,供大家参考,具体内容如下1搭建Java环境1直接从官网下载相应版本的JDK或者JRE并点击安装就可以(2JDK与JRE的区别:1