【Python】打造自己的HTTP server

news/2025/2/22 6:49:40
http://www.w3.org/2000/svg" style="display: none;">

词汇汇总

CRLF 指的是换行和回车\r\n

教程

./your_program.sh #启动自己的服务

curl -v http://localhost:4221#开启另一个终端 测试
  • HTTP response
    An HTTP response is made up of three parts, each separated by a CRLF (\r\n):
    Status line.
    Zero or more headers, each ending with a CRLF.
    Optional response body.
    先来一个简单的,只包含状态行。
python">// Status line
HTTP/1.1  // HTTP version
200       // Status code
OK        // Optional reason phrase
\r\n      // CRLF that marks the end of the status line

// Headers (empty)
\r\n      // CRLF that marks the end of the headers

// Response body (empty)

#main.py
import socket  # noqa: F401

def main():
    # You can use print statements as follows for debugging, they'll be visible when running tests.
    print("Logs from your program will appear here!")

    # Uncomment this to pass the first stage
    #
    server_socket = socket.create_server(("localhost", 4221), reuse_port=True)
    server_socket.accept() # wait for client
    server_socket.accept()[0].sendall(b"HTTP/1.1 200 OK\r\n\r\n")

if __name__ == "__main__":
    main()
#your_program.sh
#通过执行./your_program.sh执行这个文件
#!/bin/sh
#
# Use this script to run your program LOCALLY.
#
# Note: Changing this script WILL NOT affect how CodeCrafters runs your program.
#
# Learn more: https://codecrafters.io/program-interface

set -e # Exit early if any commands fail

# Copied from .codecrafters/run.sh
#
# - Edit this to change how your program runs locally
# - Edit .codecrafters/run.sh to change how your program runs remotely
exec pipenv run python3 -m app.main "$@"


http://www.niftyadmin.cn/n/5861835.html

相关文章

机器学习课程的常见章节结构

以下是机器学习课程的常见章节结构,结合了搜索结果中的信息: 1. 机器学习基础知识 机器学习的定义与分类 监督学习、无监督学习、半监督学习、强化学习 机器学习的产生与发展 机器学习的历史与现代应用 经验误差与过拟合 过拟合与欠拟合的概念及解决…

HBase的安全性考量:保护你的数据不受威胁

HBase的安全性考量:保护你的数据不受威胁 数据安全的重要性 在大数据时代,数据是企业最宝贵的资产之一。随着数据量的不断增加和应用场景的多样化,如何确保数据的安全性成为了每一个开发者和企业的首要任务。今天,我们将深入探讨…

国产编辑器EverEdit - 如何在EverEdit中管理工程?

1 工程管理 1.1 应用场景 用户创建工程后,会涉及到工程的管理 ,比如:打开工程、关闭工程等 1.2 使用方法 1.2.1 打开工程 单击主菜单工程 -> 打开工程,会弹出打开对话框,用户在对话框中选择需要打开的工程文件即…

C#初级教程(1)——C# 与.NET 框架:探索微软平台编程的强大组合

图片来源: https://www.lvhang.site/docs/dotnettimeline 即梦AI - 一站式AI创作平台 一、历史发展脉络 在早期的微软平台编程中,常用的编程语言有 Visual Basic、C、C。到了 20 世纪 90 年代末,Win32 API、MFC(Microsoft Found…

高级SQL技术在Python项目中的应用:ORM与深度性能优化

引言 在现代Python项目开发中,数据库交互远不止是数据的简单存取,它已成为构建高性能、可维护应用的核心瓶颈和关键能力所在。 仅仅依赖基础SQL查询,虽然入门简单,却难以应对日益增长的应用挑战。这些挑战主要体现在以下几个方面: 性能瓶颈: 数据量剧增: 从百万到数十亿乃…

uni-app 开发app 时 ios上传图片失败的问题

安卓没有问题,就ios上传图片不行 1、必须要有header头 uni.uploadFile({url: https://www.example.com/upload, //仅为示例,非真实的接口地址filePath: tempFilePath, // 图片本地路径name: file, // 写死// 请求头一定要加,否则 iOS 图片上…

VMware安装Centos 9虚拟机+设置共享文件夹+远程登录

一、安装背景 工作需要安装一台CentOS-Stream-9的机器环境,所以一开始的安装准备工作有: vmware版本:VMware Workstation 16 镜像版本:CentOS-Stream-9-latest-x86_64-dvd1.iso (kernel-5.14.0) …

nginx容器配置fastapi服务失败

问题描述: Linux虚拟机中启动了一个fastapi服务器(8000端口),希望能通过nginx容器设置代理使得前端代码可以调用这个接口,但是访问时报错(状态码:502)。nginx配置如下: l…