Manual do PHP
Anterior |  | Próxima

# Apêndice P. Lista de Transportes via Socket Suportados

Segue a lista dos vários estilos de URL para transporte via socket que o PHP tem integrado para uso com funções de fluxos de dados baseados em socket como fsockopen(), e stream_socket_client(). Esses transportes não se aplicam à Extensão de Sockets.

Para uma lista de transportes instalados na sua versão do PHP use stream_get_transports().

# Internet Domain: TCP, UDP, SSL, e TLS

PHP 3, PHP 4, PHP 5. `ssl://` & `tls://` desde o PHP 4.3.0 `sslv2://` & `sslv3://` desde o PHP 5.0.2

> Nota: Se nenhum transporte for especificado, `tcp://` será usado.

- `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`

- `sslv2://www.example.com`

- `sslv3://www.example.com`

- `tls://www.example.com`

Sockets no Domínio Internet esperam um número de porta além do endereço desejado. No caso de fsockopen(), esta é especificada no segundo parâmetro e, portanto, não afeta a formatação da URL. Com stream_socket_client() e funções relacionadas como com as URLs tradicionais, no entanto, o número da porta é especificado como um sufixo à URL delimitada por dois-pontos.

- `tcp://127.0.0.1:80`

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

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

> Endereços númericos com número de porta em IPv6: No segundo exemplo acima, enquanto os exemplos em IPv4 e nome de host permaneceram iguais, exceto pela adição do dois-pontos e número da porta, o endereço em IPv6 é envolto em colchetes: `[fe80::1]`. Isso é para destinguir entre os dois pontos de um endereço IPv6 e como separador de porta no IPv4.

Os transportes `ssl://` e `tls://` (disponíveis apenas quando o suporte a openssl é compilado no PHP) são extensões do transporte `tcp://` que incluem encriptação SSL. Desde o PHP 4.3.0, suporte a OpenSSL deve ser compilado estaticamente no PHP, no PHP 5.0.0 ele pode ser compilado como um módulo ou estaticamente.

`ssl://` tentará negociar uma conexão SSL V2 ou SSL V3, dependendo das capacidades e preferências do host remoto. `sslv2://` e `sslv3://` selecionará o protocolo de maneira explícita.

Tabela P-1. Opções de contexto para transportes `ssl://` e `tls://` (PHP 4.3.2 ou superior)

Nome | Uso | Valor Padrão
--- | --- | ---
`verify_peer` | `TRUE` or `FALSE`. Quando `TRUE`, passa a pedir a verificação do certificado SSL. | `FALSE`
`allow_self_signed` | `TRUE` or `FALSE`. Quando `TRUE`, permite certificados auto-assinados. | `FALSE`
`cafile` | Localização do arquivo de Certificado de Autoridade no sistema de arquivo que deve ser usado com a opção de contexto `verify_peer` para autenticar a identidade do peer remoto. |
`capath` | Se `cafile` não for especificado ou se o certificado não for achado lá, o diretório apontado por `capath` é procurado para um certificado aceitável. `capath` deve ser um diretório de certificado corretamente hasheado. |
`local_cert` | Caminho para o arquivo local do certificado no sistema de arquivos. Deve ser um arquivo em codificacao PEM que contem seu certificado e uma chave privada. Ele pode, opcionalmente, conter a cadeia de emissores do certificado. |
`passphrase` | Passphrase com a qual seu arquivo `local_cert` foi codificado. |
`CN_match` | Nome Comum (Common Name) esperado. O PHP fará uma comparação limitada de wildcard. Se o Nome Comum não bater, a tentativa de conexão falhará. |

> Nota: Porque `ssl://` é o transporte sobre o qual `https://` e `ftps://` funcionam, qualquer opção de contexto que for aplicada a `ssl://` também será aplicada a `https://` and `ftps://`.

Anterior | Principal | Próxima
Encryption Filters | Acima | Domínio Unix: Unix e UDG