Программирование для начинающих сайтов: Первые шаги в программировании веб-сайтов на стороне сервера — Изучение веб-разработки

Первые шаги в программировании веб-сайтов на стороне сервера — Изучение веб-разработки

В этом модуле, посвящённом программированию на стороне сервера, мы ответим на несколько фундаментальных вопросов о программировании серверной части: «что это такое?», «чем оно отличается от программирования клиентской части?» и «почему оно так полезно?». Затем последует обзор некоторых самых популярных веб-фреймворков для серверной части и руководство по выбору наиболее подходящего фреймворка для создания вашего первого сайта. Наконец, мы завершим этот модуль вводной статьёй о безопасности веб-сервера.

Для того, чтобы начать этот модуль, вам не нужно иметь никаких знаний о программировании серверной части или даже о любом виде программирования.

Вам нужно понимать «как работает веб». Мы рекомендуем вам сперва прочесть следующие темы:

  • Что такое веб-сервер
  • Какое программное обеспечение мне нужно для создания сайта?
  • Как загружать файлы на веб-сервер?

С этими базовыми знаниями вы будете готовы работать с модулями этого раздела.

Введение в серверную часть

Добро пожаловать на курс программирования серверной части MDN для начинающих! В этой первой статье мы посмотрим на программирование серверной части на высоком уровне, отвечая на вопросы такие как: «что это такое?», «чем оно отличается от программирования клиентской части?» и «почему это настолько востребовано?». После прочтения этой статьи вы будете понимать всю дополнительную мощь, доступную веб-сайтам посредством программирования на стороне сервера.

Обзор Клиент-Сервера

Теперь, когда вы познакомились с целью и потенциальными преимуществами программирования серверной части, мы собираемся узнать в подробностях, что случится, когда сервер получит «динамический запрос» от браузера. Так как большинство программ серверной части обрабатывает запросы и ответы практически одинаково, это поможет вам понять, что нужно делать при написании собственного кода.

Фреймворки серверной части

Последняя статья рассказывает о том, что нужно делать веб-приложению серверной стороны для ответа на запросы от веб-браузера. Мы покажем здесь, как веб-фреймворки могут упростить эти задачи и поможем вам подобрать подходящий фреймворк для вашего первого серверного веб-приложения.

Безопасность веб-сайта

Безопасность веб-сайта требует бдительности на всех этапах проектирования сайта и его использования. Эта вводная статья не сделает из вас гуру безопасности сайтов, но поможет узнать, какие первые важные шаги вы можете предпринять для повышения устойчивости вашего веб-приложения против наиболее распространённых угроз.

Этот «обзорный» модуль не содержит никакой аттестации, поскольку мы даже не прилагаем здесь для вас никакого кода. Мы действительно надеемся, что на текущем этапе у вас сформировалось чёткое понимание того, какие виды функциональности вы можете предоставить, используя программирование на стороне сервера, и вы уже приняли решение по поводу фреймворка, который вы будете использовать для создания вашего первого сайта.

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

Want to get more involved?

Learn how to contribute.

This page was last modified on by MDN contributors.

Что такое веб-сервер — Изучение веб-разработки

В этой статье мы узнаем, что из себя представляют веб-серверы, как они работают, и почему они так важны.

Необходимые знания:Вы должны уже знать, как работает Интернет и понимать разницу между страницей, сайтом, сервером и поисковой системой.
Цель:Вы узнаете, что такое веб-сервер и получите общее представление о том, как он работает.

Понятие «веб-сервер» может относиться как к аппаратной начинке, так и к программному обеспечению. Или даже к обеим частям, работающим совместно.

  1. С точки зрения «железа», «веб-сервер» — это компьютер, который хранит файлы сайта (HTML-документы, CSS-стили, JavaScript-файлы, картинки и другие) и доставляет их на устройство конечного пользователя (веб-браузер и т.
    д.). Он подключён к сети Интернет и может быть доступен через доменное имя, подобное mozilla.org.
  2. С точки зрения ПО, веб-сервер включает в себя несколько компонентов, которые контролируют доступ веб-пользователей к размещённым на сервере файлам, как минимум — это HTTP-сервер. HTTP-сервер — это часть ПО, которая понимает URL-адреса (веб-адреса) и HTTP (протокол, который ваш браузер использует для просмотра веб-страниц).

На самом базовом уровне, когда браузеру нужен файл, размещённый на веб-сервере, браузер запрашивает его через HTTP-протокол. Когда запрос достигает нужного веб-сервера («железо»), сервер HTTP (ПО) принимает запрос, находит запрашиваемый документ (если нет, то сообщает об ошибке 404) и отправляет обратно, также через HTTP.

Чтобы опубликовать веб-сайт, необходим либо статический, либо динамический веб-сервер.

Статический веб-сервер, или стек, состоит из компьютера («железо») с сервером HTTP (ПО). Мы называем это «статикой», потому что сервер посылает размещённые файлы в браузер «как есть».

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

Например, для получения итоговой страницы, которую вы просматриваете в браузере, сервер приложений может заполнить HTML-шаблон данными из базы данных. Такие сайты, как MDN или Википедия, состоят из тысяч веб-страниц, но они не являются реальными HTML документами — лишь несколько HTML-шаблонов и гигантские базы данных. Эта структура упрощает и ускоряет сопровождение веб-приложений и доставку контента.

Активное изучение пока не доступно. Пожалуйста, рассмотрите возможность внести свой вклад.

Чтобы загрузить веб-страницу, как мы уже говорили, ваш браузер отправляет запрос к веб-серверу, который приступает к поиску запрашиваемого файла в своём собственном пространстве памяти. Найдя файл, сервер считывает его, обрабатывает как ему это необходимо, и отсылает в браузер. Давайте рассмотрим эти шаги более подробно.

Хостинг файлов

Прежде всего, веб-сервер должен содержать файлы веб-сайта, а именно все HTML-документы и связанные с ними ресурсы, включая изображения, CSS-стили, JavaScript-файлы, шрифты и видео.

Технически, вы можете разместить все эти файлы на своём компьютере, но гораздо удобнее хранить их на выделенном веб-сервере, который:

  • всегда запущен и работает
  • всегда подключён к Интернету
  • имеет неизменный IP адрес (не все провайдеры предоставляют статический IP-адрес для домашнего подключения)
  • обслуживается третьей, сторонней компанией

По всем этим причинам поиск хорошего хостинг-провайдера является ключевой частью создания вашего сайта. Рассмотрите многочисленные предложения компаний и выберите то, что соответствует вашим потребностям и бюджету (предложения варьируются от бесплатных до тысяч долларов в месяц). Вы можете найти подробности в этой статье.

Как только вы решили проблему с хостингом, вам понадобится только загрузить свои файлы на ваш веб-сервер.

Связь по HTTP

Во-вторых, веб-сервер обеспечивает поддержку HTTP (англ. Hypertext T

ransfer Protocol — гипертекстовый транспортный протокол). Как следует из названия, HTTP указывает, как передавать гипертекст (т.е. связанные веб-документы) между двумя компьютерами.

Протокол представляет собой набор правил для связи между двумя компьютерами. HTTP является текстовым протоколом без сохранения состояния.

Текстовый

Все команды являются простым человекочитаемым текстом.

Не сохраняет состояние

Ни клиент, ни сервер не помнят о предыдущих соединениях. Например, опираясь только на HTTP, сервер не сможет вспомнить введённый вами пароль или на каком шаге транзакции вы находитесь. Для таких задач, вам потребуется сервер приложения. (Мы остановимся на этих технологиях в следующих статьях.)

HTTP задаёт строгие правила взаимодействия клиента и сервера. Мы рассмотрим сам протокол HTTP в технической статье немного позднее. Пока достаточно знать об этих правилах:

  • Исключительно клиенты могут производить HTTP-запросы, и только на сервера. Сервера способны только отвечать на HTTP-запросы клиента.
  • При запросе файла по HTTP, клиент должен сформировать файловый URL.
  • Веб-сервер должен ответить на каждый HTTP-запрос, по крайней мере сообщением об ошибке.

На веб-сервере HTTP-сервер отвечает за обработку входящих запросов и ответ на них.

  1. При получении запроса, HTTP-сервер сначала проверяет, существует ли ресурс по данному URL.
  2. Если это так, веб-сервер отправляет содержимое файла обратно в браузер. Если нет, сервер приложения генерирует необходимый ресурс.
  3. Если ничто из этого не возможно, веб-сервер возвращает сообщение об ошибке в браузер, чаще всего “404 Not Found”.
    (Это ошибка настолько распространена, что многие веб-дизайнеры тратят большое количество времени на разработку 404 страниц об ошибках.)

Грубо говоря, сервер может отдавать статическое или динамическое содержимое. «Статическое» означает «отдаётся как есть». Статические веб-сайты делаются проще всего, поэтому мы предлагаем вам сделать свой первый сайт статическим.

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

Возьмём для примера страницу, которую вы сейчас читаете. На веб-сервере, где она хостится, есть сервер приложения, который извлекает содержимое статьи из базы данных, форматирует его, добавляет в HTML-шаблоны и отправляет вам результат. В нашем случае, сервер приложения называется Kuma, написан он на языке программирования Python (используя фреймворк Django).

Команда Mozilla создала Kuma для конкретных нужд MDN, но есть множество подобных приложений, построенных совершенно на других технологиях.

Существует так много серверов приложений, что довольно трудно предложить какой-то один. Некоторые серверы приложений заточены под определённые категории веб-сайтов, такие как блоги, вики-страницы или интернет-магазины; другие, называемые CMSs (системы управления контентом), более универсальны. Если вы создаёте динамический сайт, потратьте немного времени на выбор инструмента, который соответствует вашим потребностям. Если вы не хотите изучать веб-программирование (хотя это увлекательно само по себе!), то вам не нужно создавать свой собственный сервер приложения. Это будет изобретением очередного велосипеда.

Теперь, когда вы познакомились с веб-серверами, вы можете:

  • прочитать насколько сложно делать что-либо в веб
  • узнать больше о разнообразии ПО, которое может пригодиться для создания веб-сайта
  • двигаться к практике: например, узнать как загружать файлы на веб-сервер.

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

Want to get more involved?

Learn how to contribute.

This page was last modified on by MDN contributors.

Форумы Codecademy

Форумы Codecademy

Загрузка

Форумы Codecademy
Категория Темы

Объявления штаб-квартиры

Здесь вы найдете последние обновления от команды Codecademy. Мы будем объявлять о таких вещах, как новые функции продукта, выпуски учебных программ и даже сбои в работе сайта.

23

Начиная

Впервые на форумах? Сориентируйтесь, получите инструменты и изучите правила, которые помогут сделать эти форумы полезным ресурсом в вашем учебном путешествии.

26

Получить помощь

Задайте вопросы, получите помощь с упражнением и пообщайтесь о своей курсовой работе Codecademy здесь. Щелкните, чтобы перейти к тематическим страницам для конкретного языка.

2943

События и вызовы

Посетите эту категорию, чтобы найти «проблемы с кодом»: головоломки и головоломки, предназначенные для проверки ваших навыков программирования вне курсов Codecademy.

94

Сообщество

Общайтесь с другими учащимися, читайте вопросы о карьере и истории успеха и находите возможности практиковать свои навыки.

2432

Проекты

Поделитесь своей работой и получите отзывы от сообщества. Обратная связь является жизненно важным компонентом для улучшения навыков программирования, и здесь приветствуются все уровни способностей, так что не стесняйтесь!

1513

Часто задаваемые вопросы

Эта категория заблокирована, поэтому только администраторы могут размещать в ней новые темы. Он содержит часто задаваемые вопросы по многим из наших самых популярных упражнений. Чтобы задать вопросы, используйте нашу категорию #get-help.

150

Бета-тестеры

Добро пожаловать всем, кто заинтересован в бета-тестировании!

23

Цены | Codecademy

  • Начать обучение

    Начать обучение

    • Базовый доступ к бесплатным курсам

      Mini Info Outline Icon

      Доступ к базовым материалам для курсов по таким популярным предметам, как HTML и JavaScript. Викторины и проекты, не включенные в Basic.

      Basic

      Доступно в рамках Basic Доступно в Basic

      Plus

      Доступно в PlusДоступно в Plus

      Pro

      Доступно в Pro Доступно в Pro
    • Поддержка сообщества

      Mini Info Outline Icon

      Общайтесь с другими учащимися, получайте ответы на свои вопросы и посещайте развлечения события.

      Basic

      Доступно для BasicДоступно для Basic

      Plus

      Доступно для PlusДоступно для Plus

      Pro

      Доступно для ProДоступно для Pro
    • Учебные ресурсы

      Mini Info Outline Icon

      Шпаргалки, документы, видео и многое другое для помощи в обучении

    • Попрактикуйтесь в нашем мобильном приложении

      Mini Info Outline Icon

      Загрузите наше мобильное приложение для iOS и Android для дополнительной практики и обзора.

      BasicLimitedLimited в Basic

      LimitedLimited для Basic

      PlusUnlimitedUnlimited для Plus

      UnlimitedUnlimited для Plus

      ProUnlimitedUnlimited для Pro

      UnlimitedUnlimited для Pro

    • Mini Icon

      Info

      Все курсы ограниченный доступ к более чем 300 автономным курсам, включая все в Курсы Basic плюс популярные курсы Pro, такие как Learn Python 3

      BasicНедоступно для Basic-

      Недоступно для Basic-

      Plus

      Доступно в PlusДоступно в Plus

      Pro

      Доступно в ProДоступно в Pro
    • Тесты

      Mini Info Outline Icon

      Тесты с автоматической оценкой и немедленная обратная связь помогут вам укрепить свои навыки в процессе обучения.

      BasicНедоступно в Basic-

      Недоступно в Basic-

      Plus

      Доступно в PlusДоступно в Plus

      Pro

      Доступно в ProДоступно в Pro
    • Индивидуальная практика

      Иконка Mini Info Outline

      Мы используем ИИ, чтобы выяснить, что вам нужно практиковать и когда.

      BasicНедоступно в Basic-

      Недоступно в Basic-

      Plus

      Доступно в PlusДоступно в Plus

      Pro

      Доступно в ProДоступно в Pro
  • Развивай свои навыки 1 017

    • Направления навыков

      Значок Mini Info Outline

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

      BasicНедоступно в Basic-

      Недоступно в Basic-

      Plus

      Доступно в PlusДоступно в Plus

      Pro

      Доступно в ProДоступно в Pro
    • Реальные проекты

      Mini Info Outline Icon

      Доступ к нашей полной библиотеке практики и портфолио проектов. Применяйте свои навыки и создавайте портфолио.

      Basic Недоступно в Basic-

      Недоступно в Basic-

      Plus

      Доступно в PlusДоступно в Plus

      Pro

      Доступно в ProДоступно в Pro
    • Сертификаты об окончании

      Mini Info Outline Icon

      Получите сертификат о курсах или направлениях, которые вы закончили, чтобы поделиться ими со своей сетью в качестве доказательства завершения.

      Basic Недоступно в Basic-

      Недоступно в Basic-

      Plus

      Доступно в PlusДоступно в Plus

      Pro

      Доступно в Pro Доступно в Pro
  • Land a job

    0016 Устроиться на работу

    • Карьерный рост

      Мини-иконка Info Outline

      Кураторские пути обучения дают вам знания и опыт, необходимые для получения работы в сфере технологий, например специалиста по обработке и анализу данных или инженера.

      Basic Недоступно для Basic-

      Недоступно для Basic-

      PlusНедоступно для Plus-

      Недоступно для Plus-

      Pro

      Доступно для ProДоступно для Pro
    • New Сертификация

      Professional30003 Иконка Mini Info Outline

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

      Basic Недоступно в Basic-

      Недоступно в Basic-

      Plus Недоступно в Plus-

      Недоступно в Plus-

      Pro

      Доступно в Pro Доступно в Pro
    • Техническая информация по подготовке к собеседованию

      Mini курсы подготовки к собеседованию, практические вопросы, задачи по написанию кода и многое другое

      Basic Недоступно для Basic-

      Недоступно для Basic-

      PlusНедоступно для Plus-

      Недоступно для Plus-

      Pro

      Доступно для ProДоступно для Pro
    • New

      Icon Care 3 9013 Services 9013

      Получите персонализированные списки вакансий и свяжитесь с работодателями, которые ищут технические таланты.

      Basic Недоступно в Basic-

      Недоступно в Basic-

      Plus Недоступно в Plus-

      Недоступно в Plus-

      Pro

      Доступно в ProДоступно в Pro
    • Кодовые задачи

      Mini Info Outline Icon

      Проверьте свои знания, решая задачи кодирования на основе реальных технических интервью.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *