Python——tcp协议实现简单的静态网站服务器

news/2024/5/9 21:12:59/文章来源:https://blog.csdn.net/DCclient/article/details/91351785

概述:静态网站是指全部由HTML(标准通用标记语言的子集)代码格式页面组成的网站,所有的内容包含在网页文件中。网页上也可以出现各种视觉动态效果,如GIF动画、FLASH动画、滚动字幕等,而网站主要是静态化的页面和代码组成,一般文件名均以htm、html、shtml等为后缀。

需求:使用tcp协议编写一个简单静态网页服务器,使用户可以通过浏览器访问所有的html网页(或博客);

tcp简介:TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

python的socket套接字中就提供了tcp协议的使用,具体实现如下:

import socket
import redef serverce_client(new_socket):"""处理客户端到来的请求"""# 1 接受客户端请求,解堵塞request = new_socket.recv(1024).decode("utf-8")print(request)request_lines = request.splitlines()print("")print(">"*20)print(request_lines)# 请求格式 GET /favicon.ico HTTP/1.1# 根据请求格式建立正则file_name = ""ret = re.match(r'[^/]+(/[^ ]*)',request_lines[0])if ret:file_name = ret.group(1)print("-"*20, file_name)if file_name == '/':file_name = '/index.html'# 2 返回消息给浏览器# 2.1 返回消息分两部分,请求头和body,中间用空行分开try:fp = open("./html"+ file_name,"rb")except:response_404 = "HTTP/1.1 404 NOT FOUND  \r\n"response_404 += "\r\n"response_404 += "-----file not found -----"new_socket.send(response_404.encode("utf-8"))else:html_content = fp.read()fp.close()# 2.2 准备发送给浏览器的请求头response_header = "HTTP/1.1 200 OK\r\n"response_header += "\r\n"# 2.3 header和body分别发送给请求的浏览器new_socket.send(response_header.encode("utf-8"))new_socket.send(html_content)# 3 关闭处理的套接字new_socket.close()def main():"""tcp协议实现静态浏览器"""# 1 创建一个socket套接字tcp_server_socket  = socket.socket(socket.AF_INET, socket.SOCK_STREAM)tcp_server_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR, 1)# 2 绑定一个端口tcp_server_socket.bind(("",7890))# 3 监听套接字tcp_server_socket.listen(128)while True:# 4 等待客户端的链接new_socket, clien_addr = tcp_server_socket.accept()# 5 为这个客户端服务serverce_client(new_socket)# 6 关闭套接字tcp_server_socket.close()if __name__ == "__main__":main()

访问效果如下:(访问的首页可点击进行静态网页跳转)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_866762.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

时崎慕意:关于熊掌号对网站SEO的影响

本文不打算长篇大论,随便说些对大家有用的。 熊掌号在几个月前博主就开通了,但一直没接入网站,至今近日才开始使用熊掌号的一些功能。 时崎慕意 熊掌号本身就是百度旗下的,也只支持百度搜索引擎,而其他的搜狗、神马、…

多网站更新监测提醒 v2(采集+自动监控+一键提取)

多网站更新监测提醒 v2(采集自动监控一键提取) 此软件用于监控网站的文章更新内容,并且软件不限制于站点的数量,也就是说可以通过添加多个站点进行监控站点的文章更新情况和内容。特别是网站的小编。每天看N个网站发现新鲜货&…

0门槛操作SEO快排代做项目 无需SEO基础

最近很迷茫,还是因为网站定位方向的原因。 由于之前博客是做SEO这一块的,后来才慢慢转为了网赚这个领域。 所幸这两者之前的关联也是颇为联系,于是保留了部分原来的模样,例如网站标题和描述,都还存留SEO的字样&#…

微信网页小游戏网站源码带后台+可后台添加游戏+推荐到微信

微信网页小游戏网站源码带后台,淘宝上卖的很火的源码,免费公开!

如何提高百度指数,快速打造一个高权重网站

最近在看一小说,小说名忘了。 讲的是修道、玄幻的,内容略有不同,不是纯粹的爽文类型,条条框框的礼节道义颇多。给我的第一感觉就是,这TM也能上排名榜? 小说这一领域,十有九九都是小白文、爽文…

2021全球访问量最高网站榜单出炉!

最近锦鱼课堂从国外SimilarWeb数据平台了解到,2021中季度全球访问量最高的网站榜单出炉了,Google排第一,国内唯一上榜的网站“百度”排第七! 2021全球访问量最高网站榜单 流量 网站 微新闻 第1张 以下是SimilarWeb统计的2021中季度全球访问量…

透过网站备案看互联网创业环境

互联网在中国的发展非常迅猛,尤其是近两年,在淘宝"双十一"的带动下,电子商务也异常火爆,这就更加加剧了中小站长的草根创业梦想,在这过程中,涌现出了一批又一批想要通过互联网实现创业梦想的热血…

空手套白狼:招投标网站的内幕

空手套白狼:说说招投标网站的一些内幕 导读:我非常欢迎这类文章的投稿,并会做传播,作者是一位建筑公司的经理,会通过互联网与大量招标类网站有接触,并通过自己的经历告诉了我们这些网站的内幕,通…

友链SEO工具:换链神器测试体验

上周我报道了好友张森推出的一款“换链神器”的SEO软件,短短四个小时有近200IP访问,时隔三天后张森再次跟我反馈,一周的流量统计从卢松松博客就占据了1/8流量。 看上去,站长对这款软件有很大期待。 获得外链,目前最可…

大型网站架构演化历程

大型网站的挑战主要来自庞大的用户,高并发的访问和海量数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得棘手。大型网站架构主要就是解决这类问题。 本文内容大部分来自《大型网站技术架构》,这本书很值得一看…

你的密码被泄露过吗,还是主流网站泄露的!-- 火狐官方数据

火狐官方的密码泄露查询 网址:https://monitor.firefox.com 从上图可以看出,我的优酷密码被泄露过,还好我的优酷不是会员跟其它密码也不一样,不怕撞库工具 你的密码被泄露了吗?快查查看看,及时的改密码可有…

网站都变成灰色了,它是怎么实现的

估计大家发现了,今天,各大网站、APP都变灰了,原因想必大家都知道了。 粉丝群里有人在问,这是如何做到的? 我本来想写一篇文章来聊聊,没想到之前已经有一位大佬写过了,而且写的还不错&#xff0…

[ CSOL - CLS ] 活动网站 map area

文章目录 CLS时装CSOL 工创精英团(设置上传图片的宽高度,提升用户体验)(1)设置上传图片的宽高度 CSO歌手 奈奈(背景音乐DOM写入、小说分页切换、自定义滚动)(1)背景音乐D…

【皮皮哥资源网站】问道(一)

原文:https://www.shidaige.com/?s=69 <form method="get" class="site-search-form" action="https://www.shidaige.com/"><input class

浅谈跨网站脚本攻击(XSS)的手段与防范(简析新浪微博XSS攻击事件)

本文主要涉及内容&#xff1a; 什么是XSSXSS攻击手段和目的XSS的防范新浪微博攻击事件 什么是XSS 跨网站脚本&#xff08;Cross-sitescripting&#xff0c;通常简称为XSS或跨站脚本或跨站脚本攻击&#xff09;是一种网站应用程序的安全漏洞攻击&#xff0c;是代码注入的一种。…

提高网站速度的最佳实践

相信互联网已经越来越成为人们生活中不可或缺的一部分。ajax&#xff0c;flex等等富客户端的应用使得人们越加“幸福”地体验着许多原先只能在C/S实现的功能。比如Google机会已经把最基本的office应用都搬到了互联网上。当然便利的同时毫无疑问的也使页面的速度越来越慢。自己是…

3个网站测速服务

访问速度对于一个网站或博客来说实在太重要了&#xff0c;据有关部门的估计&#xff1a;一般一个浏览者如果在5-8秒钟没有打开一个网站&#xff0c;那么该网站会丢失1/3的浏览用户。超过10秒&#xff0c;你的访客绝对会失去耐心&#xff01;今天不讲如何改进访问速度的问题&…

网站备案流程_网站备案需要什么

每次写文章的时候都想感慨一句又好久没写文章了&#xff0c;这次也不例外。其实很多次都想写点什么&#xff0c;可是每次都犹豫不决&#xff0c;因为每次写个文章都挺费脑子的而且我容易闲扯&#xff0c;然后又是一大堆&#xff0c;就像我这段话。 关于备案&#xff0c;我折腾过…

如何完美更换WordPress网站的域名

前几天&#xff0c;一位WordPress王牌主机的用户问我&#xff0c;他的WordPress网站已经建立一年多了&#xff0c;现在想要修改网站使用的域名&#xff0c;该如何操作&#xff1f;这是WordPress用户经常遇到的问题。今天我们来给大家介绍一下&#xff0c;如何更换WordPress网站…

【chrome】安装证书并配置为受信任网站连接(windows)

当出现网站连接非私密连接不受信任时&#xff0c;可添加证书crt文件到系统证书里设置为受信任 1、chrome设置中&#xff0c; 高级-- 管理证书 2、选择 受信任的根证书颁发机构 -- 导入 3、下一步 找到所需要配置的*.crt证书文件&#xff0c;双击安装证书&#xff0c;选择第二…