HTTP 헤더는 일반적으로 environment variables으로 CGI 프로그램에 전달됩니다. 그러나 항상 그런 것은 아닙니다.
일반적으로 CGI 프로그램에서 헤더 값에 액세스하는 방법은 웹 서버가 헤더를 처리하는 방법에 따라 다릅니다. 헤더가 수정되거나 제거 될 수 있습니다.
가
fastcgi_param RANGE $http_range;
환경 변수 RANGE
호출 될 가능성이 있지만,이 경우, 그것은 궁극적으로 의존한다 : 예를 들어, Nginx의 구성에서, 지정하는 FastCGI 파라미터 통해 range
헤더의 값을 전달하는 것이 가능하다 프로토콜 드라이버 구현시. 헤더는 서버 구성으로 인해 삭제 될 수 있습니다. 예를 들어, 다음 아파치 2 구성은 5 개 이상의 범위가되는 범위 헤더 상품 : 따라서
SetEnvIf Range (,.*?){5,} bad-range=1
RequestHeader unset Range env=bad-range
을는 환경 변수의 이름을 예측하는 것은 일반적으로 불가능하며 사용할 것까지도 여부 CGI 프로그램.
그러나 이 인 경우 환경 변수를 통해 사용할 수 있습니다. env
명령의 출력을 검토하여 정확한 이름을 찾을 수 있습니다.
다음은 아파치의 기본 설정으로 작동합니다 :
#!/bin/bash -
printf '%s\n\n' 'Content-type: text/html'
printf '>>> %s <<< \n' "$HTTP_RANGE"
exit 0
샘플 출력
'http://apache-test.local/cgi-bin/test.sh?sdfdsf'
HTTP/1.1 200 OK
Date: Thu, 10 Nov 2016 08:17:23 GMT
Server: Apache
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html
>>> bytes=1-8 <<<