HTTP context options

HTTP 컨텍스트 옵션 — HTTP 컨텍스트 옵션 목록


설명

http://https:// 전송에 대한 컨텍스트 옵션.


옵션

    method string
    GET, POST 또는 원격 서버에서 지원하는 기타 HTTP 방법.
    기본값은 GET입니다.
    header array or string
    요청하는 동안 보낼 추가 헤더입니다. 이 옵션의 값은 위치: Location: redirects 따르는 경우에도 다른 값(예: User-agent:, Host:Authentication:)을 재정의합니다. 따라서 follow_location이 활성화된 경우 Host: 헤더를 설정하지 않는 것이 좋습니다.
    user_agent string
    User-Agent: 헤더와 함께 보낼 값입니다. 이 값은 위의 header 컨텍스트 옵션에 user-agent가 지정되지 않은 경우에만 사용됩니다.
    기본적으로 user_agent php.ini 설정이 사용됩니다.
    content string
    헤더 다음에 보낼 추가 데이터입니다. 일반적으로 POST 또는 PUT 요청과 함께 사용됩니다.
    proxy string
    프록시 서버의 주소를 지정하는 URI입니다. (예: tcp://proxy.example.com:5100).
    request_fulluribool
    true로 설정하면 요청을 구성할 때 전체 URI가 사용됩니다. (예: GET http://www.example.com/path/to/file.html HTTP/1.0). 이것은 비표준 요청 형식이지만 일부 프록시 서버에서는 이를 요구합니다.
    기본값은 false입니다.
    follow_location int
    Location 헤더 리디렉션을 따릅니다. 비활성화하려면 0으로 설정합니다.
    기본값은 1입니다.
    max_redirects int
    팔로우할 최대 리디렉션 수입니다. 값이 1 이하이면 리디렉션이 따르지 않음을 의미합니다.
    기본값은 20입니다.
    protocol_version float
    HTTP 프로토콜 버전.
    PHP 8.0.0부터 기본값은 1.1입니다. 해당 버전 이전에는 기본값이 1.0이었습니다.
    timeout float
    부동 소수점으로 지정되는 읽기 제한 시간(초)입니다(예: 10.5).
    기본적으로 default_socket_timeout php.ini 설정이 사용됩니다.
    ignore_errors bool
    실패 상태 코드에서도 콘텐츠를 가져옵니다.
    기본값은 false입니다.

Examples

예제 #1 페이지를 가져오고 POST 데이터를 보냅니다.

                  
<?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);

?>
                  
                

예제 #2 리디렉션을 무시하고 헤더와 콘텐츠를 가져옵니다.

                  
<?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);

// header information as well as meta data
// about the stream
var_dump(stream_get_meta_data($stream));

// actual data at $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>
                  
                

노트

참고: 기본 소켓 스트림 컨텍스트 옵션

기본 전송에서 추가 컨텍스트 옵션을 지원할 수 있습니다. http:// 스트림의 경우 tcp:// 전송에 대한 컨텍스트 옵션을 참조하십시오. https:// 스트림의 경우 ssl:// 전송에 대한 컨텍스트 옵션을 참조하십시오.

참고: HTTP 상태 표시줄

이 스트림 래퍼가 리디렉션을 따르는 경우 stream_get_meta_data()가 반환하는 wrapper_data에는 인덱스 0의 콘텐츠 데이터에 실제로 적용되는 HTTP 상태 줄이 반드시 포함되어 있지 않을 수 있습니다.

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',
    ...
                  

첫 번째 요청은 301(영구 리디렉션)을 반환했으므로 스트림 래퍼는 자동으로 리디렉션을 따라 200 응답(색인 = 4)을 받았습니다.


기타