1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-26 00:12:06 +01:00
Files
archived-doc-es/language/context/http.xml
Pedro Antonio Gil Rodríguez 5eed26a161 Actualización a la última versión
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@338594 c90b9560-bf6c-de11-be94-00142212c4b1
2016-02-12 09:53:22 +00:00

410 lines
11 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 73b8b5c0299a67b34a77afd1929b953feb128ce1 Maintainer: seros Status: ready -->
<!-- Reviewed: yes Maintainer: seros -->
<refentry xml:id="context.http" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" role="noversion">
<refnamediv>
<refname>Opciones de contexto de HTTP</refname>
<refpurpose>Listado de opciones de contexto de HTTP</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>
Opciones de contexto para los transportes <literal>http://</literal> y
<literal>https://</literal>.
</para>
</refsect1>
<refsect1 role="options"><!-- {{{ -->
&reftitle.options;
<para>
<variablelist>
<varlistentry xml:id="context.http.method">
<term>
<parameter>method</parameter>
<type>string</type>
</term>
<listitem>
<para>
<constant>GET</constant>, <constant>POST</constant>, o
cualquier otro método HTTP que admita el servidor remoto.
</para>
<para>
Por omisión, <constant>GET</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.header">
<term>
<parameter>header</parameter>
<type>string</type>
</term>
<listitem>
<para>
Las cabeceras adicionales que se envían en la petición. Los valores
de esta opción sobrescribirán los existentes (tales como
<literal>User-agent:</literal>, <literal>Host:</literal>,
o <literal>Authentication:</literal>).
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.user-agent">
<term>
<parameter>user_agent</parameter>
<type>string</type>
</term>
<listitem>
<para>
Valor de la cabecera <literal>User-Agent:</literal>. Solo se utilizará
si el agente <emphasis>no</emphasis> se ha especificado en
la opción de contexto <literal>header</literal> vista arriba.
</para>
<para>
Por omisión, se utiliza el valor del ajuste
<link linkend="ini.user-agent">user_agent</link>
de &php.ini;.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.content">
<term>
<parameter>content</parameter>
<type>string</type>
</term>
<listitem>
<para>
Datos adicionales a enviar tras las cabeceras. Típicamente se
utiliza con peticiones POST o PUT.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.proxy">
<term>
<parameter>proxy</parameter>
<type>string</type>
</term>
<listitem>
<para>
El URI que define la dirección de un servidor proxy (p.ej.
<literal>tcp://proxy.example.com:5100</literal>).
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.request-fulluri">
<term>
<parameter>request_fulluri</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Cuando se establece a &true;, se utilizará todo el URI para
construir la petición, (es decir,
<literal>GET http://www.example.com/path/to/file.html HTTP/1.0</literal>).
A pesar de que es un formato de petición no estándar, algunos
servidores proxy requieren que sea así.
</para>
<para>
Por omisión es &false;.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.follow-location">
<term>
<parameter>follow_location</parameter>
<type>integer</type>
</term>
<listitem>
<para>
Seguir las redirecciones de las cabeceras <literal>Location</literal>. Establecer a
<literal>0</literal> para deshabilitarlo.
</para>
<para>
Por omisión es <literal>1</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.max-redirects">
<term>
<parameter>max_redirects</parameter>
<type>integer</type>
</term>
<listitem>
<para>
El número máximo de redirecciones a seguir. Un valor igual o menor a <literal>1</literal>
indica que no se siga ninguna redirección.
</para>
<para>
Por omisión es <literal>20</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.protocol-version">
<term>
<parameter>protocol_version</parameter>
<type>float</type>
</term>
<listitem>
<para>
La versión del protocolo HTTP.
</para>
<para>
Por omisión es <literal>1.0</literal>.
</para>
<note>
<para>
Las versiónes de PHP anteriores a la 5.3.0 no implementan la decodificación de
transferencias fragmentadas. Si este valor es <literal>1.1</literal>, es
responsabilidad del programador cumplir con la versión <literal>1.1</literal>.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.timeout">
<term>
<parameter>timeout</parameter>
<type>float</type>
</term>
<listitem>
<para>
El tiempo de espera de lectura en segundos, especificado por un <type>float</type>
(p.ej. <literal>10.5</literal>).
</para>
<para>
Por omisión, se utiliza el valor del ajuste
<link linkend="ini.default-socket-timeout">default_socket_timeout</link>
de &php.ini;.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.ignore-errors">
<term>
<parameter>ignore_errors</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Obtener el contenido incluso con códigos de estado de error.
</para>
<para>
Por omisión es &false;.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1><!-- }}} -->
<refsect1 role="changelog"><!-- {{{ -->
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>5.3.4</entry>
<entry>
Se añadió <parameter>follow_location</parameter>.
</entry>
</row>
<row>
<entry>5.3.0</entry>
<entry>
La opción <parameter>protocol_version</parameter> admite la decodificación de
transferencias fragmentadas en caso de valer <literal>1.1</literal>.
</entry>
</row>
<row>
<entry>5.2.10</entry>
<entry>
Se añadió <parameter>ignore_errors</parameter>.
</entry>
</row>
<row>
<entry>5.2.10</entry>
<entry>
El parámetro <parameter>header</parameter> ahora puede ser un <type>array</type> de índices numéricos.
</entry>
</row>
<row>
<entry>5.2.1</entry>
<entry>
Se añadió <parameter>timeout</parameter>.
</entry>
</row>
<row>
<entry>5.1.0</entry>
<entry>
Se añadió el soporte de HTTPS mediante proxies HTTP.
</entry>
</row>
<row>
<entry>5.1.0</entry>
<entry>
Se añadió <parameter>max_redirects</parameter>.
</entry>
</row>
<row>
<entry>5.1.0</entry>
<entry>
Se añadió <parameter>protocol_version</parameter>.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1><!-- }}} -->
<refsect1 role="examples"><!-- {{{ -->
&reftitle.examples;
<para>
<example xml:id="context.http.example-post"><!-- {{{ -->
<title>Obtener una página y enviar datos POST</title>
<programlisting role="php">
<![CDATA[
<?php
$datos_post = http_build_query(
array(
'var1' => 'contenido',
'var2' => 'doh'
)
);
$opciones = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $datos_post
)
);
$contexto = stream_context_create($opciones);
$resultado = file_get_contents('http://example.com/submit.php', false, $contexto);
?>
]]>
</programlisting>
</example><!-- }}} -->
</para>
<para>
<example xml:id="context.http.example-fetch-ignore-redirect"><!-- {{{ -->
<title>Ignorar las redirecciones, aunque obtener las cabeceras y el contenido</title>
<programlisting role="php">
<![CDATA[
<?php
$url = "http://www.example.org/header.php";
$opciones = array('http' =>
array(
'method' => 'GET',
'max_redirects' => '0',
'ignore_errors' => '1'
)
);
$contexto = stream_context_create($opciones);
$flujo = fopen($url, 'r', false, $contexto);
// información de cabeceras y meta datos
// sobre el flujo
var_dump(stream_get_meta_data($flujo));
// datos reales en $url
var_dump(stream_get_contents($flujo));
fclose($flujo);
?>
]]>
</programlisting>
</example><!-- }}} -->
</para>
</refsect1><!-- }}} -->
<refsect1 role="notes">
&reftitle.notes;
<note>
<title>Opciones de contexto del flujo de socket subyacente</title>
<simpara>
Se pueden admitir opciones de contexto adicionales mediante el
<link linkend="transports.inet">transporte subyacente</link>.
Para flujos <literal>http://</literal>, deben consultarse las opciones
de contexto del transporte <literal>tcp://</literal>. Para flujos
<literal>https://</literal>, deben consultarse las opciones de
contexto del transporte <literal>ssl://</literal>.
</simpara>
</note>
<note>
<title>Línea de estado HTTP</title>
<simpara>
Cuando esta envultura de flujo sigue una redirección, los
datos en <literal>wrapper_data</literal> devueltos por
<function>stream_get_meta_data</function> podrían no contener necesariamente
la línea de estado HTTP que realmente se aplica a los datos del contenido del índice
<literal>0</literal>.
</simpara>
<screen>
<![CDATA[
array (
'wrapper_data' =>
array (
0 => 'HTTP/1.0 301 Moved Permantenly',
1 => 'Cache-Control: no-cache',
2 => 'Connection: close',
3 => 'Location: http://example.com/foo.jpg',
4 => 'HTTP/1.1 200 OK',
...
]]>
</screen>
<simpara>
La primera petición devolvió un <literal>301</literal> (redirección permanente),
de manera que la envoltura del flujo sigue automáticamente la redirección para obtener una
respuesta de código <literal>200</literal> (índice = <literal>4</literal>).
</simpara>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><xref linkend="wrappers.http" /></member>
<member><xref linkend="context.socket" /></member>
<member><xref linkend="context.ssl" /></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- 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
-->