Что такое веб-сервер — Изучение веб-разработки
В этой статье мы узнаем, что из себя представляют веб-серверы, как они работают, и почему они так важны.
Необходимые знания: | Вы должны уже знать, как работает Интернет и понимать разницу между страницей, сайтом, сервером и поисковой системой. |
---|---|
Цель: | Вы узнаете, что такое веб-сервер и получите общее представление о том, как он работает. |
Понятие «веб-сервер» может относиться как к аппаратной начинке, так и к программному обеспечению. Или даже к обеим частям, работающим совместно.
- С точки зрения «железа», «веб-сервер» — это компьютер, который хранит файлы сайта (HTML-документы, CSS-стили, JavaScript-файлы, картинки и другие) и доставляет их на устройство конечного пользователя (веб-браузер и т.д.). Он подключён к сети Интернет и может быть доступен через доменное имя, подобное
mozilla.org
.
На самом базовом уровне, когда браузеру нужен файл, размещённый на веб-сервере, браузер запрашивает его через HTTP-протокол. Когда запрос достигает нужного веб-сервера («железо»), сервер HTTP (ПО) принимает запрос, находит запрашиваемый документ (если нет, то сообщает об ошибке 404) и отправляет обратно, также через HTTP.
Чтобы опубликовать веб-сайт, необходим либо статический, либо динамический веб-сервер.
Статический веб-сервер, или стек, состоит из компьютера («железо») с сервером HTTP (ПО). Мы называем это «статикой», потому что сервер посылает размещённые файлы в браузер «как есть».
Динамический веб-сервер состоит из статического веб-сервера и дополнительного программного обеспечения, чаще всего сервера приложения и базы данных. Мы называем его «динамическим», потому что сервер приложений изменяет исходные файлы перед отправкой в ваш браузер по HTTP.
Например, для получения итоговой страницы, которую вы просматриваете в браузере, сервер приложений может заполнить HTML-шаблон данными из базы данных. Такие сайты, как MDN или Википедия, состоят из тысяч веб-страниц, но они не являются реальными HTML документами — лишь несколько HTML-шаблонов и гигантские базы данных. Эта структура упрощает и ускоряет сопровождение веб-приложений и доставку контента.
Активное изучение пока не доступно. Пожалуйста, рассмотрите возможность внести свой вклад.
Чтобы загрузить веб-страницу, как мы уже говорили, ваш браузер отправляет запрос к веб-серверу, который приступает к поиску запрашиваемого файла в своём собственном пространстве памяти. Найдя файл, сервер считывает его, обрабатывает как ему это необходимо, и отсылает в браузер. Давайте рассмотрим эти шаги более подробно.
Хостинг файлов
Прежде всего, веб-сервер должен содержать файлы веб-сайта, а именно все HTML-документы и связанные с ними ресурсы, включая изображения, CSS-стили, JavaScript-файлы, шрифты и видео.
Технически, вы можете разместить все эти файлы на своём компьютере, но гораздо удобнее хранить их на выделенном веб-сервере, который:
- всегда запущен и работает
- всегда подключён к Интернету
- имеет неизменный IP адрес (не все провайдеры предоставляют статический IP-адрес для домашнего подключения)
- обслуживается третьей, сторонней компанией
По всем этим причинам поиск хорошего хостинг-провайдера является ключевой частью создания вашего сайта. Рассмотрите многочисленные предложения компаний и выберите то, что соответствует вашим потребностям и бюджету (предложения варьируются от бесплатных до тысяч долларов в месяц). Вы можете найти подробности в этой статье.
Как только вы решили проблему с хостингом, вам понадобится только загрузить свои файлы на ваш веб-сервер.
Связь по HTTP
Во-вторых, веб-сервер обеспечивает поддержку HTTP (англ. Hypertext Transfer
Протокол представляет собой набор правил для связи между двумя компьютерами. HTTP является текстовым протоколом без сохранения состояния.
- Текстовый
Все команды являются простым человекочитаемым текстом.
- Не сохраняет состояние
Ни клиент, ни сервер не помнят о предыдущих соединениях. Например, опираясь только на HTTP, сервер не сможет вспомнить введённый вами пароль или на каком шаге транзакции вы находитесь. Для таких задач, вам потребуется сервер приложения. (Мы остановимся на этих технологиях в следующих статьях.)
HTTP задаёт строгие правила взаимодействия клиента и сервера. Мы рассмотрим сам протокол HTTP в технической статье немного позднее. Пока достаточно знать об этих правилах:
- Исключительно клиенты могут производить HTTP-запросы, и только на сервера.
- При запросе файла по HTTP, клиент должен сформировать файловый URL.
- Веб-сервер должен ответить на каждый HTTP-запрос, по крайней мере сообщением об ошибке.
На веб-сервере HTTP-сервер отвечает за обработку входящих запросов и ответ на них.
- При получении запроса, HTTP-сервер сначала проверяет, существует ли ресурс по данному URL.
- Если это так, веб-сервер отправляет содержимое файла обратно в браузер. Если нет, сервер приложения генерирует необходимый ресурс.
- Если ничто из этого не возможно, веб-сервер возвращает сообщение об ошибке в браузер, чаще всего “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.
Как загрузить файлы на веб-сервер — Изучение веб-разработки
Данная статья покажет, как можно опубликовать сайт в Интернет с помощью инструментов передачи файлов(file transfer tools).
Необходимые знания: | Вы должны знать что такое веб-сервер и как работают доменные имена. Также вы должны знать, как установить базовую среду и как написать простую веб-страницу. |
---|---|
Цель: | Научиться передавать файлы на сервер используя различные доступные инструменты передачи файлов(file transfer tools). |
Если вы создали простую веб-страницу (для примера смотрите Основы HTML), вы, вероятно, захотите отобразить её онлайн, на веб-сервере. В данной статье мы обсудим как сделать это, используя различные доступные настройки, такие как SFTP клиенты, RSync и GitHub.
Существуют различные варианты SFTP клиентов. В нашем примере мы будем использовать FileZilla, тк он бесплатен и подходит для Windows, macOS и Linux. Чтобы установить менеджер перейдите на страницу загрузки FileZilla downloads page, нажмите на кнопку загрузки, затем установите пакет из установочного файла обычным способом.
Примечание: Конечно, есть много других вариантов. Смотрите Publishing tools для других способов.
Откройте приложение FileZilla; вы должны увидеть что-то вроде этого:
Вход в систему
В этом примере мы предположим, что наш хостинг-провайдер (сервис, на котором находится наш HTTP веб сервер) является фиктивной компанией «Example Hosting Provider», чьи URL адреса выглядят следующим образом: mypersonalwebsite.examplehostingprovider.net
.
Сейчас мы создали аккаунт и получили от хостинг-провайдера следующую информацию:
Поздравляем с созданием аккаунта на сервисе «Example Hosting Provider».
Ваш аккаунт:
demozilla
Ваш сайт доступен по адресу:
demozilla.examplehostingprovider.net
Для загрузки файлов на этот аккаунт, пожалуйста, подключитесь через SFTP с использованием следующих учётных данных:
- SFTP сервер:
sftp://demozilla. examplehostingprovider.net
- Имя пользователя:
demozilla
- Пароль:
quickbrownfox
- Порт:
5548
- Для публикации в интернет, поместите ваши файлы в папку
Public/htdocs
.
Давайте сначала посмотрим на http://demozilla.examplehostingprovider.net/
— как вы можете видеть, то здесь пока ничего нет:
Примечание: В зависимости от вашего хостинг-провайдера, когда вы впервые заходите на свой веб-адрес, большую часть времени вы будете видеть страницу, на которой написано что-то вроде этого: “This website is hosted by [Hosting Service].”
Чтобы подключить SFTP клиент к удалённому серверу, выполните следующие действия:
- Выберите File > Site Manager… в главном меню.
- В окне Site Manager, нажмите кнопку New Site, затем введите название сайта как demozilla в предоставленном месте.
- Укажите SFTP-сервер вашего хоста в предоставленном поле: Host.
- В раскрывающемся списке Logon Type: выберите Normal, затем введите предоставленные имя пользователя и пароль в соответствующие поля.
- Введите правильный порт и другую информацию.
Ваше окно должно выглядеть как показано ниже:
Теперь нажмите Connect для подключения к SFTP-серверу.
Примечание: Убедитесь, что ваш хостинг-провайдер предлагает SFTP (безопасный FTP) подключение к вашему хостинговому пространству. FTP по своей сути небезопасен, и вам не следует его использовать.
Здесь и там: локальный и удалённый просмотр
После подключения ваш экран должен выглядеть примерно так (мы подключились к нашему собственному примеру, чтобы дать вам представление):
Давайте посмотрим, что вы видите:
- По центру левой панели вы можете видеть локальные файлы. Перейдите в каталог, в котором вы храните свой веб-сайт (например,
mdn
). - По центру правой панели вы увидеть удалённые файлы. Мы вошли в наш удалённый корень FTP (в данном случае:
users/demozilla
) - Вы можете пока игнорировать нижнюю и верхнюю панели. Соответственно, это журнал сообщений, показывающий состояние соединения между вашим компьютером и SFTP-сервером, и журнал в реальном времени каждого взаимодействия между вашим SFTP-клиентом и сервером.
Загрузка на сервер
Наш пример инструкций для хостинга указывает нам следующее: «Чтобы опубликовать в Интернете, поместите свои файлы в каталог: Public/htdocs
.» Вам нужно перейти в указанный каталог на правой панели. Этот каталог фактически является корнем вашего веб-сайта, где находятся ваши index.html
, откуда ваши файл и другие активы будут отправлены.
После того, как вы нашли правильный удалённый каталог для размещения файлов, чтобы загрузить файлы на сервер, вам необходимо переместить их с левой панели на правую.
Как узнать, что они online?
Пока все хорошо, но действительно ли файлы в сети? Вы можете перепроверить, перейдя на ваш сайт (например, http://demozilla. examplehostingprovider.net/
) в вашем браузере:
И вуаля! Наш сайт работает!
Rsync (en-US) is a local-to-remote file synchronizing tool, which is generally available on most Unix-based systems (like macOS and Linux), but Windows versions exist too.
It is seen as a more advanced tool than SFTP, beause by default it is used on the command line. A basic command looks like so:
rsync [-options] SOURCE [email protected]:DESTINATION
-options
is a dash followed by a one or more letters, for example-v
for verbose error messages, and-b
to make backups. You can see the full list at the rsync man page (search for «Options summary»).SOURCE
is the path to the local file or directory that you want to copy files over from.user@
is the credentials of the user on the remote server you want to copy files over to.x.x.x.x
is the IP address of the remote server.DESTINATION
is the path to the location you want to copy your directory or files to on the remote server.
You’d need to get such details from your hosting provider.
For more information and further eamples, see How to Use Rsync to Copy/Sync Files Between Servers.
Of course, it is a good idea to use a secure connection, like with FTP. In the case of Rsync, you specify SSH details to make the connection over SSH, using the -e
option. For example:
rsync [-options] -e "ssh [SSH DETAILS GO HERE]" SOURCE [email protected]:DESTINATION
You can find more details of what is needed at How To Copy Files With Rsync Over SSH.
Rsync GUI tools
As with other command line tools, GUI tools also exist for Rsync, for those who are not as comfortable with using the command line. Acrosync is one such tool, and it is available for Windows and macOS.
Again, you would have to get the connection credentials from your hosting provider, but this way you’d have a GUI to enter them in.
GitHub allows you to publish websites via GitHub pages (gh-pages).
We’ve covered the basics of using this in the Publishing your website article from our Getting started with the Web guide, so we aren’t going to repeat it all here.
However, it is worth knowing that you can also host a website on GitHub, but use a custom domain with it. See Using a custom domain with GitHub Pages for a detailed guide.
The FTP protocol is one well-known method for publishing a website, but not the only one. Here are a few other possibilities:
- Web interfaces. An HTML interface acting as front-end for a remote file upload service. Provided by your hosting service.
- WebDAV (en-US). An extension of the HTTP protocol to allow more advanced file management.
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.
Веб-разработка
❮ Главная Следующий ❯
Чтобы стать веб-разработчиком, начните с предметов ниже,
в следующем порядке:
HTML
1. Создайте свою первую веб-страницу
Первое, что вам нужно выучить, это HTML, который является стандартным языком разметки для создания веб-страниц.
Изучение HTML
CSS
2. Стиль веб-страницы
Следующим шагом является изучение CSS, чтобы установить макет вашей веб-страницы с красивыми цветами, шрифтами и многим другим.
Изучите CSS
JavaScript
JavaScript
3. Сделайте вашу веб-страницу интерактивной
После изучения HTML и CSS вы должны изучить JavaScript, чтобы создавать динамические и интерактивные веб-страницы для своих пользователей.
Выучить JavaScript
Что дальше?
Теперь вы знаете, как использовать HTML, CSS и JavaScript
для создания, оформления и создания интерактивных веб-страниц. следующий шаг — опубликовать ваш веб-сайт,
— чтобы весь остальной мир мог увидеть вашу работу.
Существует множество хостинговых услуг на выбор.
Мы сделали один для вас бесплатно:
W3Schools Spaces
Создайте свой собственный веб-сайт с помощью W3Schools Spaces.
Начните бесплатно
Здравствуйте,
Front-End Developer!
Людей, которые создают веб-сайты и веб-приложения для заработка, называют
Front-End Developers . Совет: Многие разработчики интерфейсов также обладают базовыми знаниями о различных средах и библиотеках CSS и JavaScript, таких как Bootstrap, SASS (препроцессор CSS), jQuery и React,и популярной системе контроля версий Git.
Что насчет серверной части?
Front-end разработка относится к клиентской стороне (как выглядит веб-страница ).Back-end разработка относится к сервер -сторона (как работает веб-страница ). Код внешнего интерфейса
используется для создания
статических веб-сайтов , целью которых является отображение веб-страницы. Однако, если вы хотите сделать свой веб-сайт динамическим (управлять файлами и базами данных, добавлять контактные формы, управлять доступом пользователей и т. д.), вам необходимо изучить внутренний язык программирования, такой как PHP или Python, и использовать SQL для взаимодействия с базами данных.Список других популярных языков можно найти на нашей домашней странице.
❮ Главная Следующий ❯
ВЫБОР ЦВЕТА
Лучшие учебники
Учебник по HTMLУчебник по CSS
Учебник по JavaScript
Учебник How To
Учебник по SQL
Учебник по Python
Учебник по W3. CSS
Учебник по Bootstrap
Учебник по PHP
Учебник по Java
Учебник по C++
Учебник по jQuery
9003 900
Справочник по HTML
Справочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3.CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQuery
Основные примеры
Примеры HTMLПримеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery
О
W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания. Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования, куки-файлы и политика конфиденциальности.
Copyright 1999-2023 Refsnes Data. Все права защищены.
W3Schools работает на основе W3.CSS.
Что такое HTTP
❮ Предыдущий Next ❯
HTTP stands for H yper T ext T ransfer P rotocol
WWW is about communication between web clients and servers
Communication between client computers and веб-серверов осуществляется путем отправки HTTP-запросы и получение HTTP-ответов
World Wide Web Communication
World Wide Web предназначен для связи между сетью клиентов и веб серверов .
Клиентами часто являются браузеры (Chrome, Edge, Safari), но они может быть любой тип программы или устройства.
Серверы чаще всего представляют собой компьютеры в облаке.
Веб-клиент
Облако
Веб-сервер
HTTP-запрос/ответ
Связь между клиентами и серверами осуществляется запросы и ответы :
- Клиент (браузер) отправляет HTTP-запрос в Интернет
- Веб-сервер получает запрос
- Сервер запускает приложение для обработки запроса
- Сервер возвращает HTTP-ответ (выход) в браузер
- Клиент (браузер) получает ответ
Круг запросов HTTP
Типичный круг запросов/ответов HTTP:
- Браузер запрашивает HTML-страницу. Сервер возвращает файл HTML.
- Браузер запрашивает таблицу стилей. Сервер возвращает файл CSS.
- Браузер запрашивает изображение в формате JPG. Сервер возвращает файл JPG.
- Браузер запрашивает код JavaScript. Сервер возвращает JS-файл .
- Браузер запрашивает данные. Сервер возвращает данные (в формате XML или JSON).
XHR — XML Http Request
Все браузеры имеют встроенный Объект XMLHttpRequest (XHR) .
XHR — это объект JavaScript, который используется для передачи данных между веб-браузером и веб-сервером.
XHR часто используется для запроса и получения данных с целью изменения веб-страницы.
Несмотря на XML и Http в названии, XHR используется с другими протоколами, кроме HTTP, и данные могут быть разных типов, например HTML, CSS, XML, JSON и обычный текст.
Объект XHR — это мечта веб-разработчиков , потому что вы можете:
- Обновление веб-страницы без перезагрузки страницы
- Запрос данных с сервера — после загрузки страницы
- Получение данных с сервера — после загрузки страницы
- Отправка данных на сервер — в фоновом режиме
Объект XHR является базовой концепцией AJAX и JSON :
❮ Предыдущий Следующий ❯
ВЫБОР ЦВЕТА
Лучшие учебники
Учебник по HTMLУчебник по CSS
Учебник по JavaScript
Учебник How To
Учебник по SQL
Учебник по Python
Учебник по W3. CSS
Учебник по Bootstrap
Учебник по PHP
Учебник по Java
Учебник по C++
Учебник по jQuery
9003 900
Справочник по HTML
Справочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3.CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQuery
Основные примеры
Примеры HTMLПримеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery
О
W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания.