gpt4 book ai didi

http - 当我尝试使用 HTTP 协议(protocol)发出请求时,为什么会收到 Bad Request 响应?

转载 作者:行者123 更新时间:2023-11-28 22:41:11 25 4
gpt4 key购买 nike

目前我的本地机器上运行着 Apache Tomcat。

当我尝试使用 telnet 时:

telnet localhost 8080
Trying ::1...
Connected to localhost.
Escape character is '^]'.
GET /beer/

我会得到类似这样的响应:

<!DOCTYPE html>
<html lang="en">
<head>
<title>Beer Expert!</title>
<meta charset="utf-8">
</head>
<body>

等等等等

我的第一个问题是:所有 HTTP 响应 header 在哪里,例如 HTTP/1.1 200 OK 等?

另外,当我按如下方式尝试我的 telnet 查询时:

telnet localhost 8080
Trying ::1...
Connected to localhost.
Escape character is '^]'.
GET /beer/ HTTP/1.1

我会得到:

HTTP/1.1 400 Bad Request
Server: Apache-Coyote/1.1
Transfer-Encoding: chunked
Date: Tue, 19 Jan 2016 12:15:23 GMT
Connection: close

0

Connection closed by foreign host.

为什么我现在看到 HTTP 响应 header ?为什么我会收到错误请求响应?

最佳答案

仅仅声明 GET/beer/ 你并没有声明你想要的协议(protocol)版本。我不确定 tomcat 的默认设置是什么,但我的建议是说明您喜欢的协议(protocol)版本。

对于 HTTP/1.0,您应该使用更容易在 telnet 上键入的协议(protocol)。只要你转到 HTTP/1.0,你就会有更多可以发送的请求 header - 例如

GET /beer/ HTTP/1.0
Host: www.example.com

将显示该虚拟主机的内容,以防您在一台服务器上有许多不同的主机。

当我通过 telnet 进入网络服务器时,我只使用 HTTP/1.0(超过 1.1)——时间太长了,以至于我不记得 HTTP/1.1 是否难以或无法输入,或者它是否是只是我开始这样做时发现的例子。可能有强制性标题或信息,例如编码等,丢失并使你的请求不好。如果 HTTP/1.0 对你来说足够了:运行它。否则请告诉我们您还需要什么。

关于http - 当我尝试使用 HTTP 协议(protocol)发出请求时,为什么会收到 Bad Request 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34876660/

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