Net::HTTP - 篏���㋘����� HTTP �・膓� (��壔�í�ゃ�≪�潟��)
use Net::HTTP;
my $s = Net::HTTP->new(Host => "www.perl.com") || die $@;
$s->write_request(GET => "/", 'User-Agent' => "Mozilla/5.0");
my($code, $mess, %h) = $s->read_response_headers;
while (1) {
my $buf;
my $n = $s->read_entity_body($buf, 1024);
die "read failed: $!" unless defined $n;
last unless $n;
print $buf;
}
Net::HTTP
��壔�í�鴻�壚����㋘����� HTTP ��壔�í�ゃ�≪�潟����с����� 筝���ゃ�� Net::HTTP
��壔�í�鴻�勐��篏���壚����ゃ�� HTTP ��泣�若����吾�勖・膓����茵◐憗����障����� HTTP �����㏍����潟�˨�� RFC 2616 ��̬��菴違�������⓾����障����� Net::HTTP
��壔�í�鴻�� HTTP/1.0
��� HTTP/1.1
���絲上�������⓾����障�����
Net::HTTP
��� IO::Socket::INET
��勉�泣����壔�í�鴻�с����� 緇�菴違�������<�純�������������純�宴�������������勛�贋・��勤˛��炊�吾�����羞激����������������с����障����� ��������壔��篏���������������������⓾�������勉�������������c�⓾����ŝ�������������������������с� ��������障��������
(IO::Socket::INET
��勉����勉�����������)篁ヤ����勉�<�純�����������箴���������障��:
- $s = Net::HTTP->new( %options )
-
Net::HTTP
��潟�潟�鴻����í�壔�帥�<�純��������IO::Socket::INET
������罕� 篁ヤ����勉�ŝ����激�с�潟����������障��:Host: Initial host attribute value KeepAlive: Initial keep_alive attribute value SendTE: Initial send_te attribute_value HTTPVersion: Initial http_version attribute value PeerHTTPVersion: Initial peer_http_version attribute value MaxLineLength: Initial max_line_length attribute value MaxHeaderLines: Initial max_header_lines attribute value
��障�����
Host
��ŝ����激�с�潟�壔�勉�������í�˨�����IO::Socket::INET
��PeerAddr
�����PeerPort
������箴���������ŝ����c����翫����勉�������í�˨����� 80 ��с�����IO::Socket::INET
��勉�潟�潟�鴻����í�壔�帥�<�純�������ф��箴���������⓾�����Listen
��ŝ����激�с�潟�壚戎�����障�����������絎���������� HTTP ��泣�若������・膓���с����ŝ����翫�������潟�潟�鴻����í�壔�帥��
undef
��� 菴�������$@ ��̥����宴����ャ����障����� �・膓����������������緇���壔��Net:HTTP
��ŝ����吾�с�壔�����菴���������障����� - $s->host
-
���篆<�����
Host
�����������勉�������í�˨����ゃ�����緇�/荐㊤�������障����� HTTP/1.1 ��с�� $host ��夌Ã���絖���� (������������undef
)��虁┃絎���с����障�������� - $s->keep_alive
-
keep-alive ��勐�ゃ�����緇�/荐㊤����с����障����� �����勐�ゃ�� TRUE ��勐�翫�������泣�若����壩・膓���������������障�丞境�����������������������勉� 茲���違�勉�ŝ�壔����鴻����������������������с��������������腓冴��������������篁������⓾�ŝ�壔����鴻����� �����������障�����
絎������勉�����������������
http_version
���peer_http_version
絮���с� 箴�絖������障����� - $s->send_te
-
��泣�若�����篏帥�������������吾�鴻��荵∫�������潟�潟�若����c�潟�違��腓冴�� "TE" ���������篁������ ��ŝ�壔����鴻����������������������í��������腓冴����ゃ�����緇�/荐㊤�������障����� �����勉�壔�í�ゃ�≪�潟����˨����c�☗�����篁���������������◒����ャ�������������潟�潟�若����c�潟�違� 筝�荀с�壔��罨<�勉�≪�吾�ャ�若�˨����ñ���櫝�純����˩��絖������障��: deflate ���
Compress::Raw::Zlib
��� gzip ���IO::Compress::Gunzip
��� - $s->http_version
-
��壔�í�ゃ�≪�潟�������������� HTTP ��勉����若�吾�с�括�ɱ垩�����緇�/荐㊤�������障����� �����勐�ゃ�� "1.0" ��� "1.1" ���������荐㊤����с����障����� ��������í�˨����� "1.1" ��с�����
- $s->peer_http_version
-
��御����勉����㏍����潟�˨����若�吾�с�括�ɱ垩�����緇�/荐㊤�������障����� �����勐�ゃ�壩�������� "1.0" ��с��������read_response_headers() ��<�純�������若�喝�冴����� ��������������������ф�贋�違�������障�����
- $s->max_line_length
-
��㋘�鴻����潟�壕�������㋘�鴻����潟�鴻��������茵���勰�激����勐�狗��������緇�/荐㊤����с����障����� ��������í�˨����� 8192 ��с����� ��� 0 ��夌�≦�狗����������潟����障�����
- $s->max_header_length
-
��㋘�鴻����潟�鴻�������ゃ�������勉�с��������������茵���勖�違�勐�狗�����荐㊤��/���緇������障����� ��������í�˨����� 128 ��с����� ��� 0 ��夌�≦�狗����������潟����障�����
- $s->format_request($method, $uri, %headers, [$content])
-
��ŝ�壔����鴻����<����祉�若�吾����翫就�����〠��絖������������☀�������障����� ������������
Host
�����ŝ����翫�����host
絮���с�勐�ゃ����水�ャ�������障�����Connection
���Keep-Alive
��勉�������ŝ��������������keep_alive
絮���с�勛�倶����˨����c�☀申��������������������������障��������$content ������絎���������� (�����ょÃ��純�с�ŝ��) ��翫�����(��≪�˨�ŝ��������)
Content-Length
������������菴遵����������障����� - $s->write_request($method, $uri, %headers, [$content])
-
��ŝ�壔����鴻����<����祉�若�吾����翫就�����☁��篆<����障����� 綣���違�� format_request() �����������с����� ��������������◐�����菴������障�����
- $s->format_chunk( $data )
-
筝������������������若�帥�勐����勉����������吾�����������絖�������菴������障�����
- $s->write_chunk($data)
-
��ŝ�壔����鴻�������潟����c����c�������c����若�帥�勖�違�����紂������吾��莨若�帥�障����� �����勉�<�純�������
Transfer-Encoding
������������chunked
���荐㊤����������ŝ�壔����鴻����� �����c����翫����˨�勉�推戎�����鴻����с����� ��激�� 0 ��勉����若�帥����吾��莨若����с��篏����莎激�������ŝ�����������羈���������⓾�������������� �����潟����c����c�������c����若�帥�勛�������������ャ����������˨�� write_chunk_eof() ��<�純�������� 篏帥����障�������������������◐�����菴������障�����
- $s->format_chunk_eof( %trailers )
-
chunked
���Transfer-Encoding
���篏帥�c�⓾�������������˨��EOF ��� ��ャ�������������������吾�����������絖�������菴������障����� - $s->write_chunk_eof( %trailers )
-
紂���勉����若�帥����ŝ����激�с�潟�勖��絨障�˨�ゃ����������������勉�������˨����<�ゃ�̥��腴壔����若�˨�� ��吾��莨若�帥�障����� ���絨障�˩�������������������壠�������˨��
Trailer
�����������ч����ャ����������障� 篏帥�������障����������������������◐�����菴������障�����
- ($code, $mess, %headers) = $s->read_response_headers( %opts )
-
��泣�若����������㋘�鴻����潟�鴻�����������茯㏍�粋昭�����ц�������障����� $code ��� 3 罅���� HTTP ��鴻����若�帥�鴻�潟�若�� (HTTP::Status ������)��� $mess ��壔����勉����㏍�鴻����<����祉�若�吾�с����� ��������������������������㏍��/��ゃ�勛����ц����������障����� ��㏍�若�勐ぇ���絖�絨����絖���壩③荀������������������������㏍�若��茲���医���憗������櫝�醇�с����������勉�с�� �����������勐�ゃ����贋・�����������˩撮��ャ�������������虁晦�����с�壔�������障�������� �����勉�<�純����������鴻�˨�í�潟�潟����㏍�鴻����у�若�喝�冴��������������$code ���������菴���������障�����
��壚�������������⓾�������勉�<�純�������� 'peer_http_version' 絮���с����贋�違����障�����
��ŝ����激�с�潟�壔�㏍��/��ゃ�勛����ф検�����障����� �憜��篋���ゃ�勉�ŝ����激�с�� (
laxed
���junk_out
) ���������絲上�������⓾����障�����laxed
��ŝ����激�с�潟�壔��read_response_headers() ������ HTTP ��勖③������荅宴����鴻��絖⓾����с����ŝ����泣�若�����絲障����⓾�����絲�絎鴻�˨�˨����障�����laxed
��ŝ����激�с�潟�夌����遵�ゃ����í�違�с��TRUE ��ゃ��羝<����������ф����鴻�˨�ŝ����障�����junk_out
��ŝ����激�с�潟�壔��laxed
��������鴻�勖����̹�������c�����������茵���� ��������������勉�˩戎��������障����� ��ゃ�奝�������ŝ����<�㋘�潟�鴻�с����� ��������c�����������茵���壔����勰�������� push ��������障�����laxed
��ŝ����激�с�潟�壔����㋘�鴻����潟�鴻����������������㏍����壔��菴������ŝ�����HTTP/1.0 篁ュ���� ��泣�若����◒��篆<�����������������絎������ŝ�������違�ŝ����障�������� �����������勉�泣�若����勉�������� peer_http_version ��� "0.9" ��̬┃絎���������� �����勉�<�純�������� (200, "Assumed OK") ���菴������障����������勉�<�純�������壔����泣�若�������ï����� HTTP ���荅宴����ŝ����c�����
max_line_length
���max_header_length
��勐�狗����̹����������翫���� 箴�紊������榊����������障�� (die �����障��)���laxed
��ŝ����激�с�潟�������鴻�˨�����max_line_length
��max_header_length
��勉����с����壔����≦�鴻�˨�����������箴�紊������榊���������������� ��ŝ����ŝ����������勉�<�純�������壠幻��˨�㋘�鴻����潟�鴻�潟�若�����菴���������障����� - $n = $s->read_entity_body($buf, $size);
-
�����潟����c����c�������c�勐��絎鴻�勉����c�潟�壔��茯㏍�粋昭��帥�障����� ��堺�㋜����� read() ��������� sysread() �����������ゃ�潟�帥�若����с�若�鴻�с������������������� ��ŝ����祉�����綣���違�壔�障��絲上�������⓾����障�������� �����勉�<�純�������壔��read_response_headers() ��若�喝�冴�����������������緇���˨�勉� ��若�喝�冴����������鴻����с�����
菴������ゃ�壔��茯㏍�粋昭��帥����í�惹�����
undef
���EOF ��ŝ�� 0���篁���������若�帥�� 菴���������ŝ�������� -1���������篁ュ����� $buf ��˩撮��ャ�������������ゃ����違��腓冴����障����� 菴������ゃ�� -1 ��勐�翫����� $buf ��˨�� "" ���荐㊤����������障����������勰�∽�違�� -1 ���菴����������
undef
���菴����������$!
��� EINTR ��� EAGAIN (Errno ������) ��勐�翫�������勰����壔����勐�若�喝�冴�����膵違��菴������������壔����с����� EINTR ��壔�≪����ŝ�宴�若�激�с�潟����激�違����˨�������������������̬儀������������������������ EAGAIN ��壔�純�宴����������������㏍����㏍�潟�違�˨�������������̬儀�����������������������障����������勉�<�純�������壔����泣�若�������ï����� HTTP ���荅宴����ŝ����翫����壚��紊���� 莎激�������障��(die �����障��)��� ��������壔����若�帥�勐�����茯㏍�粋昭��推賢��˨�勉�粋儀�����������������������障�����
- %headers = $s->get_trailers
-
�����潟����c����c�������c�勛�����������腓冴����������� read_entity_body() ��� 0 ��� 菴�������緇�������絨障�˩�����������������������緇���������������˨����勉�<�純����������若�喝�冴�������� ��������障��������
- $s->_rbuf
-
茯㏍�粋昭��帥����������≦��絎鴻�����緇�/荐㊤�������障����� read_response_headers() ��<�純�������� read_entity_body() ��<�純������� 絎������˨�純�宴�������育�������� sysread �����������˨����若�帥���「��������������������<��篏帥����障����� ������茯㏍�粋昭��帥����������翫�����罧������勉����若�帥�壔����勉����������<��罧������障�����
- $s->_rbuf_length
-
茯㏍�粋昭��帥����������<�勉����ゃ����違��菴������障����� ��������壠幻��˩札筝������������с��:
length($s->_rbuf)
��������������c����号�������������������障��������
(��泣����壔�í�劫��)
read_response_headers() ��� read_entity_body() ��壔�������c�������若�帥��綽�荀��� ��翫����� sysread() ��<�純��������莎桁�������障����� ��泣����壔�í�鴻�壔��茯㏍�粋昭��帥����í�勉�������̬�������������九勝��������������˨����勉�<�純�������� ��ŝ�若����若�í�ゃ�������������������������障��������
��ŝ����吾�с�壔����ʃ昆��壔�違�㏍����с����� ��泣����壔�í�鴻�� http_
��� io_
����・��㊧��篏帥�c����������激�ャ�㏍�弱���� ��帥�������鴻����с�����
LWP, IO::Socket::INET, Net::HTTP::NB
Copyright 2001-2003 Gisle Aas.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.