pythonweb静态服务器_静态Web服务器

静态Web服务器

可以发出请求的浏览器提供静态文档的程序。

平时我们浏览百度新闻数据的时候,每天的新闻数据都会发生变化,那访问的这个页面就是动态的,而我们开发的是静态的,页面的数据不会发生变化。

搭建Python自带静态Web服务器

如何搭建Python自带的静态Web服务器(windows可以实现资源共享的目的)

语法:python -m http.server 端口号

1.win+R 输入cmd进入命令指令窗口

2.切换目录,选择目录建立网页

3.输入python -m http.server 8080

4.打开浏览器输入自己的ip+端口号,例如127.0.0.1:8080,静态web就搭建完成。

开发自己的静态Web服务器

实现步骤:

编写一个TCP服务端程序

获取浏览器发送的http请求报文数据

读取固定页面数据,把页面数据组装成HTTP响应报文数据发送给浏览器。

HTTP响应报文数据发送完成以后,关闭服务于客户端的套接字。

import socket

def main():

#创建TCP socket

tcp_server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

address = ('127.0.0.1',8888)

#绑定地址

tcp_server.bind(address)

#监听

tcp_server.listen()

while True:

#等待连接

new_tcp, addr = tcp_server.accept()

recv_data = new_tcp.recv(1024).decode('utf-8')

print(recv_data)

#对文件进行解码

with open('static/test.html','rb') as file:

file_data = file.read()

#http报文

#响应行

response_line = 'HTTP /1.1 200\r\n'

#响应头

response_header = 'SERVER:version 1.0\r\n'

#响应体

response_body = file_data

#响应报文

response_data=(response_line+response_header+'\r\n').encode('utf-8')+response_body

#发送响应报文

new_tcp.send(response_data)

new_tcp.close()

tcp_server.close()

if __name__ == '__main__':

main()

返回指定页面数据

import socket,os

def info(fn):

path = os.getcwd()

if fn in ["/photo.html",'/chaoge.html']:

pass

else:

fn = '/404.html'

with open(path+fn,'rb') as file:

content = file.read()

return content

def main():

tcp_server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

tcp_server.bind(('127.0.0.1',8888))

tcp_server.listen()

while True:

new_tcp_server ,addr = tcp_server.accept()

data_1=new_tcp_server.recv(1024).decode('utf-8')

g_info=(data_1.split(' ')[1])

response_line='HTTP/1.1 200 OK\r\n'

response_header = 'My Web\r\n'

response_info = info(g_info)

data = (response_line+response_header+'\r\n').encode('utf-8')+response_info

new_tcp_server.send(data)

new_tcp_server.close()

tcp_server.close()

if __name__ == '__main__':

main()

原文链接:https://blog.csdn.net/weixin_45389821/article/details/111937742

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值