当我使用 HTTP 协议尝试请求时,为啥会收到错误的请求响应?

     2023-03-16     201

关键词:

【中文标题】当我使用 HTTP 协议尝试请求时,为啥会收到错误的请求响应?【英文标题】:Why am I getting a Bad Request response when I try my request with HTTP Protocol?当我使用 HTTP 协议尝试请求时,为什么会收到错误的请求响应? 【发布时间】:2016-04-24 22:02:54 【问题描述】:

我目前在我的本地机器上运行 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 响应标头,例如 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 响应标头?为什么我会收到 Bad Request 响应?

【问题讨论】:

【参考方案1】:

仅说明 GET /beer/ 并不是在说明您想要哪个协议版本。我不确定 tomcat 默认是什么,但我的建议是说明你喜欢的协议版本。

使用 HTTP/1.0,您应该使用更容易在 telnet 上键入的协议。一旦您转到 HTTP/1.0,您将拥有更多可以发送的请求标头 - 例如

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

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

当我远程登录到网络服务器时,我只使用 HTTP/1.0(超过 1.1) - 很长一段时间,我不记得 HTTP/1.1 是否难以或无法键入,或者如果它是只是我开始这样做时发现的示例。可能有强制性标题或信息,例如编码等,这些都丢失了,让你的请求很糟糕。如果 HTTP/1.0 对你来说足够了:用它运行。否则,请告诉我们您还需要什么。

【讨论】:

当我尝试保存测试计划时,为啥会收到 NoClassDefFound 错误?

】当我尝试保存测试计划时,为啥会收到NoClassDefFound错误?【英文标题】:WhydoIgetaNoClassDefFounderrorwhenItrytosavemytestplan?当我尝试保存测试计划时,为什么会收到NoClassDefFound错误?【发布时间】:2019-12-0300:45:54【问题描述】:我安... 查看详情

Vue2:当我从响应中分配属性时,为啥会收到无限的 $http.get 请求?

】Vue2:当我从响应中分配属性时,为啥会收到无限的$http.get请求?【英文标题】:Vue2:WhydoIgetinfinite$http.getrequestswhenIassignpropertyfromresponse?Vue2:当我从响应中分配属性时,为什么会收到无限的$http.get请求?【发布时间】:2017-05-291... 查看详情

当我尝试访问我的 CodeIgniter 应用程序时,为啥会收到 404 错误?

】当我尝试访问我的CodeIgniter应用程序时,为啥会收到404错误?【英文标题】:WhyamIgettinga404errorwhenIattemptoaccessmyCodeIgniterapp?当我尝试访问我的CodeIgniter应用程序时,为什么会收到404错误?【发布时间】:2012-05-2218:04:39【问题描述... 查看详情

当我发送超过过期日期的令牌时,为啥会收到 401 错误?

】当我发送超过过期日期的令牌时,为啥会收到401错误?【英文标题】:WhydoIgeta401errorwhenIsendatokenbeyonditsexpirationdate?当我发送超过过期日期的令牌时,为什么会收到401错误?【发布时间】:2020-09-0512:20:06【问题描述】:我在我的... 查看详情

当我尝试从双向链表中删除最后一个元素时,为啥会收到“信号 SIGSEGV,分段错误”?

】当我尝试从双向链表中删除最后一个元素时,为啥会收到“信号SIGSEGV,分段错误”?【英文标题】:WhydoIreceivea"signalSIGSEGV,segmentationfault"whenItrytodeletelastelementsfromdoublylinkedlist?当我尝试从双向链表中删除最后一个元素时... 查看详情

当我尝试在我的代码中使用 re.sub 表达式时,为啥会收到一个名为“预期字符串或类似对象的字节”的错误 [重复]

】当我尝试在我的代码中使用re.sub表达式时,为啥会收到一个名为“预期字符串或类似对象的字节”的错误[重复]【英文标题】:WhyamIgettinganerrorcalled\'expectedstringorbyteslikeobject\'whenItrytousethere.subexpressioninmycode[duplicate]当我尝试在我... 查看详情

为啥我尝试打开 URL 时收到 403 错误

...来自http://imdbapi.org的imdbapi来获取有关电影的一些信息。当我使用API并尝试在java中打开这个url时,它给了我一个403错误。该url应该以JSON格式返回数据。到目前为止, 查看详情

当我尝试使用 EF 在 ASP.NET MVC5 中查询视图时,为啥会收到错误“数据库 'ELITEPROD' 中的 CREATE TABLE 权限被拒绝”?

】当我尝试使用EF在ASP.NETMVC5中查询视图时,为啥会收到错误“数据库\\\'ELITEPROD\\\'中的CREATETABLE权限被拒绝”?【英文标题】:WhyamIgettingtheerror"CREATETABLEpermissiondeniedindatabase\'ELITEPROD\'"whenI\'mtryingtoqueryaviewinASP.NETMVC5usingEF?当... 查看详情

为啥我在使用 img 标签时会收到 403 禁止?

】为啥我在使用img标签时会收到403禁止?【英文标题】:Whyamigettinga403forbiddenwhenusingaimgtag?为什么我在使用img标签时会收到403禁止?【发布时间】:2011-11-2412:50:53【问题描述】:尝试使用时<imgsrc="../Ginger.jpeg"/>我收到403错误。... 查看详情

为啥我在尝试获取我过去的贝宝交易时会收到此错误?

...:19【问题描述】:我正在尝试阅读我过去的交易。我已经使用curl工具完成了这项工作,但我无法在nodeJS中使用它。我正在尝试使用请求api。从贝宝获取令牌就可以了 查看详情

当我尝试使用 Laravel 控制器方法处理 AJAX 请求时,为啥会出现此异常?

】当我尝试使用Laravel控制器方法处理AJAX请求时,为啥会出现此异常?【英文标题】:WhyIobtainthisexceptionwhenItrytohandleanAJAXrequestwithaLaravelcontrollermethod?当我尝试使用Laravel控制器方法处理AJAX请求时,为什么会出现此异常?【发布时... 查看详情

为啥我在使用 pip install 命令时会收到此错误 [重复]

...错误[重复]【发布时间】:2020-05-0123:58:55【问题描述】:当我尝试使用pip(python)安装软件包时,我遇到了一个问题。我认为它与路径有关,因为我对它做了一些事情。这是错误pip:T 查看详情

为啥我在页面刷新时收到网络错误? (获取请求)

...1815:49:03【问题描述】:我在useEffect()中向API发出get请求。当我从主页导航到该页面时,它加载正常,但是一旦我刷新页面http://localhost:3000/coins/c 查看详情

为啥我在尝试从 C# 处理程序发布 GraphQL 查询时收到错误请求?

...请求?【发布时间】:2022-01-1723:32:21【问题描述】:我想使用Web服务或处理程序将突变发送到GraphQLAPI。我有GraphQL代码在Postman和一 查看详情

当我似乎正在填写参数时,为啥会收到 TypeError? [关闭]

】当我似乎正在填写参数时,为啥会收到TypeError?[关闭]【英文标题】:WhyamIgettingaTypeErrorwhenIseemtobefillingtheparemeters?[closed]当我似乎正在填写参数时,为什么会收到TypeError?[关闭]【发布时间】:2021-11-0901:44:29【问题描述】:我正... 查看详情

为啥当我尝试在 celery 任务中使用模型时,django 会引发“应用程序尚未加载”错误?

】为啥当我尝试在celery任务中使用模型时,django会引发“应用程序尚未加载”错误?【英文标题】:WhywhenItrytousemodelsincelerytasksdjangoraises"Appsaren\'tloadedyet"error?为什么当我尝试在celery任务中使用模型时,django会引发“应用... 查看详情

当我尝试迁移模型时,为啥会出现“无法序列化错误”?

】当我尝试迁移模型时,为啥会出现“无法序列化错误”?【英文标题】:WhydoIgetthe"cannotserializeerror"whenItrytomigratemymodel?当我尝试迁移模型时,为什么会出现“无法序列化错误”?【发布时间】:2020-07-3101:42:02【问题描述... 查看详情

为啥我在尝试将它与目标 c 一起使用时会收到错误消息,即我的 json 末尾有垃圾?

】为啥我在尝试将它与目标c一起使用时会收到错误消息,即我的json末尾有垃圾?【英文标题】:WhydoIgettheerrorthatthereisgarbageattheendofmyjsonwhentryingtouseitwithobjectivec?为什么我在尝试将它与目标c一起使用时会收到错误消息,即我的json... 查看详情