1
0
mirror of https://github.com/php/doc-uk.git synced 2026-03-24 07:02:12 +01:00
Files
archived-doc-uk/language/context/http.xml
2024-06-14 16:50:43 +01:00

412 lines
13 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 2726a42e43b7b2ce0579d9e2eb969638ef39da0f Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<refentry xml:id="context.http" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" annotations="verify_info:false" role="stream_context_option">
<refnamediv>
<refname>Опції контекста HTTP</refname>
<refpurpose>Список опцій контекста HTTP</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>
Опції контекста для транспортних протоколів <literal>http://</literal> та
<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>, або
будь-який інший метод HTTP, що підтримується віддаленим сервером.
</para>
<para>
Початково - <constant>GET</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.header">
<term>
<parameter>header</parameter>
<type>string</type>
</term>
<listitem>
<para>
Додаткові заголовки, що відправляються під час запиту. Значення в
цих опціях будуть перевизначати інші опції (такі як
<literal>User-agent:</literal>, <literal>Host:</literal>,
та <literal>Authentication:</literal>).
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.user-agent">
<term>
<parameter>user_agent</parameter>
<type>string</type>
</term>
<listitem>
<para>
Значення для відправки із заголовками <literal>User-Agent:</literal>.
Ці значення будуть використовуватись лише якщо <emphasis>не буде</emphasis>
визначено user-agent в опціях контекста <literal>header</literal> вище.
</para>
<para>
Початково використовується директива
<link linkend="ini.user-agent">user_agent</link>
з файла &php.ini;.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.content">
<term>
<parameter>content</parameter>
<type>string</type>
</term>
<listitem>
<para>
Додаткові дані для відправки після заголовків. Зазвичай використовується
із запитами POST або PUT.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.proxy">
<term>
<parameter>proxy</parameter>
<type>string</type>
</term>
<listitem>
<para>
Адреса URI, що визначає проксі-сервер. (наприклад
<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>
Якщо встановлено значення в &true;, то при створенні запиту буде
використовуватись повна URI. (наприклад
<literal>GET http://www.example.com/path/to/file.html HTTP/1.0</literal>).
Хоча це нестандартний формат запиту, деякі проксі-сервера
вимагають його.
</para>
<para>
Початково &false;.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.follow-location">
<term>
<parameter>follow_location</parameter>
<type>integer</type>
</term>
<listitem>
<para>
Вказує чи потрібно слідувати переадресаціям заголовку
<literal>Location</literal>. Для відключення встановіть <literal>0</literal>.
</para>
<para>
Початково <literal>1</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.max-redirects">
<term>
<parameter>max_redirects</parameter>
<type>integer</type>
</term>
<listitem>
<para>
Максимальна кількість переходів при переадресаціях. Значення
<literal>1</literal> або менше, означає переходи без
переадресацій.
</para>
<para>
Початково <literal>20</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.protocol-version">
<term>
<parameter>protocol_version</parameter>
<type>float</type>
</term>
<listitem>
<para>
Версія HTTP-протоколу.
</para>
<para>
Початково <literal>1.0</literal>.
</para>
<note>
<para>
В PHP до версії 5.3.0 не було впроваджено декодування фрагментованих
передач. Якщо це значення встановити в <literal>1.1</literal>, це
означає, що ви берете відповідальність бути сумісним з
<literal>1.1</literal>.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.timeout">
<term>
<parameter>timeout</parameter>
<type>float</type>
</term>
<listitem>
<para>
Час очікування для читання в секундах, визначається через
<type>float</type> (наприклад <literal>10.5</literal>).
</para>
<para>
Початково використовується значення директиви
<link linkend="ini.default-socket-timeout">default_socket_timeout</link>
з файлу &php.ini;.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.http.ignore-errors">
<term>
<parameter>ignore_errors</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Отримувати вміст навіть при неуспішних кодах статуса.
</para>
<para>
Початково &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>
Додано <parameter>follow_location</parameter>.
</entry>
</row>
<row>
<entry>5.3.0</entry>
<entry>
Параметр <parameter>protocol_version</parameter> підтримує декодування
фрагментованої передачі, якщо встановлено <literal>1.1</literal>.
</entry>
</row>
<row>
<entry>5.2.10</entry>
<entry>
Додано <parameter>ignore_errors</parameter>.
</entry>
</row>
<row>
<entry>5.2.10</entry>
<entry>
Параметр <parameter>header</parameter> тепер може бути числовим масивом
(<type>array</type>).
</entry>
</row>
<row>
<entry>5.2.1</entry>
<entry>
Додано <parameter>timeout</parameter>.
</entry>
</row>
<row>
<entry>5.1.0</entry>
<entry>
Додано проксування протоколу HTTPS через HTTP-проксі.
</entry>
</row>
<row>
<entry>5.1.0</entry>
<entry>
Додано <parameter>max_redirects</parameter>.
</entry>
</row>
<row>
<entry>5.1.0</entry>
<entry>
Додано <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>Отримання сторінки та відправлення POST-даних</title>
<programlisting role="php">
<![CDATA[
<?php
$postdata = http_build_query(
array(
'var1' => 'some content',
'var2' => 'doh'
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://example.com/submit.php', false, $context);
?>
]]>
</programlisting>
</example><!-- }}} -->
</para>
<para>
<example xml:id="context.http.example-fetch-ignore-redirect"><!-- {{{ -->
<title>Ігнорування перенаправлень, але отримання заголовків та вмісту</title>
<programlisting role="php">
<![CDATA[
<?php
$url = "http://www.example.org/header.php";
$opts = array('http' =>
array(
'method' => 'GET',
'max_redirects' => '0',
'ignore_errors' => '1'
)
);
$context = stream_context_create($opts);
$stream = fopen($url, 'r', false, $context);
// Інформація заголовка, а також мета-дані
// про потік
var_dump(stream_get_meta_data($stream));
// Наявні дані в $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>
]]>
</programlisting>
</example><!-- }}} -->
</para>
</refsect1><!-- }}} -->
<refsect1 role="notes">
&reftitle.notes;
<note>
<title>Опції контекста потоку основного сокета</title>
<simpara>
Додаткові опції контекста можуть підтримуватись через
<link linkend="transports.inet">основні транспортні протоколи</link>
Для потоків <literal>http://</literal>, посилаються на опції контекста
транспортних протоколів <literal>tcp://</literal>. Для
потоків <literal>https://</literal>, посилаються на опції контекста
транспортних протоколів <literal>ssl://</literal>.
</simpara>
</note>
<note>
<title>Рядок стану HTTP</title>
<simpara>
Коли цей потік обгортки слідує перенаправленням,
дані обгортки (<literal>wrapper_data</literal>), що повертаються через
<function>stream_get_meta_data</function> можуть не обов'язково містити
рядок стану HTTP, який насправді застосовується до даних контента через
індекс <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>
Перший запит повертає <literal>301</literal> (постійну переадресацію),
так що потік обгортки автоматично слідує переадресації щоб отримати
відповідь <literal>200</literal> (index = <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
-->