前言在公司网站开发中,我们往往借助于Flask、Django等网站开发框架去提高网站开发效率 。那么在面试后端开发工程师的时候,面试官可能就会问到网站开发的底层原理是什么?
我们不止仅仅会使用框架开发,还需要知其所以然
今天领大家不借助任何框架的基础上手动搭建一个资料查找网站
对于本篇文章有疑问的同学可以加【资料白嫖、解答交流群:1039649593】主要内容
- TCP网络模型
- 正则表达式匹配资源
- 如何编写一个tcp server服务端
python中内置的网络模型库tcp / udp
import socket为浏览器发送数据的函数1. 当浏览器链接到网站服务器的时候def service_client(new_socket):request = new_socket.recv(1024)print(request)2. 向浏览器发送http数据如果浏览器在接收完http协议数据之后遇到了换行,自动将下面的数据转成网站内容body中去
response = 'HTTP/1.1 200 OK \r\n'response += '\r\n'# 构建你想要显示的数据内容response += 'hello world'3. 浏览器接受到的数据是由编码集的,所以我们需要对字符串进行一次编码 new_socket.send(response.encode('utf-8'))4. 当服务完浏览器之后,需要释放系统资源new_socket.close()创建一个执行函数1. 创建一个tcp套接字socket模块需要两个参数 网络协议(pc ipv4 ipv6) 模型类型
def main():tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)我们操作系统内部有65535个服务端口,当一个程序运行的时候[进程] 占用一个端口
浏览器软件运行占用的端口:80
文件上传端口:22
网站指定端口:443
端口是有限的,当程序完成任务之后一定要释放端口 刷新资源
2. 当网站服务中断时 需要立即释放端口tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)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向浏览器发送数据启动程序if __name__ == "__main__":main()运行代码

文章插图
【适合新手写手的网站 手写网站服务器~用Python手动实现一个简单的服务器,不借助任何框架在浏览器中输出任意内容】出现乱码,可以把utf-8改为GBK

文章插图
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
