脚本宝典收集整理的这篇文章主要介绍了手写网站服务器~用Python手动实现一个简单的服务器,不借助任何框架在浏览器中输出任意内容,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
在公司网站开发中,我们往往借助于Flask、Django等网站开发框架去提高网站开发效率。那么在面试后端开发工程师的时候,面试官可能就会问到网站开发的底层原理是什么F1f;
我们不止仅仅会使用框架开发,还需要知其所以然
今天领大家不借助任何框架的基础上手动搭建一个资料查找网站
如何实现一个静态的服务器呢? 可以使用Python自带的一个通讯模型:socket
python中内置的网络模型库tcp / udp
import socket
def service_client(new_socket):
request = new_socket.recv(1024)
PRint(request)
如果浏览器在接收完http协议数据之后遇到了换行,自动将下面的数据转成网站内容body中去
response = 'HTTP/1.1 200 OK rn'
response += 'rn'
# 构建你想要显示的数据内容
response += 'hello world'
new_socket.send(response.encode('utf-8'))
new_socket.close()
socket模块需要两个参数 网络协议(pc ipv4 IPv6) 模型类型
def main():
tcp_server_socket = socket.socket(socket.AF_inet, socket.SOCK_STREam)
我们操作系统内部有65535个服务端口,当一个程序运行的时候[进程] 占用一个端口 浏览器软件运行占用的端口:80 文件上传端口:22 网站指定端口:443
端口是有限的,当程序完成任务之后一定要释放端口 刷新资源
tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
tcp_server_socket.bind(('', 80))
通过浏览器去访问网站资源 [数据 htML css JavaScript 静态文件(图片 音频)] 需要让浏览器首先能找到这台电脑 ip 才可以访问这台电脑的数据资源 需要绑定电脑的ip地址
等待浏览器链接
tcp_server_socket.listen(128)
while True:
'''
new_socket 负责向浏览器发送数据的
client_addr 记录当前链接电脑的信息(ip port)
'''
new_socket, client_addr = tcp_server_socket.accept()
service_client(new_socket)
# 使用new_socket向浏览器发送数据
if __name__ == "__main__":
main()
出现乱码,可以把utf-8改为GBK
以上是脚本宝典为你收集整理的手写网站服务器~用Python手动实现一个简单的服务器,不借助任何框架在浏览器中输出任意内容全部内容,希望文章能够帮你解决手写网站服务器~用Python手动实现一个简单的服务器,不借助任何框架在浏览器中输出任意内容所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。