perl – http:// 0:port有什么问题?

前端之家收集整理的这篇文章主要介绍了perl – http:// 0:port有什么问题?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Plack套件通常使用http:// 0:port.例如.下列
plackup -MPlack::App::Directory -e 'Plack::App::Directory->new(root=>".");'

版画

HTTP::Server::PSGI: Accepting connections at http://0:5000/

但是,LWP :: UserAgent(或一些更深层次的模块)不接受它,例如的:

perl -MLWP::UserAgent -E '$u=LWP::UserAgent->new;$res=$u->get("http://0:5000/valid/path");print $res->status_line'

打印:

500 No Host option provided

但是

perl -MLWP::UserAgent -E '$u=LWP::UserAgent->new;$res=$u->get("http://localhost:5000/valid/path");print $res->status_line'

版画

200 OK

问题是:谁错了?

> http:// 0:端口是否有效,例如LWP是“错误的”
>或者它无效,PSGI仅将其用作“随机有效”的快捷方式?

解决方法

Plack套件的输出是服务器的输出.服务器通常是 binds到某个端口和地址的套接字,以便在那里提供内容.
符号http:// 0:port表示在这种情况下: listen在本机所有地址的端口上.如果您不知道或不想指定服务器应该可访问的机器的所有地址,这将非常方便.

LWP :: UserAgent的输出是客户端的输出.要打开与服务器的连接,必须显式指定要连接的地址和端口. 0是无效的IP地址,因此当您connect到http:// 0:port时连接失败.

猜你在找的Perl相关文章