HTTP context options
HTTP 컨텍스트 옵션 — HTTP 컨텍스트 옵션 목록
설명
http://
및 https://
전송에 대한 컨텍스트 옵션.
옵션
method
stringGET
,POST
또는 원격 서버에서 지원하는 기타 HTTP 방법.
기본값은GET
입니다.header
array or string- 요청하는 동안 보낼 추가 헤더입니다. 이 옵션의 값은 위치:
Location:
redirects 따르는 경우에도 다른 값(예:User-agent:
,Host:
및Authentication:
)을 재정의합니다. 따라서follow_location
이 활성화된 경우Host:
헤더를 설정하지 않는 것이 좋습니다. user_agent
stringUser-Agent:
헤더와 함께 보낼 값입니다. 이 값은 위의header
컨텍스트 옵션에 user-agent가 지정되지 않은 경우에만 사용됩니다.
기본적으로 user_agent php.ini 설정이 사용됩니다.content
string- 헤더 다음에 보낼 추가 데이터입니다. 일반적으로 POST 또는 PUT 요청과 함께 사용됩니다.
proxy
string- 프록시 서버의 주소를 지정하는 URI입니다. (예:
tcp://proxy.example.com:5100
). request_fulluri
booltrue
로 설정하면 요청을 구성할 때 전체 URI가 사용됩니다. (예:GET http://www.example.com/path/to/file.html HTTP/1.0
). 이것은 비표준 요청 형식이지만 일부 프록시 서버에서는 이를 요구합니다.
기본값은false
입니다.follow_location
intLocation
헤더 리디렉션을 따릅니다. 비활성화하려면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
)을 받았습니다.