原始HTTP - 在GET行中使用完整URL?

时间:2013-05-11 20:13:48

标签: php http

<?php

error_reporting(E_ALL);
ini_set('display_errors', '1');

header('content-type: text/plain');

$host='www.google.com';

$fp = fsockopen($host, 80);

$out = "GET http://www.google.com/ HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);

while (!feof($fp)) {
    echo fgets($fp, 128);
}

?>

这只是有效。

是否符合标准?

2 个答案:

答案 0 :(得分:2)

是的。

来自the specification

Request-Line = Method SP Request-URI SP HTTP-Version CRLF

...和...

Request-URI = "*" | absoluteURI | abs_path | authority

答案 1 :(得分:1)

是的,根据5.1.2 of RFC 2616

  

示例请求行将是:

  GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1
     

为了允许在未来版本的HTTP中转换到absoluteURIs,所有HTTP / 1.1服务器必须接受请求中的absoluteURI表单,即使HTTP / 1.1客户端只会在代理请求中生成它们。