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

实现步骤:

  1. 编写一个TCP服务端程序
  2. 获取浏览器发送的http请求报文数据
  3. 读取固定页面数据,把页面数据组装成HTTP响应报文数据发送给浏览器。
  4. 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)while True:# 等待接受客户端的连接请求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)
    # 循环接受客户端的连接请求
    while True:conn_socket, ip_port = tcp_server_socket.accept()
    
  2. 获取浏览器发送的http请求报文数据

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

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

conn_socket.close()

【注意:这个静态服务器只能局域网内相互可以访问,别人的电脑是不能访问的 。本机和虚拟机之间是可以相互访问的 。别人若想可以访问,必须用公网,把自己的项目部署到服务器,服务器是公网的】

静态Web服务器-返回固定页面数据相关推荐

  1. 静态服务器显示固定页面,【Python高级编程034 ● 静态web服务器 ● 静态Web服务器-返回固定页面数据】...

    """ 一.解释: 能够同时服务于多个客户端的TCP服务端程序 二.具体实现步骤 1.编写一个TCP服务端程序,循环等待接受客户端的连接请求 2.当客户端和服务端建立连接 ...

  2. 〖Web全栈开发③〗—HTTP协议和静态web服务器

    HTTP协议和静态web服务器 (一)三次握手和四次挥手 (二)HTTP协议 2.1 HTTP协议的定义 2.2 HTTP协议的组成 (三)搭建python自带静态web服务器 3.1 静态web服务 ...

  3. python自带静态web服务器搭建代码实现(一)

    一.静态web服务器 静态web法服务器:可为发出请求的浏览器提供静态文档的程序,平时上网浏览的页面都是动态的,而开发的是静态的,页面数据不会发生变化 搭建python自带的静态web服务器 命令:p ...

  4. Python 高级:05 HTTP 协议和静态 Web 服务器

    一.HTTP 协议 1. HTTP 协议的介绍 HTTP 协议的全称是(Hyper Text Transfer Protocol),翻译过来就是超文本传输协议.超文本就是超级文本的缩写,是指超越文本限 ...

  5. Python搭建静态web服务器

    核心还是使用Python的socket实现的,socket的具体用法前面文章有写,这里不写太多注释. 1.本地搭建python静态web服务器 在资源目录打开命令终端,输入命令:python -m h ...

  6. node 创建静态web服务器(下)(处理异步获取数据的两种方式)

    接上一章. 上一章我们说创建的静态web服务器只能识别html,css,js文件,功能较为单一,且图片格式为text/html,这是不合理的. 本章,我们将解决该问题. 这里,我们先准备好一个json ...

  7. Python基础 3.4 HTTP协议和静态Web服务器

    HTTP协议和静态Web服务器 3.4.1 HTTP协议 1.HTTP协议介绍 全程:超文本传输协议 作用:规定浏览器和web服务器通信的数据格式 HTTP协议是在应用层的协议,基于传输层的TCP传输 ...

  8. Node.js「三」—— 创建静态 WEB 服务器

    本文为 Node.js 系列笔记第三篇.文章参考:nodejs 教程:<深入浅出 Node.js>:阮一峰 nodejs 博客: Node.js v16.13.0 文档 文章目录 前言 一 ...

  9. python实现web服务器_python实现静态web服务器

    HTTP协议简介 HTTP请求 1:浏览器首先向服务器发送HTTP请求,请求包括: 方法:GET还是POST,GET仅请求资源,POST会附带用户数据: 路径:/full/url/path: 域名:由 ...

最新文章

  1. php 访问类成员,PHP类成员的访问方式和权限_PHP教程
  2. 中国安防视频监控行业发展前景分析
  3. 【 C 】关于学习 realloc 踩过的那些坑
  4. python生成范围内随机数_python在一个范围内取随机数的方法是什么
  5. 安卓开发——JNI——回调java中的方法
  6. python字典类型可迭代_核心数据类型--字典
  7. 常用排序算法(八)桶排序
  8. 2017-03-10Git撤销修改
  9. 解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题
  10. JavaScript getBoundingClientRect()
  11. 百度地图坐标转换的异步回调事件
  12. intellij常用快捷键
  13. 新氧ubuntu 9.04中文定制 Release 版(推荐)
  14. c#如何实现叫号操作_C#开发银行叫号系统方案
  15. 斐讯路由器k2p a1刷官改只能刷入k2p_57_v*_*固件无法刷入k2p_mtk_v*_*版本--刷入后无法进入主页面/刷入后无法启动
  16. chromium编译android,Ubuntu下编译Chromium for Android
  17. java中abstract什么意思中文,abstraction(abstraction什么意思中文)
  18. Vue合并el-table第一列相同数据
  19. 【网络收录】基于51单片机开发音乐播放器
  20. 计算机组成原理-Chapter1 计算机系统概述

热门文章

  1. 倪光南院士:openEuler与全球开发者共同推动计算产业发展
  2. 直播写代码|英伟达工程师亲授如何加速YOLO目标检测
  3. 频频霸榜的Python,竟遭开发者嫌弃!
  4. 2018年Python开源项目Top100!只在这里!
  5. AlphaGo“兄弟”AlphaFold出世,DeepMind再创记录
  6. 专访思必驰初敏:离开微软、放弃阿里,一个语音交互的“实用主义者”
  7. 微信高级研究员解析深度学习在NLP中的发展和应用 | 公开课笔记
  8. 荣耀总裁赵明:AI 是核心战略,全球前五的目标不会变
  9. 快讯 | 老黄啊,特斯拉背着你找AMD了,咱可不能给他降价
  10. JDK9为何要将String的底层实现由char[]改成了byte[]?