Как браузер / сервер работают вместе для отображения HTML-страницы? - PullRequest
3 голосов
/ 05 ноября 2010

Я часто получаю этот вопрос = /

Но я знаю только, как ответить на очень высокий уровень.

С той минуты, когда пользователь вводит URL-адрес и нажимает клавишу ввода, что происходит на стороне клиента и сервера и как работают запросы / ответы? Как сервер взаимодействует с CGI / интерпретаторами?

Было бы также полезно, если бы вы могли направить меня по URL-адресу, содержащему эту информацию подробно, или если вы можете ответить на него.

Когда я описываю это людям, я всегда чувствую, что они ищут детали, и я не даю достаточно деталей.

Спасибо!

Ответы [ 3 ]

3 голосов
/ 05 ноября 2010
  1. Клиент инициирует связь (обычно HTTP-запрос GET)
  2. Сервер получает REQUEST-HEADER и анализирует URL-адрес, содержащийся внутри.
  3. Сервер выполняет поиск, чтобы определить, совпадает ли какой-либо URL-адрес локально в папке жесткого диска. Если веб-сервер обрабатывает виртуальные серверы, такие как Microsoft IIS, он определяет папку для поиска после получения части «www.domain.com» из заголовка REQUEST.
  4. Если веб-документ (файл HTML) найден, то Сервер отправляет его обратно как RESPONSE + код состояния HTTP (например, 200, говорящее: найдено, этот запрос прошел успешно, где 404 означает «не нашел этот файл»)
  5. Клиент (браузер) получает RESPONSE и теперь может отображать его так, как хочет. Если он содержит механизм рендеринга, он будет искать шаблоны (тэги HTML или любой другой язык) и затем отображать их как таковые.

Это также называется «без сохранения состояния», так как сервер закрывает связь с клиентом после того, как клиент получил все из потока ответов.

Следовательно, сервер не может знать, подключен ли клиент или нет, и не возвращается ли он позже. Многие серверы предоставляют объект сеанса, используя файлы cookie или аналогичные, для отслеживания того же клиента, который отправляет следующий запрос, и, если да, допускают более «интеллектуальные» ответы сервера - такие как поиск, транзакции и входы в систему.

1 голос
/ 05 ноября 2010

Клиент отправляет заголовки запроса на сервер (находит IP через DNS).

Серверное программное обеспечение (например, Apache) вызывает CGI, если это необходимо, и подготавливает ответ.

Этоотправляет заголовки и содержимое.

1 голос
/ 05 ноября 2010
...