File: transports.xml

package info (click to toggle)
php-doc 20061001-1
  • links: PTS
  • area: non-free
  • in suites: etch, etch-m68k
  • size: 45,764 kB
  • ctags: 1,611
  • sloc: xml: 502,485; php: 7,645; cpp: 500; makefile: 297; perl: 161; sh: 141; awk: 28
file content (231 lines) | stat: -rw-r--r-- 8,093 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.12 $ -->
<appendix id="transports">
 <title>List of Supported Socket Transports</title>
 <para>
  The following is a list of the various URL style socket transports
  that PHP has built-in for use with the streams based socket
  functions such as <function>fsockopen</function>, and
  <function>stream_socket_client</function>.  These transports do
  <emphasis>not</emphasis> apply to the 
  <link linkend="ref.sockets">Sockets Extension</link>.
 </para>

 <para>
  For a list of transports installed in your version of
  PHP use <function>stream_get_transports</function>.
 </para>

 <section id="transports.inet">
  <title>Internet Domain: TCP, UDP, SSL, and TLS</title>
  <simpara>
   PHP 3, PHP 4, PHP 5.
   <literal>ssl://</literal> &amp; <literal>tls://</literal> since PHP 4.3.0
   <literal>sslv2://</literal> &amp; <literal>sslv3://</literal> since PHP 5.0.2
  </simpara>

  <note>
   <simpara>
    If no transport is specified, <literal>tcp://</literal> will be assumed.
   </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>sslv2://www.example.com</literal></simpara></listitem>
   <listitem><simpara><literal>sslv3://www.example.com</literal></simpara></listitem>
   <listitem><simpara><literal>tls://www.example.com</literal></simpara></listitem>
  </itemizedlist>

  <simpara>
   Internet Domain sockets expect a port number in addition
   to a target address.  In the case of <function>fsockopen</function>
   this is specified in a second parameter and therefore does
   not impact the formatting of transport URL.  With
   <function>stream_socket_client</function> and related functions
   as with traditional URLs however, the port number is specified
   as a suffix of the transport URL delimited by a colon.
  </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 numeric addresses with port numbers</title>
   <simpara>
    In the second example above, while the IPv4 and hostname
    examples are left untouched apart from the addition of 
    their colon and portnumber, the IPv6 address is wrapped in
    square brackets: <literal>[fe80::1]</literal>.  This is to
    distinguish between the colons used in an IPv6 address and
    the colon used to delimit the portnumber.
   </simpara>
  </note>

  <simpara>
   The <literal>ssl://</literal> and <literal>tls://</literal> transports 
   (available only when openssl support is compiled into PHP) are extensions 
   of the <literal>tcp://</literal> transport which include SSL encryption.
   Since PHP 4.3.0 OpenSSL support must be statically 
   compiled into PHP, since PHP 5.0.0
   it may be compiled as a module or statically.
  </simpara>

  <simpara>
   <literal>ssl://</literal> will attempt to negotiate an SSL V2,
   or SSL V3 connection depending on the capabilities and preferences
   of the remote host.  <literal>sslv2://</literal> and 
   <literal>sslv3://</literal> will select the SSL V2 or SSL V3
   protocol explicitly.
  </simpara>

  <para>
   <table>
    <title>
     Context options for <literal>ssl://</literal> and <literal>tls://</literal> 
     transports (since PHP 4.3.2)
    </title>
    <tgroup cols="3">
     <thead>
      <row>
       <entry>Name</entry>
       <entry>Usage</entry>
       <entry>Default</entry>
      </row>
     </thead>
     <tbody>
      <row>
       <entry><literal>verify_peer</literal></entry>
       <entry>
        &true; or &false;.
        Require verification of SSL certificate used.
       </entry>
       <entry>&false;</entry>
      </row>
      <row>
       <entry><literal>allow_self_signed</literal></entry>
       <entry>
        &true; or &false;.
        Allow self-signed certificates.
       </entry>
       <entry>&false;</entry>
      </row>
      <row>
       <entry><literal>cafile</literal></entry>
       <entry>
        Location of Certificate Authority file on local filesystem
        which should be used with the <literal>verify_peer</literal>
        context option to authenticate the identity of the remote peer.
       </entry>
       <entry></entry>
      </row>
      <row>
       <entry><literal>capath</literal></entry>
       <entry>
        If <literal>cafile</literal> is not specified or if the certificate
        is not found there, the directory pointed to by <literal>capath</literal> 
        is searched for a suitable certificate.  <literal>capath</literal>
        must be a correctly hashed certificate directory.
       </entry>
       <entry></entry>
      </row>
      <row>
       <entry><literal>local_cert</literal></entry>
       <entry>
        Path to local certificate file on filesystem.  It must be a PEM
        encoded file which contains your certificate and private key.
        It can optionally contain the certificate chain of issuers.
       </entry>
       <entry></entry>
      </row>
      <row>
       <entry><literal>passphrase</literal></entry>
       <entry>
        Passphrase with which your <literal>local_cert</literal> file
        was encoded.
       </entry>
       <entry></entry>
      </row>
      <row>
       <entry><literal>CN_match</literal></entry>
       <entry>
        Common Name we are expecting.  PHP will perform limited wildcard
        matching.  If the Common Name does not match this, the connection
        attempt will fail.
       </entry>
       <entry></entry>
      </row>
     </tbody>
    </tgroup>
   </table>
  </para>

  <note>
   <simpara>
    Because <literal>ssl://</literal> is the underlying transport for the
    <link linkend="wrappers.http"><literal>https://</literal></link> and
    <link linkend="wrappers.ftp"><literal>ftps://</literal></link> wrappers, 
    any context options which apply to <literal>ssl://</literal> also apply to
    <literal>https://</literal> and <literal>ftps://</literal>.
   </simpara>
  </note>
 </section>

 <section id="transports.unix">
  <title>Unix Domain: Unix and UDG</title>
  <simpara>
   <literal>unix://</literal> since PHP 3, 
   <literal>udg://</literal> since PHP 5
  </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> provides access to a socket stream
   connection in the Unix domain. <literal>udg://</literal> provides
   an alternate transport to a Unix domain socket using the user datagram
   protocol.
  </simpara>

  <simpara>
   Unix domain sockets, unlike Internet domain sockets, do not expect
   a port number.  In the case of <function>fsockopen</function> the
   <parameter>portno</parameter> parameter should be set to 0.
  </simpara>
 </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:"../../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
-->