http - 如何使用 netcat 手动发出 HTTP GET 请求?

标签 http get netcat

因此,我必须从 http://www.rssweather.com/dir/Asia/India 中的任何一个城市检索温度.

假设我想检索 Kanpur 的。

如何使用 Netcat 发出 HTTP GET 请求?

我正在做这样的事情。

nc -v rssweather.com 80
GET http://www.rssweather.com/wx/in/kanpur/wx.php HTTP/1.1

我什至不知道我的方向是否正确。我找不到任何关于如何使用 netcat 发出 HTTP get 请求的好教程,所以我将它发布在这里。

最佳答案

当然,您可以深入挖掘 google 搜索的标准,但实际上,如果您只想获得一个 URL,那是不值得的。

您还可以在端口上以监听模式启动 netcat:

nc -l 64738

(有时 nc -l -p 64738 是正确的参数列表)

...然后使用真正的浏览器向该端口发送浏览器请求。只需在浏览器中输入 http://localhost:64738 即可查看。

在您的实际情况下,问题是 HTTP/1.1 不会自动关闭连接,而是等待您要检索的下一个 URL。解决方案很简单:

使用 HTTP/1.0:

GET /this/url/you/want/to/get HTTP/1.0
Host: www.rssweather.com
<empty line>

或使用 Connection: 请求 header 说明您之后要关闭的服务器:

GET /this/url/you/want/to/get HTTP/1.1
Host: www.rssweather.com
Connection: close
<empty line>

Extension: 在 GET header 之后只写请求的路径部分。您要从中获取数据的主机名属于 Host: header ,如您在我的示例中所见。这是因为多个网站可以在同一个网络服务器上运行,所以浏览器需要告诉他,它想从哪个站点加载页面。

关于http - 如何使用 netcat 手动发出 HTTP GET 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32341518/

相关文章:

javascript - 将 GET 请求字符串解析为 HTML

django 使用 heroku 设置变量 SECURE_PROXY_SSL_HEADER

http - 怎么用httpc做POST/GET/HEAD?

ios - 干净的URL与查询的字符串-来 self 的iOS客户端的Web服务请求

python - 为什么这个正则表达式不起作用?

linux - 使用端口转发收听对话

bash - 将 netcat 与 FIFO 结合使用

performance - 下载文件时 CPU 使用率高

下载文件时,Node.js 在 HTTP get 上挂起

c# - 如何在 C# 中返回命名元组?