1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-23 23:32:16 +01:00
Files
archived-doc-ru/appendices/transports.xml
2026-03-15 23:09:32 +03:00

153 lines
7.8 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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
-->