Http рдЕрдиреБрд░реЛрдз - рд╣рдо рдпрд╣ рд╕рдм рдЧрд▓рдд рдХрд░рддреЗ рд╣реИрдВ

рдореИрдВ рдЬрд┐рд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЙрд╕рдореЗрдВ рд╣рдо рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдбреЗрдкреНрдЯрд░ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдХреНрдпрд╛ рдПрдХрдЬреБрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред Http рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ Json, http рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╕рд╛рдмреБрди, http рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЗрд╕рдХреЗ рдХреБрдЫ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ред рдпрд╛рдиреА рд╣рд░ рдХреЛрдИ рд╡реИрд╕реЗ рднреА http рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ, рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддреЗ рд╣реИрдВред рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдмрд╣реБрдд рдЖрд▓рд╕реА рдирд╣реАрдВ рдерд╛, рд╡рд┐рдирд┐рд░реНрджреЗрд╢ http 1.1 рдХреЛ рдЕрдкрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдареАрдХ 14 рд╕рд╛рд▓ рдмреАрдд рдЪреБрдХреЗ рд╣реИрдВред рдФрд░ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкреАрд▓ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛:
рдЫрд╡рд┐

рд╣рд╛рдВ, рдпрд╣ рдЬреАрд╡рд┐рдд рд░рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐, http 1.1 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реНрдерд╛рдкрд┐рдд tcp рдХрдиреЗрдХреНрд╢рди рдХреЛ рдмрдВрдж рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдХрднреА-рдХрднреА рдпрд╣ рд╕рдордп рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рдордп рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдпрджрд┐ рд╕рднреА рд╕рд░реНрд╡рд░ рдиреЗ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдмрд╣реБрдд рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЧреНрд░рд╛рд╣рдХ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЕрдВрддрд░ рд╣реЛрддрд╛ рд╣реИред
рд╕рд╛рдзрд╛рд░рдг PHP рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рд╕рд░реНрд╡рд░ рд╕реЗ 10 рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ:

<?php
for ($i = 0; $i < 10; $i += 1) {
	$ch = curl_init();
	curl_setopt_array($ch, array(
		CURLOPT_URL => "https://evernote.com/favicon.ico",
		CURLOPT_VERBOSE => True,
		CURLOPT_RETURNTRANSFER => True,
	));
	$resp = curl_exec($ch);
	curl_close($ch);
}

95% , . CURLOPT_VERBOSE , curl . 9 ( ):

* Connection #0 to host evernote.com left intact
* Closing connection #0
* About to connect() to evernote.com port 443 (#0)
*   Trying 204.154.94.73...

, curl , . : 10 10 , 17 .

, curl http 1.1, . :

<?php
$ch = curl_init();
for ($i = 0; $i < 10; $i += 1) {
	curl_setopt_array($ch, array(
		CURLOPT_URL => "https://evernote.com/favicon.ico",
		CURLOPT_VERBOSE => True,
		CURLOPT_RETURNTRANSFER => True,
	));
	$resp = curl_exec($ch);
}
curl_close($ch);

, :

* Connection #0 to host evernote.com left intact
* Re-using existing connection! (#0) with host (nil)
* Connected to (nil) (204.154.94.73) port 443 (#0)

5,5 . , . . , http ssl, . , .

, , 10 http https keep-alive . 5-6 .

evernote.com/favicon.ico, тЙИ 200 ms, 27054 .
ReconnectKeep-AliveRatio
http1052x
https175,53,1x

twitter.com/favicon.ico, тЙИ 200 ms, 1150 .
ReconnectKeep-AliveRatio
http4,32,51,7x
https8,52,73,1x

yandex.st/lego/_/pDu9OWAQKB0s2J9IojKpiS_Eho.ico, тЙИ 17 ms, 1150 .
ReconnectKeep-AliveRatio
http0,330,171,9x
https0,80,24x

. , , . curl тАФ curl_init() , , ( , ). curl_close() , . Curl , , .

, , curl php. , . , python urllib3 тАФ requests. , curl php, , . , . stripe. 2 , , . pyuploadcare. тАФ requests.request() session, .

, , , .


Source: https://habr.com/ru/post/In184302/


All Articles