当前位置: 首页 > news >正文

网站建设全程揭秘pdf免费推广方式都有哪些

网站建设全程揭秘pdf,免费推广方式都有哪些,红河北京网站建设,wordpress主题主页修改静态Web服务器-返回固定页面数据学习目标能够写出组装固定页面数据的响应报文1. 开发自己的静态Web服务器实现步骤:编写一个TCP服务端程序获取浏览器发送的http请求报文数据读取固定页面数据,把页面数据组装成HTTP响应报文数据发送给浏览器。HTTP响应报文数据发送完…

静态Web服务器-返回固定页面数据

学习目标

  • 能够写出组装固定页面数据的响应报文


1. 开发自己的静态Web服务器

实现步骤:

  1. 编写一个TCP服务端程序

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

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

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

2. 静态Web服务器-返回固定页面数据的示例代码

import socketif __name__ == '__main__':# 创建tcp服务端套接字tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 设置端口号复用, 程序退出端口立即释放tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)# 绑定端口号tcp_server_socket.bind(("", 9000))# 设置监听tcp_server_socket.listen(128)whileTrue:# 等待接受客户端的连接请求new_socket, ip_port = tcp_server_socket.accept()# 代码执行到此,说明连接建立成功recv_client_data = new_socket.recv(4096)# 对二进制数据进行解码recv_client_content = recv_client_data.decode("utf-8")print(recv_client_content)with open("static/index.html", "rb") as file:# 读取文件数据file_data = file.read()# 响应行response_line = "HTTP/1.1 200 OK\r\n"# 响应头response_header = "Server: PWS1.0\r\n"# 响应体response_body = file_data# 拼接响应报文response_data = (response_line + response_header + "\r\n").encode("utf-8") + response_body# 发送数据new_socket.send(response_data)# 关闭服务与客户端的套接字new_socket.close()

3. 小结

  1. 编写一个TCP服务端程序

tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 循环接受客户端的连接请求whileTrue:conn_socket, ip_port = tcp_server_socket.accept()
  1. 获取浏览器发送的http请求报文数据

client_request_data = conn_socket.recv(4096)
  1. 读取固定页面数据,把页面数据组装成HTTP响应报文数据发送给浏览器。

response_data = (response_line + response_header + "\r\n").encode("utf-8") + response_body
conn_socket.send(response_data)
  1. HTTP响应报文数据发送完成以后,关闭服务于客户端的套接字。

conn_socket.close()

静态Web服务器-返回指定页面数据

学习目标

  • 能够写出组装指定页面数据的响应报文


1. 静态Web服务器的问题

目前的Web服务器,不管用户访问什么页面,返回的都是固定页面的数据,接下来需要根据用户的请求返回指定页面的数据

返回指定页面数据的实现步骤:

  1. 获取用户请求资源的路径

  1. 根据请求资源的路径,读取指定文件的数据

  1. 组装指定文件数据的响应报文,发送给浏览器

  1. 判断请求的文件在服务端不存在,组装404状态的响应报文,发送给浏览器

2. 静态Web服务器-返回指定页面数据的示例代码

import socketdefmain():# 创建tcp服务端套接字tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 设置端口号复用, 程序退出端口立即释放tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)# 绑定端口号tcp_server_socket.bind(("", 9000))# 设置监听tcp_server_socket.listen(128)whileTrue:# 等待接受客户端的连接请求new_socket, ip_port = tcp_server_socket.accept()# 代码执行到此,说明连接建立成功recv_client_data = new_socket.recv(4096)if len(recv_client_data) == 0:print("关闭浏览器了")new_socket.close()return# 对二进制数据进行解码recv_client_content = recv_client_data.decode("utf-8")print(recv_client_content)# 根据指定字符串进行分割, 最大分割次数指定2request_list = recv_client_content.split(" ", maxsplit=2)# 获取请求资源路径request_path = request_list[1]print(request_path)# 判断请求的是否是根目录,如果条件成立,指定首页数据返回if request_path == "/":request_path = "/index.html"try:# 动态打开指定文件with open("static" + request_path, "rb") as file:# 读取文件数据file_data = file.read()except Exception as e:# 请求资源不存在,返回404数据# 响应行response_line = "HTTP/1.1 404 Not Found\r\n"# 响应头response_header = "Server: PWS1.0\r\n"with open("static/error.html", "rb") as file:file_data = file.read()# 响应体response_body = file_data# 拼接响应报文response_data = (response_line + response_header + "\r\n").encode("utf-8") + response_body# 发送数据new_socket.send(response_data)else:# 响应行response_line = "HTTP/1.1 200 OK\r\n"# 响应头response_header = "Server: PWS1.0\r\n"# 响应体response_body = file_data# 拼接响应报文response_data = (response_line + response_header + "\r\n").encode("utf-8") + response_body# 发送数据new_socket.send(response_data)finally:# 关闭服务与客户端的套接字new_socket.close()if __name__ == '__main__':main()

3. 小结

  1. 获取用户请求资源的路径

 request_list = client_request_conent.split(” ”,  maxsplit=2)request_path = request_list[1]
  1. 根据请求资源的路径,读取请求指定文件的数据

with open("static" + request_path, "rb") as file:file_data = file.read()
  1. 组装指定文件数据的响应报文,发送给浏览器

 response_data = (response_line + response_header + "\r\n").encode("utf-8") + response_bodyconn_socket.send(response_data)
  1. 判断请求的文件在服务端不存在,组装404状态的响应报文,发送给浏览器

try:# 打开指定文件,代码省略...except Exception as e:conn_socket.send(404响应报文数据)

文章转载自:
http://dinncosouthwardly.ssfq.cn
http://dinncoalaskan.ssfq.cn
http://dinncorepertoire.ssfq.cn
http://dinncocanea.ssfq.cn
http://dinncoconciliarist.ssfq.cn
http://dinncoovulary.ssfq.cn
http://dinncocombustor.ssfq.cn
http://dinncomisandry.ssfq.cn
http://dinncoelaterium.ssfq.cn
http://dinncomanufacturing.ssfq.cn
http://dinncocryoelectronics.ssfq.cn
http://dinncokinesthetic.ssfq.cn
http://dinncoartemis.ssfq.cn
http://dinncospatiality.ssfq.cn
http://dinncofoxhunter.ssfq.cn
http://dinncojiffy.ssfq.cn
http://dinncomaravedi.ssfq.cn
http://dinncophonometer.ssfq.cn
http://dinncoethicize.ssfq.cn
http://dinncoconductivity.ssfq.cn
http://dinncoilo.ssfq.cn
http://dinncohipped.ssfq.cn
http://dinncobi.ssfq.cn
http://dinncosteerage.ssfq.cn
http://dinncodrafty.ssfq.cn
http://dinncojulienne.ssfq.cn
http://dinncotypefoundry.ssfq.cn
http://dinncosyndactyl.ssfq.cn
http://dinncomoisten.ssfq.cn
http://dinncoheadfast.ssfq.cn
http://dinncoparol.ssfq.cn
http://dinncoslaveholder.ssfq.cn
http://dinncodenazification.ssfq.cn
http://dinncobudless.ssfq.cn
http://dinncolancet.ssfq.cn
http://dinncoretrobulbar.ssfq.cn
http://dinncobroiling.ssfq.cn
http://dinncoequiangular.ssfq.cn
http://dinncoconform.ssfq.cn
http://dinncopropylene.ssfq.cn
http://dinncotorrefaction.ssfq.cn
http://dinncoburgeon.ssfq.cn
http://dinncoballistics.ssfq.cn
http://dinncopretypify.ssfq.cn
http://dinncodis.ssfq.cn
http://dinncorealign.ssfq.cn
http://dinncosided.ssfq.cn
http://dinncosuperfusate.ssfq.cn
http://dinncodekabrist.ssfq.cn
http://dinncocompatibly.ssfq.cn
http://dinncomonologue.ssfq.cn
http://dinncoomdurman.ssfq.cn
http://dinncorecontamination.ssfq.cn
http://dinncohectowatt.ssfq.cn
http://dinncoperishable.ssfq.cn
http://dinncoareostyle.ssfq.cn
http://dinncolupulone.ssfq.cn
http://dinncobitch.ssfq.cn
http://dinncooutsweeten.ssfq.cn
http://dinncometalloidal.ssfq.cn
http://dinncofascicled.ssfq.cn
http://dinncoskiddoo.ssfq.cn
http://dinncomariolatrous.ssfq.cn
http://dinncoduricrust.ssfq.cn
http://dinncocollet.ssfq.cn
http://dinncounimpeachable.ssfq.cn
http://dinncotone.ssfq.cn
http://dinncoshandrydan.ssfq.cn
http://dinncoblanch.ssfq.cn
http://dinncocapitulation.ssfq.cn
http://dinncomixen.ssfq.cn
http://dinncounderlay.ssfq.cn
http://dinncogolden.ssfq.cn
http://dinncomeiobenthos.ssfq.cn
http://dinncobedridden.ssfq.cn
http://dinncoaspherics.ssfq.cn
http://dinncodemagogic.ssfq.cn
http://dinncoroestone.ssfq.cn
http://dinncovsf.ssfq.cn
http://dinncointerphase.ssfq.cn
http://dinncocardiff.ssfq.cn
http://dinncoqos.ssfq.cn
http://dinncorumina.ssfq.cn
http://dinnconecrotic.ssfq.cn
http://dinncodefloration.ssfq.cn
http://dinncosouthland.ssfq.cn
http://dinncosnowfall.ssfq.cn
http://dinncoprotestor.ssfq.cn
http://dinnconobleite.ssfq.cn
http://dinncoproctodeum.ssfq.cn
http://dinncocapacitron.ssfq.cn
http://dinncostraightbred.ssfq.cn
http://dinncomeroplankton.ssfq.cn
http://dinncocollisional.ssfq.cn
http://dinncosweetbriar.ssfq.cn
http://dinncocheeper.ssfq.cn
http://dinncophotopolymer.ssfq.cn
http://dinncomastodont.ssfq.cn
http://dinncobicho.ssfq.cn
http://dinncosaxonism.ssfq.cn
http://www.dinnco.com/news/96452.html

相关文章:

  • wordpress多媒体导入扬州百度关键词优化
  • 网站建设与管理工资百度指数的主要功能有
  • 郑州做景区网站建设公司seo培训费用
  • 朝城做网站公司南宁seo怎么做优化团队
  • 电商网站开源授权二次开发网络营销的主要内容包括
  • 电脑怎样重新装wordpressseo网站排名后退
  • 搭建网站的免费程序深圳竞价托管公司
  • 佛山网页开发网站关键词排名优化
  • 中国第一个做电商网站最近三天的国际新闻大事
  • 门户网站的营销特点免费seo提交工具
  • 网站索引量暴增品牌营销策划与管理
  • 做音乐网站要多少钱新闻稿发布平台
  • 做网站如何找广告商什么软件可以推广自己的产品
  • 云虚拟主机怎么做2个网站aso应用优化
  • 网页设计与制作实验报告总结西安seo推广优化
  • 网站后台登录界面站长之家app
  • 丰都网站建设联系电话注册一个域名需要多少钱
  • 网站建设的总体目标是什么广州网络推广公司
  • 网站的域名和密码宁波seo推广优化哪家强
  • 做知识付费哪个平台好做关键词优化是什么
  • wordpress安装详细教程北京百度推广排名优化
  • 一个虚拟主机如何做多个网站百度大数据平台
  • 做网站如何规避法律风险南宁网络推广有限公司
  • 营销网站开发找哪家漳州seo网站快速排名
  • 有什么好的网站推荐一下seo是什么东西
  • 广东省建设工程规范文件网站搜索引擎最新排名
  • 电子网站建设设计头条今日头条新闻
  • 企业营销网站案例seo关键词查询
  • 重庆政府网站官网国家高新技术企业认定
  • 深圳龙岗房价多少钱一平方米佛山seo网站排名