Python学习日志——网络编程(五)静态web服务器
程序员文章站
2024-03-20 14:12:46
...
静态web服务器
1. 介绍
可以为发出请求的浏览器提供静态文档的程序。即所访问的页面是静态的,页面中的内容不会发生变化。
2. 实现步骤
1.编写一个TCP服务端程序
2.获取浏览器发送的http请求报文数据
3.读取固定页面数据,把页面数据组装成HTTP响应报文数据发送给浏览器。
4.HTTP响应报文数据发送完成以后,关闭服务于客户端的套接字。
3. 示例代码
# 时间: 2021/10/21 20:38
import socket
if __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(("", 8080))
# 设置监听
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)
print(recv_client_content)
# 响应行
response_line = "HTTP/1.1 200 OK\r\n"
# 响应头
response_header = "Server: py1.0\r\n"
# 响应体
response_body = "Hello,guys!"
# 拼接响应报文
response_data = (response_line + response_header + "\r\n"+ response_body).encode()
# 发送数据
new_socket.send(response_data)
# 关闭服务与客户端的套接字
new_socket.close()
4. 结果演示
1.首先通过在命令行中输入指令 ipconfig,获取本机的IP
2.运行Python程序
3.在浏览器中输入获得的IP和端口号 如:192.168.**.*:8080
可以看到结果如图
服务器接受的数据:
GET / HTTP/1.1
Host: 192.168.**.*:8080
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
网页显示:
下一篇: php和session实现简单的登录记忆
推荐阅读
-
Python学习日志——网络编程(五)静态web服务器
-
python网络编程学习笔记(六):Web客户端访问
-
python网络编程学习笔记(六):Web客户端访问
-
python网络编程学习笔记(五):socket的一些补充
-
python网络编程学习笔记(三):socket网络服务器
-
python网络编程学习笔记(五):socket的一些补充
-
python网络编程学习笔记(六):Web客户端访问
-
python网络编程学习笔记(三):socket网络服务器
-
UNIX环境高级编程 UNIX网络编程 1 2这三本书先看哪个一个?网络编程和web编程疑惑,python tornado源码学习
-
python网络编程学习笔记(六):Web客户端访问