2012-02-28 2 views
2

Я не могу быть единственным человеком, который когда-либо задумывался об этом, но я не мог найти ответ на этот вопрос в другом месте на сайте. Я успешно запросил определенные файлы с сайтов, отправив HTTP-запросы (в ruby ​​с сокетами). Однако я не знаю, как узнать, в каком файле находится домашняя страница сайта. Я думаю, этот вопрос достаточно ясно, но на всякий случай:HTTP-протокол: как определить, где находится домашняя страница сайта?

#!/usr/bin/ruby 

require 'socket' 

s = TCPSocket.new("www.example.edu", 80) 
s.print("GET /index.html HTTP/1.0\r\n\r\n") 

while (t = s.recv(50)) 
     print t 
end 

exit 0 

Вот что делает работу, но то, что я хотел бы сделать, это получить домашнюю, не зная его имя файла заранее. Кто-нибудь знает? Заранее спасибо!

ответ

3

Он работает наоборот: вы запрашиваете только / (т.е. GET/HTTP/1.1), а затем веб-сервер решает для поиска index.html. Или любой другой документ/сценарий/независимо от того, что было настроено.

Это часто бывает index.html, но это не обязательно так. Часто это будет index.php или аналогичный.

Моя конфигурация Apache по умолчанию говорит:

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm 

я мог бы поставить что-нибудь там.

+0

Ничего себе, спасибо. Это намного проще, чем я думал. – timmmay

Смежные вопросы