# HTTP-Kontextoptionen

HTTP-Kontextoptionen — Liste der HTTP-Kontextoptionen

### Beschreibung

Kontextoptionen für die Transportprotokolle `http://` und `https://`.

### Optionen

`method` string

  `GET`, `POST` oder eine andere vom entfernten Server unterstützte HTTP-Methode.

  Der Standardwert ist `GET`.

`header` array oder string

  Zusätzliche Kopfzeilen, die während der Anfrage gesendet werden. Die Werte in dieser Option überschreiben andere Werte (wie `User-Agent:`, `Host:`, und `Authentication:`), selbst wenn sie `Location:`-Weiterleitungen folgen. Es ist daher nicht empfehlenswert, eine `Host:`-Kopfzeile zu setzen, wenn `follow_location` aktiviert ist.

  Der Wert der Zeichenkette sollte aus `Schlüssel: Wert`-Paaren bestehen, die durch `\r\n` begrenzt sind, z. B. `"Content-Type: application/json\r\nConnection: close"`. Der Wert des Arrays sollte eine Liste von `Schlüssel: Wert`-Paaren sein, z. B. `["Content-Type: application/json", "Connection: close"]`.

`user_agent` string

  Der Wert, der mit der Kopfzeile `User-Agent:` gesendet wird. Dieser Wert wird nur verwendet, wenn der User-Agent nicht in der obigen Kontextoption `header` angegeben wurde.

  Standardmäßig wird der Wert von user_agent aus der php.ini verwendet.

`content` string

  Zusätzliche Daten, die nach den Kopfzeilen gesendet werden; wird in der Regel bei POST- oder PUT-Anfragen verwendet.

`proxy` string

  Der URI, der die Adresse des Proxy-Servers angibt (z. B. `tcp://proxy.example.com:5100`).

`request_fulluri` bool

  Wenn auf `true` gesetzt, wird beim Aufbau der Anfrage der gesamte URI verwendet (z. B. `GET http://www.example.com/path/to/file.html HTTP/1.0`). Dies ist zwar kein Standard-Anfrageformat, wird aber von einigen Proxy-Servern verlangt.

  Der Standardwert ist `false`.

`follow_location` int

  Folgt den Weiterleitungen der Kopfzeile `Location`; zum Deaktivieren auf 0 setzen.

  Der Standardwert ist `1`.

`max_redirects` int

  Die maximale Anzahl der zu verfolgenden Weiterleitungen. Der Wert `1` oder weniger bedeutet, dass keine Weiterleitungen verfolgt werden.

  Der Standardwert ist `20`.

`protocol_version` float

  Die Version des HTTP-Protokolls.

  Seit PHP 8.0.0 ist der Standardwert `1.1`; vorher war es `1.0`.

`timeout` float

  Das Zeitlimit für Lesevorgänge in Sekunden, angegeben durch einen Wert vom Typ float (z. B. `10.5`).

  Standardmäßig wird der Wert von default_socket_timeout aus der php.ini verwendet.

`ignore_errors` bool

  Ruft den Inhalt auch dann ab, wenn ein Fehlerstatus vorliegt.

  Der Standardwert ist `false`.

### Beispiele

Beispiel #1 Abrufen einer Seite mit Übermittlung von POST-Daten

`<?php
$postdata = http_build_query(
[
'var1' => 'some content',
'var2' => 'doh',
]
);
$opts = [
'http' => [
'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);
?>`

Beispiel #2 Weiterleitungen ignorieren, aber Kopfzeilen und Inhalt abrufen

`<?php
$url = "http://www.example.org/header.php";
$opts = [
'http' => [
'method' => 'GET',
'max_redirects' => '0',
'ignore_errors' => '1',
]
];
$context = stream_context_create($opts);
$stream = fopen($url, 'r', false, $context);
// die Header-Informationen sowie die Metadaten über den Stream
var_dump(stream_get_meta_data($stream));
// die eigentlichen Daten von $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>`

### Anmerkungen

> Hinweis: Kontextoptionen für den zugrundeliegenden Socket-Stream
> Vom zugrundeliegenden Transport können zusätzliche Kontextoptionen unterstützt werden. Für `http://`-Streams, siehe Kontextoptionen für das Transportprotokoll `tcp://`. Für `https://`-Streams, siehe Kontextoptionen für das Transportprotokoll `ssl://`.

> Hinweis: HTTP-Statuszeile
> Wenn dieser Stream-Wrapper einer Weiterleitung (Redirect) folgt, ist der Inhalt von Index `0` in den von stream_get_meta_data() zurückgegebenen `wrapper_data` nicht unbedingt die HTTP-Statuszeile für diesen Inhalt.

>     array (
>       'wrapper_data' =>
>       array (
>         0 => 'HTTP/1.0 301 Moved Permanently',
>         1 => 'Cache-Control: no-cache',
>         2 => 'Connection: close',
>         3 => 'Location: http://example.com/foo.jpg',
>         4 => 'HTTP/1.1 200 OK',
>         ...

> Die erste Anfrage lieferte eine `301` (permanente Weiterleitung), sodass der Stream-Wrapper automatisch der Weiterleitung folgte, bei der er eine `200`-Antwort erhielt (index = `4`).

### Siehe auch

- http://
- Socket-Kontextoptionen
- SSL-Kontext-Optionen

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open