Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как работают виртуальные хосты?
 
 автор: demonow   (12.12.2011 в 19:27)   письмо автору
 
 

Народ помогите понять как работает апачи при созданых виртуальных хостах.Например есть 2 вирхоста site1.ru site2.ru(namebased) как поступает браузер при запрос.Лезет в hosts и смотрит какое ip совпадает именами хостов.В инете есть куча способов создание виртуальніх хостов, но никто почему-то не обьясняет как все это происходит внутри, что делает браузер? Обьясните поэтапоно хоть вкратце ато хосты создал а как они работают не знаю.

  Ответить  
 
 автор: cheops   (12.12.2011 в 19:52)   письмо автору
 
   для: demonow   (12.12.2011 в 19:27)
 

Когда вы создаете виртуальные хосты site1.ru и site2.ru на сервере они привязываются к одному IP-адресу, где расположен этот Web-сервер. Т.е. клиент когда хочет получить доступ к site1.ru или к site2.ru - шлет запросы в одном направлении. Web-серверу нужно как-то отличать, кому пришел запрос site1.ru или site2.ru. Поэтому протокол HTTP предписывает каждому клиенту отправлять HTTP-заголовок с именем хоста, т.е. либо
Host: site1.ru
либо
Host: site2.ru
ориентируясь на этот HTTP-заголовок, сервер и дергает тот или иной виртуальный хост. Поэтому, когда ваш браузер хочет загрузить данную страницу, он отправляет на IP-адрес, закрепленный за доменом softtime.ru следующие заголовки
GET /forum/read.php?id_forum=5&id_theme=83827&page=1 HTTP/1.1\r\n
Host: softtime.ru\r\n
Connection: Close\r\n\r\n
Ну плюс, конечно UserAgent, Cookie, Referer и еще что-нибудь, снифером точно нужно смотреть. Однако HTTP-заголовок Host будет всегда, иначе сервер просто не поймет к кому вы обращаетесь (тут рядом еще есть сайты).

  Ответить  
 
 автор: demonow   (12.12.2011 в 19:58)   письмо автору
 
   для: cheops   (12.12.2011 в 19:52)
 

Все, понял спасибо.
Еще вопросик, а что в директиве <Virtualhost *.*> означают звездочки?

  Ответить  
 
 автор: cheops   (12.12.2011 в 20:19)   письмо автору
 
   для: demonow   (12.12.2011 в 19:58)
 

Только там двоеточие, а не точка, но вопрос понятен. Первая *, это IP-адрес, вторая - это порт, т.е. вместо них можно было бы написать
<Virtualhost 127.0.0.1:80>
Вообще лучше все и писать явно, однако иногда Web-серверу требуется принимать запросы на разные порты, например 80, 83 или 8080, и IP-адресов за ним может быть закреплено несколько. Вот тогда эти звездочки и пригождаются - они эквиваленты фразе "да принимай чего хочешь и от откуда хочешь".

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования