gpt4 book ai didi

python - 如何发送http响应消息代码:400 in python

转载 作者:太空宇宙 更新时间:2023-11-03 17:40:46 24 4
gpt4 key购买 nike

我已经用 python 编写了一个 Web 服务器,我想发送 HTTP 响应消息代码:400 而不是响应“网站即将推出!”根据任何客户请求,请告诉我如何做到这一点。

服务器代码是:

import socket
import re
HOST = "localhost"
PORT = 13555

listen_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
listen_socket.bind((HOST, PORT))
listen_socket.listen(1)
print ("Serving HTTP on port %s ..." % PORT)

while True:
client_connection, client_address = listen_socket.accept()
request = client_connection.recv(2048)
response = "Website Coming Soon!" #this response should be http response message code:400
http_response = "HTTP/1.1 200 OK\n"+"Content-Type: text/html\n"+"\n"+"<html><body>"+response+"</body></html>\n"
client_connection.sendall(http_response)
client_connection.close()

最佳答案

尝试了解您要使用的协议(protocol):)

HTTP 相当简单,所有 HTTP 消息都由 3 个基本部分组成,其中第三部分是可选的:

  • 请求或状态行(第一行)
  • 请求 header ,每个 header 位于一行(或一些转义分布在多行上),后跟一个额外的换行符
  • 请求正文,对于大多数请求和某些响应来说是可选的。

您想要做的是更改响应消息中的“状态行”。由于您想要发送 400 状态代码,因此响应中的第一行应该是

HTTP/1.1 400 Bad request

但是这里有两件事是错误的:

  1. 您实际上并没有解析请求,因此您无法真正告诉客户端他做错了什么(所有 4xx 代码都代表客户端错误)
  2. 您发送了错误的消息。也许,您想要的是类似 503 Service unavailable

深入了解specs 。他们真的真的直接。如果你彻底阅读它,并开始按照预期的方式讲 HTTP,世界会变得更好一点;)

关于python - 如何发送http响应消息代码:400 in python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30583336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com