Чтобы перейти от написания скриптов к созданию полноценных сайтов, нужно изучить много новых понятий и инструментов, которые не относятся к языку программирования. Например, нужно знать, как работают операционные системы, как работать с сетями, регистраторами, хостингом и деплоем сайта.
На собеседованиях веб-программистам часто задают вопрос «Что происходит после того, как в адресной строке браузера набирается сайт www.google.com и нажимается Enter?». Обычно на этот вопрос хотят услышать ключевые понятия, связанные с веб-разработкой:
- Выполнение DNS-запроса для получения IP-адреса домена
- Соединение с веб-сервером, находящемся по этому адресу на порту 443 (или 80) по TCP
- Выполнение HTTP-запроса для получения содержимого сайта по указанному домену
- Получение ответа и рендеринг содержимого во вкладке браузера.
Каждый из этих пунктов подразумевает знание следующих тем:
- Протокол HTTP. Понятие виртуальных хостов. Желательно понимание принципов работы HTTPS
- Принципы работы DNS
- Знание TCP/IP. Понятия: порт, маска, подсети. Модель OSI. Сетевые сокеты
- Веб-сервер. Что это такое, как работает и зачем нужен
Подробный ответ на этот вопрос доступен здесь.
Также на Хекслете есть ответы на некоторые из перечисленных пунктов, но большую часть материала придется взять из сторонних источников. Большинство ответов на указанные темы можно получить в книгах по операционным системам. В наших рекомендованных книгах есть все необходимое.
Знание HTTP можно взять из соответствующего курса. Общее понимание DNS, хостинга, деплоя — из курса Введение в веб-разработку. Остальное есть в дополнительных ссылках.
Также рекомендуем посмотреть публичное собеседование, где поднимались эти вопросы.
В процессе разработки сайта нужно изучать фреймворки, микрофреймворки, роутинг, куки, сессии, безопасность, шаблонизацию и взаимодействие с базой данных. И даже после того, как вы научитесь создавать сайты, обучение нужно продолжать.
Чтобы сайт был доступен пользователям, его нужно развернуть на удаленном сервере. Этот процесс называется «деплой» — процесс разворачивания сайта на хостинге. При этом существует разный тип хостинга: IaaS (AWS), PaaS (Render), Shared Hosting (виртуальный хостинг), VPS/VDS. Также перед этим нужно настроить удаленную машину с помощью инструмента, например, Ansible, что тоже стоит изучить.
Данный курс посвящен разработке сайтов с использованием микрофреймворков. Темы, указанные выше, также включены в курс, но разбираются поверхностно. Поэтому рекомендуем выполнять задачи не только в среде Хекслета, но и локально, параллельно выкатывая код на сервис, подобный Render.
Дополнительные материалы
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.