사용자 정의 포트에서 GET 요청을 수신하도록 로컬로 설정하는 가장 쉬운 방법은 무엇입니까?
내가 할 수 있게curl -X GET -i 'localhost:34331/hello'
요청이 수신되었는지 확인하고 요청을 검사하여 헤더(헤더가 전송된 경우)와 요청에 사용된 URL을 확인합니다.
답변1
넷캣을 사용할 수 있습니다. 그것은 다음과 같습니다:
nc -l 34331
-v
통화 세부정보를 보려면 컬의 옵션을 사용하고 실제 서비스를 호출하는 것이 더 쉽습니다.
curl -v http://www.google.com > /dev/null
* Connected to localhost (127.0.0.1) port 3128 (#0)
> GET http://www.google.com/ HTTP/1.1
> Host: www.google.com
> User-Agent: curl/7.47.0
> Accept: */*
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 OK
< Date: Fri, 22 Jun 2018 12:58:58 GMT
< Expires: -1
< Cache-Control: private, max-age=0
< P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."
< Server: gws
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: SAMEORIGIN
< Set-Cookie: 1P_JAR=2018-06-22-12; expires=Sun, 22-Jul-2018 12:58:58 GMT; path=/; domain=.google.com
< Set-Cookie: NID=132=cLF8pa3SHRsg32-ZGzN5aZ3ipLfAbxqfmUvJ2NTvkYg2eWN6XaOqSofMK7o902-C9hdxL_wUn6cJW2AkngcQXvNUKCCdNi7Z-eBTu0Yc8-iTFR90OeZDR44hxZK95_Ny; expires=Sat, 22-Dec-2018 12:58:58 GMT; path=/; domain=.google.com; HttpOnly
< Accept-Ranges: none
< Vary: Accept-Encoding
< Transfer-Encoding: chunked
< Content-Type: text/html; charset=ISO-8859-1
< Connection: keep-alive
< Proxy-Connection: keep-alive
<
{ [2035 bytes data]
100 11564 0 11564 0 0 69134 0 --:--:-- --:--:-- --:--:-- 68833
* Connection #0 to host localhost left intact
답변2
Perl이 설치되어 있으면 HTTP::Daemon 모듈을 사용하여 매우 간단한 http 데몬을 작성할 수 있습니다(Perl 라이브러리에 있어야 함).
#!/usr/bin/perl
use strict;
use HTTP::Daemon;
use HTTP::Response;
use threads;
my $httpd = HTTP::Daemon->new( LocalPort => 8081, Listen => 20, Reuse=>1) || die;
print "httpd started...\n";
sub process_one_req
{
my $con = shift;
my $rq = $con->get_request;
print "<< ".$rq->uri." : ".$rq->header('User-Agent')."\n";
my $rsp = HTTP::Response->new(200, 'OK' );
$con->send_response($rsp);
}
while (my $con = $httpd->accept)
{
process_one_req $con;
}
당신은 또한 볼 수 있습니다https://metacpan.org/pod/HTTP::데몬