Руководство по PHP
Пред. |  | След.

# Приложение O. Список поддерживаемых транспортных протоколов

Нижеследующий список содержит информацию о протоколах передачи встроенных в PHP и готовых для использования в функциями работы с сокетами, такими как fsockopen() и stream_socket_client(). Эти протоколы не применяются в Расширении для работы с Сокетами.

Для получения списка поддерживаемых протоколов передачи, встроенных в вашу версию `PHP`, используйте функцию stream_get_transports().

# Интернет-сокеты: TCP, UDP, SSL, and TLS

PHP 3, PHP 4. `ssl://` и `tls://` начиная с PHP 4.3

> Замечание: Если транспортный протокол не указан, будет использован `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(), порт передаётся вторым параметром и не затрагивает строку адреса. При работе с stream_socket_client() и другими близкими функциями, как и в случае со стандартными URL, порт указывается в конце адреса, отделённый двоеточием.

- `tcp://127.0.0.1:80`

- `tcp://[fe80::1]:80`

- `tcp://www.example.com:80`

> IPv6 численные адреса с указанием порта: Во втором примере выше, IPv6 адрес, заключён в квадратные скобки: `[fe80::1]`. Это сделано для того, чтобы отличить двоеточие в адресе от двоеточия при указании порта.

Протоколы `ssl://` and `tls://` (доступные только если поддержка openssl включена в PHP) являются расширениями `tcp://`, дополняющими его SSL-шифрованием. Начиная с `PHP 4.3.0`, для работы с ssl-протоколами, `PHP` должен быть собран с поддержкой OpenSSL, в `PHP 5.0.0` он может быть представлен как модуль.

Таблица O-1. Параметры для протоколов `ssl://` и `tls://` (начиная с `PHP 4.3.2`)

Имя | Использование | По умолчанию |
`verify_peer` | `TRUE` или `FALSE`. Требует проверки SSL-сертификата. | `FALSE` |
`allow_self_signed` | `TRUE` или `FALSE`. Позволяет использовать само-подписанные сертификаты. | `FALSE` |
`cafile` | Расположение в локальной файловой системе файла сертификата, который будет использовать `verify_peer` для аутентифицирования идентификатора удалённого сервера(клиента). |  |
`capath` | Если `cafile` не указан, или сертификат не найден, поиск подходящего сертификата продолжается в директории `capath`. Значением директивы должен быть путь к директории, содержащей сертификаты. |  |
`local_cert` | Путь к локальному файлу сертификата. Это должен быть PEM-энкодированный файл, содержащий ваш сертификат и частный ключ. Опционально он может содержать цепочку сертфиикатов издателей. |  |
`passphrase` | Ключевое слово, по которому был энкодирован ваш `local_cert`. |  |
`CN_match` | Общее название (Common Name), которого мы ожидаем. PHP будет сравнивать, используя вайлд-карды. Если общее название не подходит, соединение будет разорвано. |  |

> Замечание: Постольку поскольку `ssl://` протокол является базисом для `https://` и `ftps://` врапперов, все директивы `ssl://` применяются как для `https://`, так и для `ftps://`.

Пред. | Начало | След.
Шифрующие фильтры | Уровень выше | Unix-сокеты: UNIX и UDG