## Сокеты интернет-домена: TCP, UDP, SSL и TLS

Транспорты для сокетов интернет-домена: `ssl://`, `tls://`, `sslv2://` и `sslv3://`.

> Замечание: Транспорты `sslv2://` и `sslv3://` устарели. Документацию к этим транспортам сохранили только в целях обратной совместимости.

> Замечание: Функции автоматически выберут транспорт `tcp://`, если другой не указали.

- `127.0.0.1`
- `fe80::1`
- `www.example.com`
- `tcp://127.0.0.1`
- `tcp://fe80::1`
- `tcp://www.example.com`
- `udp://www.example.com`
- `ssl://www.example.com`
- `tls://www.example.com`

Наряду с целевым адресом сокеты интернет-домена ожидают номер порта. При работе с функцией fsockopen() порт указывается вторым параметром и поэтому не влияет на формирование URL-адреса транспорта. При работе с функцией stream_socket_client() и другими функциями для работы с потоками, как и при работе с традиционными URL-адресами, номер порта указывается как суффикс — через двоеточие в конце транспортного URL-адреса.

- `tcp://127.0.0.1:80`
- `tcp://[fe80::1]:80`
- `tcp://www.example.com:80`

> Замечание: Числовые IPv6-адреса с номерами портов
> Хотя во втором примере IPv4-адреса и имя хоста не изменились, за исключением добавления номера порта после двоеточия, IPv6-адрес обрамили квадратными скобками: `[fe80::1]`. Квадратные скобки помогают отличать двоеточия в IPv6-адресе и двоеточие, которое отделяет номер порта.

Транспорты `ssl://` и `tls://`, которые доступны, только если PHP скомпилировали с поддержкой модуля openssl, — расширяют транспорт `tcp://` для включения SSL-шифрования.

Транспорт `ssl://` попытается согласовать безопасное SSL/TLS-соединение на основе протоколов и алгоритмов шифрования, доступных клиенту и удалённому хосту. Конкретные протоколы определяются конфигурацией библиотеки OpenSSL и параметрами функции stream_context_create() наподобие опции `ssl.crypto_method`.

Протоколы SSLv2 и SSLv3 устарели и небезопасны. Разработчики PHP и библиотеки OpenSSL больше не включают поддержку этих версий по умолчанию и настоятельно не рекомендуют обмениваться данным по устаревшим протоколам.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open