mirror of
https://github.com/php/doc-ru.git
synced 2026-03-23 23:32:16 +01:00
153 lines
7.8 KiB
XML
153 lines
7.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: ae90ecc9328f3abea16a9af69a5f18b24d530832 Maintainer: shein Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<appendix xml:id="transports" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
<title>Список транспортов для работы с сокетами</title>
|
||
<para>
|
||
Список включает информацию о встроенных в PHP транспортах для работы с сокетами.
|
||
Синтаксис транспортов аналогичен схемам URL-адресов.
|
||
Транспорты применяют с функциями, которые взаимодействуют с сокетами на основе потоков, —
|
||
например <function>fsockopen</function>, —
|
||
и функцией <function>stream_socket_client</function>, которая устанавливает соединение с интернет- и Unix-сокетами.
|
||
Транспорты, которые перечисляет список, <emphasis>не</emphasis> применяют
|
||
<link linkend="ref.sockets">с функциями модуля Socket</link>.
|
||
</para>
|
||
|
||
<para>
|
||
Список транспортов, установленных в текущей версии PHP,
|
||
возвращает функция <function>stream_get_transports</function>.
|
||
</para>
|
||
|
||
<section xml:id="transports.inet">
|
||
<title>Сокеты интернет-домена: TCP, UDP, SSL и TLS</title>
|
||
<simpara>
|
||
Транспорты для сокетов интернет-домена: <literal>ssl://</literal>, <literal>tls://</literal>,
|
||
<literal>sslv2://</literal> и <literal>sslv3://</literal>.
|
||
</simpara>
|
||
<note>
|
||
<simpara>
|
||
Транспорты <literal>sslv2://</literal> и <literal>sslv3://</literal>
|
||
устарели. Документацию к этим транспортам сохранили
|
||
только в целях обратной совместимости.
|
||
</simpara>
|
||
</note>
|
||
|
||
<note>
|
||
<simpara>
|
||
Функции автоматически выберут транспорт <literal>tcp://</literal>, если другой не указали.
|
||
</simpara>
|
||
</note>
|
||
|
||
<itemizedlist>
|
||
<listitem><simpara><literal>127.0.0.1</literal></simpara></listitem>
|
||
<listitem><simpara><literal>fe80::1</literal></simpara></listitem>
|
||
<listitem><simpara><literal>www.example.com</literal></simpara></listitem>
|
||
<listitem><simpara><literal>tcp://127.0.0.1</literal></simpara></listitem>
|
||
<listitem><simpara><literal>tcp://fe80::1</literal></simpara></listitem>
|
||
<listitem><simpara><literal>tcp://www.example.com</literal></simpara></listitem>
|
||
<listitem><simpara><literal>udp://www.example.com</literal></simpara></listitem>
|
||
<listitem><simpara><literal>ssl://www.example.com</literal></simpara></listitem>
|
||
<listitem><simpara><literal>tls://www.example.com</literal></simpara></listitem>
|
||
</itemizedlist>
|
||
|
||
<simpara>
|
||
Наряду с целевым адресом сокеты интернет-домена ожидают номер порта.
|
||
При работе с функцией <function>fsockopen</function> порт указывается вторым параметром
|
||
и поэтому не влияет на формирование URL-адреса транспорта. При работе
|
||
с функцией <function>stream_socket_client</function> и другими функциями для работы с потоками,
|
||
как и при работе с традиционными URL-адресами, номер порта указывается как суффикс —
|
||
через двоеточие в конце транспортного URL-адреса.
|
||
</simpara>
|
||
|
||
<itemizedlist>
|
||
<listitem><simpara><literal>tcp://127.0.0.1:80</literal></simpara></listitem>
|
||
<listitem><simpara><literal>tcp://[fe80::1]:80</literal></simpara></listitem>
|
||
<listitem><simpara><literal>tcp://www.example.com:80</literal></simpara></listitem>
|
||
</itemizedlist>
|
||
|
||
<note>
|
||
<title>Числовые IPv6-адреса с номерами портов</title>
|
||
<simpara>
|
||
Хотя во втором примере IPv4-адреса и имя хоста
|
||
не изменились, за исключением добавления номера порта после
|
||
двоеточия, IPv6-адрес обрамили квадратными скобками:
|
||
<literal>[fe80::1]</literal>. Квадратные скобки помогают отличать
|
||
двоеточия в IPv6-адресе и двоеточие, которое отделяет номер порта.
|
||
</simpara>
|
||
</note>
|
||
|
||
<simpara>
|
||
Транспорты <literal>ssl://</literal> и <literal>tls://</literal>,
|
||
которые доступны, только если PHP скомпилировали с поддержкой модуля openssl, —
|
||
расширяют транспорт <literal>tcp://</literal> для включения SSL-шифрования.
|
||
</simpara>
|
||
|
||
<simpara>
|
||
Транспорт <literal>ssl://</literal> попытается согласовать безопасное SSL/TLS-соединение
|
||
на основе протоколов и алгоритмов шифрования, доступных клиенту и удалённому хосту.
|
||
Конкретные протоколы определяются
|
||
конфигурацией библиотеки OpenSSL и параметрами
|
||
функции <function>stream_context_create</function>
|
||
наподобие опции <literal>ssl.crypto_method</literal>.
|
||
</simpara>
|
||
|
||
<simpara>
|
||
Протоколы SSLv2 и SSLv3 устарели и небезопасны.
|
||
Разработчики PHP и библиотеки OpenSSL больше не включают поддержку этих версий
|
||
по умолчанию и настоятельно не рекомендуют обмениваться данным по устаревшим протоколам.
|
||
</simpara>
|
||
</section>
|
||
|
||
<section xml:id="transports.unix">
|
||
<title>Сокеты Unix-домена: UNIX и UDG</title>
|
||
<simpara>
|
||
Транспорты для сокетов Unix-домена: <literal>unix://</literal>
|
||
и <literal>udg://</literal>
|
||
</simpara>
|
||
|
||
<itemizedlist>
|
||
<listitem><simpara><literal>unix:///tmp/mysock</literal></simpara></listitem>
|
||
<listitem><simpara><literal>udg:///tmp/mysock</literal></simpara></listitem>
|
||
</itemizedlist>
|
||
|
||
<simpara>
|
||
Транспорт <literal>unix://</literal> открывает доступ к соединению с сокетом на основе потока в Unix-домене,
|
||
а <literal>udg://</literal> предоставляет альтернативный транспорт
|
||
к сокету в домене Unix — через протокол UDP.
|
||
</simpara>
|
||
|
||
<simpara>
|
||
Сокеты Unix-домена, в отличие от сокетов интернет-домена, не ожидают номер порта.
|
||
При работе с функцией <function>fsockopen</function>
|
||
для параметра <parameter>portno</parameter> требуется установить значение 0.
|
||
</simpara>
|
||
|
||
<note>
|
||
<simpara>
|
||
ОС Windows не поддерживают сокеты домена Unix.
|
||
</simpara>
|
||
</note>
|
||
</section>
|
||
|
||
</appendix>
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|