apipost和curl收不到服务器响应的HTTP/1.1 404 Not Found

这篇具有很好参考价值的文章主要介绍了apipost和curl收不到服务器响应的HTTP/1.1 404 Not Found。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

windows的apipost发送请求后,服务器响应了HTTP/1.1 404 Not Found,但是apipost一直显示发送中。
linux上的curl也一样。
使用wireshark抓包发现收到了响应,但是wireshark识别不了(图中是回应404后关闭了连接):
apipost和curl收不到服务器响应的HTTP/1.1 404 Not Found,服务器,http,运维
第一个报文是HTTP/1.1 404 Not Found响应,但并没有识别出来,wireshark认为是一个不完整的HTTP报文(TCP segment of a reassembled PDU),但HTTP实际上是完整的,结尾带了两个\r\n(0d 0a 0d 0a):
apipost和curl收不到服务器响应的HTTP/1.1 404 Not Found,服务器,http,运维
第二个报文是服务器发送的FIN,里面并没有应用层数据,Len=0:
apipost和curl收不到服务器响应的HTTP/1.1 404 Not Found,服务器,http,运维
不清楚为什么认为这个HTTP报文不完整,只能在服务器上手动增加了:

FullHttpResponse resp = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.NOT_FOUND);
//netty服务器默认不包含CONTENT_LENGTH 需要手动设置
resp.headers().set(HttpHeaderNames.CONTENT_LENGTH, 0);

之后wireshark抓包正常了,apipost也能收到了:
apipost和curl收不到服务器响应的HTTP/1.1 404 Not Found,服务器,http,运维
这是因为在HTTP/1.1中,链接是复用的,如果没有content-length就无法区分两个HTTP报文的边界(粘包),也就是说HTTP/1.1如果是keep alive(没有connection也默认是keep-live),则content-length和chunk必然是二选一。
有一些响应码可以没有content-length,但404响应必须包含body,可以是0,来自RFC2616:

对于响应消息,消息里是否包含消息主体依赖相应的请求方法和响应状态码。所有HEAD请求方法的请求的响应消息不能包含消息主体。所有1XX(信息的),204(无内容)和304(无修改)的响应都不能包括一个消息主体(message-body)。所有其他的响应必须包括消息主体,虽然可能长度为零.
。。。。
服务器响应为40x,除了响应HEAD请求,都应该包含一个message-body,message-body包含一个此错误请求的解释。文章来源地址https://www.toymoban.com/news/detail-823409.html

到了这里,关于apipost和curl收不到服务器响应的HTTP/1.1 404 Not Found的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 命令行请求Web服务器curl

    curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。 它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。 curl https://www.example.com curl -b \\\'foo1=bar;foo2=bar2\\\' https://google.com curl -b coo

    2024年02月08日
    浏览(60)
  • Python模拟MQTT v3.1.1服务器

    示例代码 运行结果 解决办法: 降低websockets版本 新报错: 解决办法 : 根据错误信息,看起来问题出在您的MQTT服务器配置中缺少了\\\"listeners\\\"配置项。您可以在实例化Broker对象时,提供一个有效的配置,包括\\\"listeners\\\"配置项。 参考:《mqtt 客户端和服务端搭建及基本使用详解》

    2024年02月15日
    浏览(28)
  • 【Linux】curl 命令 在服务器上测试接口

    业务场景:最近一直在做对外合作的业务,比如对接微信、支付宝、中行等支付相关的接口,引出本篇 的根本原因就是在进行对接中行领取数字红包的接口时,他们会针对我们的服务器IP来开放指定的接口访问权限,本地想通过AirPost之类的工具测试人家的接口是没有权限的,

    2024年02月06日
    浏览(51)
  • linux 服务器执行post请求 curl命令详解

    curl是一个命令行访问URL的计算机逻辑语言的工具,发出网络请求,然后得到数据并提取出,显示在标准输出“stdout”上面,可以用它来构造http request报文,curl(CommandLine Uniform Resource Locator),即在命令行中利用URL进行数据或者文件传输。 基本语法: curl [option] [url] 实际用法 PO

    2024年02月02日
    浏览(32)
  • 在SHELL脚本中用curl处理服务器开机、关机、强制关机、重启动作

    思路:利用了一张主控板来获取服务器的开关机状态,开关机其实是给服务器一个500ms~1000ms的脉冲,等同与按了机箱面板的开关机按钮开关。

    2024年02月07日
    浏览(37)
  • HTTP/1.1协议中的响应报文

    2023年8月30日,周三下午 目录 概述 响应报文示例 详述 HTTP/1.1协议的响应报文由以下几个部分组成: 状态行(Status Line) 响应头部(Response Headers) 空行(Blank Line) 响应体(Response Body) 需要注意的是,响应头部是可选的,而状态行和空行是必需的。 在这个示例中, 状态行

    2024年02月09日
    浏览(25)
  • php:如何在curl方式下url请求域名使用指定ip地址来访问某个服务器

            最近遇到一个问题,就是如何在curl请求某个域名的时候,可以指定某个ip访问,因为很多时候咱们的域名对应的是集群,会有很多服务器ip,并不一定是刚好访问到你想要的服务器,那么该如何解决呢? 例如:正常情况下,假设我们这样发送请求,如何指定访问

    2024年02月15日
    浏览(54)
  • Linux服务器上传文件到阿里云oss对象存储的两种方法ossutil、curl

    ossutil支持在Windows、Linux、macOS等系统中运行,您可以根据实际环境下载和安装合适的版本。 安装过程中,需要使用解压工具(unzip、7z)解压软件包,请提前安装其中的一个解压工具。 yum -y install unzip Linux系统一键安装 sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo b

    2024年02月13日
    浏览(42)
  • nginx设置服务器响应时间长短

    设置完重启nginx即可 (1)proxy_connect_timeout :后端服务器连接的超时时间_发起握手等候响应超时时间 (2)proxy_read_timeout:连接成功后等候后端服务器响应时间其实已经进入后端的排队之中等候处理 (3)proxy_send_timeout :后端服务器数据回传时间_就是在规定时间之内后端服务器必

    2024年02月11日
    浏览(33)
  • DNS服务器未响应是什么意思

    DNS(域名服务器)是进行域名和与之相对应的 IP 地址转换的服务器,是上网是必须使用的一个电脑与网络交互的工具。平时有没有遇到这样的一个情况,电脑屏幕突然出现了以个这样的提醒,显示 DNS 服务器无响应,网线突然连接不正常,网络连接后正常,显示网络已连接,

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包