栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

用Python手动实现一个简单的服务器,不借助任何框架在浏览器中输出任意内容

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用Python手动实现一个简单的服务器,不借助任何框架在浏览器中输出任意内容

前言

在公司网站开发中,我们往往借助于Flask、Django等网站开发框架去提高网站开发效率。那么在面试后端开发工程师的时候,面试官可能就会问到网站开发的底层原理是什么?

所以我们不止仅仅会使用框架开发,还需要知其所以然

那么今天领大家不借助任何框架的基础上手动搭建一个资料查找网站

主要内容

TCP网络模型
正则表达式匹配资源
如何编写一个tcp server服务端

开始我们的代码,先是导入模块
如何实现一个静态的服务器呢? 可以使用Python自带的一个通讯模型:socket

python中内置的网络模型库tcp / udp

import socket
为浏览器发送数据的函数
  1. 当浏览器链接到网站服务器的时候
def ervice_client(new_socket):
    request = new_socket.recv(1024)
    print(request)
  1. 向浏览器发送http数据
    如果浏览器在接收完http协议数据之后遇到了换行,自动将下面的数据转成网站内容body中去
response = 'HTTP/1.1 200 OK rn'
response += 'rn'
# 构建你想要显示的数据内容
response += 'hello world'
  1. 浏览器接受到的数据是由编码集的,所以我们需要对字符串进行一次编码
 new_socket.send(response.encode('utf-8'))
创建一个执行函数
  1. 创建一个tcp套接字
    socket模块需要两个参数 网络协议(pc ipv4 ipv6) 模型类型
def main():
    tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

3.绑定本机信息

tcp_server_socket.bind(('', 80))

通过浏览器去访问网站资源 [数据 html css Javascript 静态文件(图片 音频)]
需要让浏览器首先能找到这台电脑 ip 才可以访问这台电脑的数据资源
需要绑定电脑的ip地址

4.将网站服务设置成监听模式
等待浏览器链接

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向浏览器发送数据
运行代码


出现乱码,可以把utf-8改为GBK

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/599291.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号