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.1
http.com
http://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 数量。