You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用nc命令获取HTTP响应时返回异常结果的技术问询

关于nc发送HTTP请求后出现17b的解释与解决方法

嘿,别担心,你看到的这个17b可不是什么异常结果——这是HTTP/1.1里**分块传输编码(Chunked Transfer Encoding)**的正常表现!

为什么会出现17b?

当你用nc发送HTTP/1.1请求时,如果服务器无法提前确定响应体的总大小(或者主动选择分块传输),就会在响应头里返回Transfer-Encoding: chunked。这种传输方式会把响应体拆分成多个数据块,每个块的开头会先发送一个十六进制的数字,用来表示这个块的字节数,随后是回车换行,再跟上块的实际内容,最后又是回车换行。

你看到的17b就是十六进制的块大小,转换成十进制是379,意思是接下来的379字节是页面内容的一个数据块。等所有块发送完成后,服务器会发送一个0(表示没有更多块了)加上回车换行来结束响应。

如何得到“整洁”的响应内容?

如果你不想看到这些分块标记,有几种简单的方法:

  • 用HTTP工具自动处理分块:直接使用curl或者wget这类工具,它们会自动解析分块编码,把所有数据块拼接成完整的页面内容展示给你,比如执行:

    curl site.it
    
  • 改用HTTP/1.0请求:HTTP/1.0不支持分块传输编码,服务器会返回Content-Length头并一次性发送完整响应。你可以用nc发送如下请求:

    $ nc site.it 80
    GET / HTTP/1.0
    Host: site.it
    User-Agent: curl/7.54.0
    Accept: */*
    
  • 手动解析分块(如果非要用nc):忽略每个块开头的十六进制数字,直接提取后面的内容,最后把所有块的内容拼接起来就是完整的页面了。

内容的提问来源于stack exchange,提问作者Johnny Marcove

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:25:55