Ubuntu 中的 `GET` 命令是什么?

Ubuntu 中的 `GET` 命令是什么?

Ubuntu 中的命令是什么GET?我在尝试 telnet 的时候,不小心输入得GET /太慢,超时了,然后不小心按了Enter,就运行了命令GET

输出为:

HTML>
<HEAD>
<TITLE>Directory /</TITLE>
<BASE HREF="file:/">
</HEAD>
<BODY>
<H1>Directory listing of /</H1>
<UL>
<LI><A HREF="./">./</A>
<LI><A HREF="../">../</A>
<LI><A HREF="bin/">bin/</A>
<LI><A HREF="boot/">boot/</A>
<LI><A HREF="cdrom/">cdrom/</A>
<LI><A HREF="dev/">dev/</A>
<LI><A HREF="etc/">etc/</A>
<LI><A HREF="home/">home/</A>
<LI><A HREF="lib/">lib/</A>
<LI><A HREF="lib32/">lib32/</A>
<LI><A HREF="lib64/">lib64/</A>
<LI><A HREF="libx32/">libx32/</A>
<LI><A HREF="lost%2Bfound/">lost+found/</A>
<LI><A HREF="media/">media/</A>
<LI><A HREF="mnt/">mnt/</A>
<LI><A HREF="opt/">opt/</A>
<LI><A HREF="proc/">proc/</A>
<LI><A HREF="root/">root/</A>
<LI><A HREF="run/">run/</A>
<LI><A HREF="sbin/">sbin/</A>
<LI><A HREF="snap/">snap/</A>
<LI><A HREF="srv/">srv/</A>
<LI><A HREF="swapfile">swapfile</A>
<LI><A HREF="sys/">sys/</A>
<LI><A HREF="tmp/">tmp/</A>
<LI><A HREF="usr/">usr/</A>
<LI><A HREF="var/">var/</A>
</UL>
</BODY>
</HTML>

这个命令是什么?

当我运行时GET / HTTP/1.1,它会显示http://www.i5.com/calacom在页面末尾...那个网站是什么?

编辑:

man GET说:

LWP-REQUEST(1p)                                     User Contributed Perl Documentation                                    LWP-REQUEST(1p)

NAME
       lwp-request - Simple command line user agent

认真说!我没有在 telnet 中运行该命令!

whereis GET显示GET: /usr/bin/GET /usr/share/man/man1/GET.1p.gz

所有GET命令都在终端本身上运行!不要发布有关 telnet 中 HTTP 的答案。我对 HTTP 并不陌生。

答案1

这对我来说也是新鲜事。然而,经过一番调查,我得出以下结论:

$ whereis GET
GET: /usr/bin/GET /usr/share/man/man1/GET.1p.gz

所以,这是一个“命令” /usr/bin

$ file /usr/bin/GET ; ll /usr/bin/GET
/usr/bin/GET: symbolic link to lwp-request
lrwxrwxrwx 1 root root 11 Jan 11 21:01 /usr/bin/GET -> lwp-request*

lwp-request它是同一目录下的符号链接。

$ ll /usr/bin/ | grep lwp-request
lrwxrwxrwx  1 root root          11 Jan 11 21:01 GET -> lwp-request*
lrwxrwxrwx  1 root root          11 Jan 11 21:01 HEAD -> lwp-request*
lrwxrwxrwx  1 root root          11 Jan 11 21:01 POST -> lwp-request*
-rwxr-xr-x  1 root root       16200 Jan 11 21:01 lwp-request*

还有指向同一可执行文件的其他“符号链接”。

$ file /usr/bin/lwp-request ; dpkg -S /usr/bin/lwp-request
/usr/bin/lwp-request: Perl script text executable
libwww-perl: /usr/bin/lwp-request

这是随附的 Perl 脚本libwww-perl包裹。

$ man GET

有关该命令的更多信息将显示一个-u选项:

-u 在发出请求时打印请求方法和绝对 URL。

因此,如果我们使用以下选项尝试问题中的命令-u

$ GET -u / HTTP/1.1

它显示:

GET file:/
<HTML>
<HEAD>
<TITLE>Directory /</TITLE>
<BASE HREF="file:/">
</HEAD>
<BODY>
<H1>Directory listing of /</H1>
...
</BODY>
</HTML>
GET http://www.HTTP.com/1.1
<html><head><title>www.http.com</title></head><frameset BORDER='0' frameborder='0' framespacing='0' rows='100%,*'>
<frame name='target' src='http://www.i5.com/calacom'>
<noframes>  <body BGCOLOR='#FFFFFF'>
This page requires that your browser supports frames.
<BR>You can access the page without frames with this <a href='http://www.i5.com/calacom'>link</A>.
</body></noframes></frameset></html>

我们看到,当GET命令被赋予两个参数时,它会尝试访问两个 URL:

  1. 文件:/
  2. http://www.HTTP.com/1.1

第一个是本地目录的列表。第二个是网站的/(可能不存在的)“页面”,其中包含用于显示页面的“框架” 。1.1http.comhttp://www.i5.com/calacom

答案2

它确实是 HTTP 的GET方法,但与 telnet 无关。GET只需发送GET请求并在 中显示输出STDOUT。当您执行 时GET /,您实际上是GET在向您的根文件夹发送请求。要测试,请打开任何浏览器并在 URL 栏中简单输入/。现在检查元素,您会注意到页面的 HTML 与您在终端中获得的相同。

我开发了一个简单的 REST API 来测试。结果如下:

$ GET localhost:8090
{
    "bookID": 2091,
    "title": "Dear Genius",
    "authors": "Ursula Nordstrom-Leonard S. Marcus-Maurice Sendak",
    "average_rating": 4.39,
    "isbn": 64462358,
    "language_code": "eng",
    "ratings_count": 518,
    "price": 2107
}

您可以在lwp-request(1): 简单用户代理 - Linux man 页. 引用自那里:

此程序可用于向 WWW 服务器和本地文件系统发送请求。POST 和 PUT 方法的请求内容从 stdin 读取。响应的内容打印在 stdout 上。错误消息打印在 stderr 上。程序返回一个状态值,指示失败的 URL 数量。

相关内容