python3实现微型的web服务器

  

<>强实验目的:用socket 模拟一个微型的web服务器,当py脚本运行起后,实微型web服务器架起了,然后用本地浏览器访问127.0.0.1:8080 (web服务器的ip_port)时web服务器就会将网页内容传给浏览器,实现网页浏览只

  

西南+ sys: python3.7.2 + windows10 64位

  

本地准备的服务器端网页为下载的网址之家主页(我已上载并上,传点击这里)

  

通过这个实验让我学到了:

  

1只,当得到请求一个主页时,要完整的显示一个页面(包括文,本图片,css绚染等)是要得到多次请求的。

  

2。响应回复本地页网,打开(filepath风险权重)时要特别的注意

        进口套接字   进口操作系统      curfilepath=os.path.split (os.path.realpath (__file__)) [0]。替换(“\ \”,“/?   打印(f 'curfilepath: {curfilepath}”)         def new_socket_server (new_socket new_addr):   如果new_addr [0] !=":   print (f '当前客户端{new_addr}已连接上服务器端。”)      # 3。接收信息   file_name="   request_data=https://www.yisu.com/zixun/new_socket.recv (1024) .decode (utf - 8)   如果request_data !=":   print (f '有收到新的信息,信息如下:\ n {request_data}’)   file_name=request_data.splitlines () [0]。分割(' ')[1]   打印(f 'file_name: {file_name}”)   如果file_name==??   file_name='/index . html '   打印(f 'file_name: {file_name}”)   张开(curfilepath +/测试。txt”、“+”), f:   f。写(file_name + ' \ n ')      # 4。回复信息   试一试:   f=开放(curfilepath +/htmltest + file_name, rb)   除了:   响应=癏TTP/1.1 404 NOT FOUND \ r \ n”   响应+=' \ r \ n '   响应+=? - - - - - - - - - -文件未找到- - - - - - -”   new_socket.send (response.encode (utf - 8))   其他:   html_content=f.read ()   f.close ()   响应=癏TTP/1.1 200 OK \ r \ n”+“\ r \ n”   new_socket.send (response.encode (utf - 8))   new_socket.send (html_content)         def main ():   # 1。创建插座   tcp_server_socket=socket.socket(插座。AF_INET socket.SOCK_STREAM)      # 2。连接服务器   server_ip_port=(127.0.0.1, 8080)   tcp_server_socket.bind (server_ip_port)   tcp_server_socket.listen (128)   而真正的:   打印(“正在等待客户端连接……”)   new_socket new_addr=tcp_server_socket.accept ()   new_socket_server (new_socket new_addr)   new_socket.close ()         if __name__==癬_main__”:   main ()      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

python3实现微型的web服务器