使用python 写一个静态服务(实战)

 更新时间:2019年06月28日 15:49:15   作者:陶瑞同学  
今天小编就为大家分享一篇使用python 写一个静态服务(实战),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

师父布置的任务,让我写一个服务练练手,搞清楚socket的原理和过程后跑了一个小demo,很有成就感,代码内容也比较清晰易懂,很有教育启发意义。

代码

# coding:utf-8
import socket
from multiprocessing import Process

HTML_ROOT_DIR = ""


def handle_client(client_socket):
  """处理客户端请求"""
  # 获取客户端请求数据
  request_data = client_socket.recv(1024)
  print("request data:", request_data)

  # 构造响应数据
  response_start_line = "HTTP/1.1 200 OK\r\n"
  response_headers = "Server: My server\r\n"
  response_body = "hello itcast"
  response = response_start_line + response_headers + "\r\n" + response_body
  print("response data:", response)

  # 向客户端返回响应数据
  client_socket.send(bytes(response, "utf-8"))

  # 关闭客户端连接
  client_socket.close()


if __name__=="__main__":
  server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  server_socket.bind(("", 8000))
  server_socket.listen(120)

  while True:
    client_socket, client_address = server_socket.accept()
    # print("[%s, %s]用户连接上了"%client_addrest[0],client_address[1])
    print("[%s, %s]用户连接上了" % client_address)
    handle_client_process = Process(target=handle_client, args=(client_socket,))
    handle_client_process.start()
    client_socket.close()

运行后在浏览器输入:127.0.0.1:8000

http页面显示如下:

控制台输出:

[127.0.0.1, 50066]用户连接上了
request data: b'GET / HTTP/1.1\r\nHost: 127.0.0.1:8000\r\nUpgrade-Insecure-Requests: 1\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/604.3.5 (KHTML, like Gecko) Version/11.0.1 Safari/604.3.5\r\nAccept-Language: zh-cn\r\nAccept-Encoding: gzip, deflate\r\nConnection: keep-alive\r\n\r\n'
response data: HTTP/1.1 200 OK
Server: My server

hello itcast
[127.0.0.1, 50067]用户连接上了
request data: b'GET /favicon.ico HTTP/1.1\r\nHost: 127.0.0.1:8000\r\nConnection: keep-alive\r\nAccept: */*\r\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/604.3.5 (KHTML, like Gecko) Version/11.0.1 Safari/604.3.5\r\nAccept-Language: zh-cn\r\nReferer: http://127.0.0.1:8000/\r\nAccept-Encoding: gzip, deflate\r\n\r\n'
response data: HTTP/1.1 200 OK
Server: My server

hello itcast

以上这篇使用python 写一个静态服务(实战)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 教你如何使Python爬取酷我在线音乐

    教你如何使Python爬取酷我在线音乐

    这篇文章主要介绍了如何利用 Python 实现酷我在线音乐的爬取,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-04-04
  • Python中os模块的简单使用及重命名操作

    Python中os模块的简单使用及重命名操作

    这篇文章主要给大家介绍了关于Python中os模块的简单使用及重命名操作的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Python分割指定页数的pdf文件方法

    Python分割指定页数的pdf文件方法

    今天小编就为大家分享一篇Python分割指定页数的pdf文件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • python DES加密与解密及hex输出和bs64格式输出的实现代码

    python DES加密与解密及hex输出和bs64格式输出的实现代码

    这篇文章主要介绍了python DES加密与解密及hex输出和bs64格式输出的实现代码,代码简单易懂,非常不错对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • 使用Python轻松实现一个简单的图床功能

    使用Python轻松实现一个简单的图床功能

    在网上分享图片或将图片嵌入到网页中时,通常需要一个图床来存储和管理这些图片,所以本文就来为大家介绍一下如何使用Python轻松实现一个简单的图床功能吧
    2024-01-01
  • Python实现字符串反转的常用方法分析【4种方法】

    Python实现字符串反转的常用方法分析【4种方法】

    这篇文章主要介绍了Python实现字符串反转的常用方法,结合具体实例形式分析了4种常用的Python字符串反转操作技巧,需要的朋友可以参考下
    2017-09-09
  • Python Matplotlib绘制条形图的全过程

    Python Matplotlib绘制条形图的全过程

    Python画图主要用到matplotlib这个库,具体来说是pylab和pyplot这两个子库,这两个库可以满足基本的画图需求,下面这篇文章主要给大家介绍了关于Python Matplotlib绘制条形图的相关资料,需要的朋友可以参考下
    2021-10-10
  • Python+matplotlib绘制多子图的方法详解

    Python+matplotlib绘制多子图的方法详解

    Matplotlib是Python中最受欢迎的数据可视化软件包之一,它是 Python常用的2D绘图库,同时它也提供了一部分3D绘图接口。本文将详细介绍如何通过Matplotlib绘制多子图,需要的可以参考一下
    2022-07-07
  • Python 通过正则表达式快速获取电影的下载地址

    Python 通过正则表达式快速获取电影的下载地址

    这篇文章主要介绍了Python 通过正则表达式快速获取电影的下载地址,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Python利用解析JSON实现主机管理

    Python利用解析JSON实现主机管理

    JSON 是一种独立于编程语言的数据格式,因此在不同的编程语言中都有对应的解析器和生成器,本文主要介绍了Python如何通过解析JSON实现主机管理,感兴趣的小伙伴可以了解一下
    2023-12-12

最新评论