2016-12-28 2 views
0

Я написал свой собственный DNS-сервер, и я разрешаю адрес foo.bar до 127.0.0.1. В этом же файле я также запускаю HTTP-сервер, используя BaseHTTPServer из python с помощью специального обработчика запросов. Текущий запрос запроса, сделанный из браузера, правильно решает адрес на локальный хост и загружает index.html, как и должно быть. Что меня смущает тот факт, что запрос GET только показывает:Почему GET-запросы не наследуют URL-адрес и используют/absolute root вместо

127.0.0.1 - - [27/Dec/2016 16:56:23] "GET/HTTP/1.1" 200 

Который согласно RFC2616-sec5:

the absolute path cannot be empty; if none is present in the original URI, it MUST be given as "/" (the server root). 

Это означает, в какой-то момент foo.bar становится сводится к /, даже если я тип http://foo.bar или http://www.foo.bar.

Как передать полный URL-адрес в запрос GET? Я также хотел бы знать, почему предполагается, что ссылка не является абсолютным путем.

ответ

1

Метод дает только строку пути и запроса URL. Если вы хотите, чтобы указанный хост был указан, вы должны получить его из заголовка Host, если он доступен.

+0

спасибо. Есть ли где-нибудь, что я могу прочитать дальше по этому поведению? –

+0

https://tools.ietf.org/html/rfc7230 –