HTTP 请求中的 GET 命令

HTTP 请求中的 GET 命令

我无法使用 GET 命令仅获取网站正文内容。例如:

[root@mrtg home]# echo -e "GET / HTTP/\r\nHost: test.com:80\r\n\r\n" | nc 192.168.1.201 80
HTTP/1.1 200 OK
Date: Sun, 20 Mar 2016 13:45:49 GMT
Server: Apache/2.2.15 (CentOS)
Last-Modified: Sun, 20 Mar 2016 10:28:08 GMT
ETag: "6068a-10-52e786faf8f79"
Accept-Ranges: bytes
Content-Length: 16
Connection: close
Content-Type: text/html; charset=UTF-8

test.com-server
[root@mrtg home]#

如果我使用此命令echo -e "GET / /\r\nHost: test.com:80\r\n\r\n" | nc 192.168.1.201 80

我只能获取默认主机主体内容。我的 Apache2.4 服务器中有 3 个 Virtualhost。

请指教。

答案1

GET 命令是

GET / HTTP/1.1
Host: test.com

为了指定主机,HTTP/1.1 至关重要。

但是,您应该使用为此目的wgetcurl编写的程序。

相关内容