【Python】打造自己的HTTP server

devtools/2025/2/25 12:56:34/
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: F401def 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 clientserver_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-interfaceset -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.ppmy.cn/devtools/161587.html

相关文章

【Git版本控制器】第五弹——远程仓库,push,pull,gitignore

🎁个人主页:我们的五年 🔍系列专栏:Linux网络编程 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 ​ 相关笔记: https://blog.csdn.net/djd…

【前端】【功能函数】treeMapEach,对每个节点进行自定义转换的实用函数

一、功能说明 这是一个递归遍历树形结构数据,并对每个节点进行自定义转换的实用函数。它会对原始树中的每个节点执行 conversion 函数,最终生成一个包含转换后结果的新树结构。 二、核心作用 树形结构遍历:深度优先递归遍历所有子节点数据…

vue怎么设置允许局域网手机访问

打开vite.config.ts 添加 server: {host: 0.0.0.0}, host: 0.0.0.0:设置为0.0.0.0,允许从所有IP访问。port: 5173:指定端口号,可以根据需要进行修改。不指定默认 5173disableHostCheck: true:禁用主机检查&#xff0c…

解锁Redis的深层能力:事务与消息队列的最佳实践

在当今数据驱动的世界里,高效的数据管理和处理成为了每一个成功应用的核心。Redis,作为一款高性能的内存数据库,不仅以其快速读写能力著称,还提供了诸如事务、持久化、以及灵活的消息队列实现等高级功能,使得开发者能够…

Java中的JIT编译器优化机制

Java中的JIT编译器优化机制 1. 引言 Java程序的性能一直是开发者关注的重点之一。随着JIT(Just-In-Time)编译技术的引入,Java程序的执行效率有了显著的提升。JIT编译器通过将字节码在运行时编译为本地机器代码,从而避免了每次执…

AI手机的技术细节

前序:先说各个功能涉及到的技术,再说宏观系统架构。AI手机有这样几个做法,给手机侧边增加一个按键;把手机的语音助手做的很好,能够快速稳定的进行唤醒;通过特殊形式的触摸手机的曲面屏位置等来进行唤醒AI …

如何使用3D高斯分布进行环境建模

使用3D高斯分布来实现建模,主要是通过高斯分布的概率特性来描述空间中每个点的几何位置和不确定性。具体来说,3D高斯分布被用来表示点云数据中的每一个点或体素(voxel)的空间分布和不确定性,而不是单纯地存储每个点的坐…

代码随想录Day46 | 647.回文子串,516.最长回文子序列

代码随想录Day46 | 647.回文子串,516.最长回文子序列 647.回文子串 dp[i][j]定义: 与其他动态规划题目不同,一般题目求什么,dp就定义为什么 这道题的dp定义为区间范围[i,j]的子串是否是回文子串 需要注意遍历顺序 需要用到dp[i 1][j - 1]&…