Как работают веб-серверы?

Я разработчик .NET, и я работаю на С# почти 3,5 года. Я хочу понять, как работает веб-сервер, и я не имею в виду обзор на 65 000 футов. Я хочу понять внутреннюю работу веб-сервера.

Каковы полезные ресурсы, чтобы узнать, как работает веб-сервер?

Ответы

Ответ 1

Если вам действительно нужны гайки и болты о том, как веб-сервер должен работать, прочитайте HTTP Spec.

Хорошим инструментом будет fiddler. Использование этого браузера инструментов в сети и проверка связи между браузером и серверами. В сочетании с чтением спецификации HTTP это даст вам некоторое представление о том, что действительно происходит в сети.

Если вы хотите пойти дальше, вам нужно решить, какой веб-сервер вам лучше понять лучше. Например, если вы хотите понять IIS6/7, то блог Дэвида Ванга - хорошее место для поиска подробных сведений.

Ответ 2

Веб-серверы очень просты в реализации, и есть несколько руководств по их созданию.

Вот такой учебник для С#: http://www.codeguru.com/csharp/.net/net_general/article.php/c4603, этот учебник хорош, поскольку он реализует сервер до исходных сокетов и HTTP-заголовка прохождение, поэтому вы много узнаете о HTTP Spec. К сожалению, некоторые учебники и библиотеки абстрагируют это.

Реализация самостоятельно позволяет затронуть многие темы:

  • Программирование сокетов
  • Протокол HTTP (GET/POST)
  • Многопоточность

И как только вы создадите базовый веб-сервер, вы сможете расширить свой сервер и протокол в свою собственную веб-инфраструктуру. должен сделать действительно классный любимый проект.

Я сделал это только для Java, С++ и Python.

Ответ 3

Я только что столкнулся с этим вопросом, когда искал что-то еще, но если вы хотите понять веб-сервер, я недавно начал работу над отдельными блогами, используя веб-сервер с открытым исходным кодом.

Он не научит вас точно, как работает IIS, но базовое общение будет одинаковым и, следовательно, станет хорошим началом. Вот ссылки для вас, чтобы проверить, включая ссылку на проект с открытым исходным кодом:

Ответ 4

IIS и Apache вероятно, являются двумя наиболее распространенными реализациями веб-сервера, хотя я не уверен, что вы действительно ищете здесь. Вы хотите знать, как каждый из них работает, как его настроить, или как сворачивать свои собственные?