Web легкий – velcom — WEB Легкий

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

Тарифный план Период предоставления Включено в абонентскую плату
«Комфорт S» календарный месяц минуты в другие сети Республики Беларусь*
безлимит минут внутри сети
интернет-трафик
«Комфорт M» календарный месяц минуты в другие сети Республики Беларусь* 
безлимит минут внутри сети
интернет-трафик
«Комфорт L» календарный месяц минуты в другие сети Республики Беларусь*, 
безлимит минут внутри сети
интернет-трафик
«Комфорт XL» календарный месяц безлимит минут во все сети*
интернет-трафик
«Стартовый» календарный месяц безлимит минут внутри сети, SMS
интернет-трафик
Smart Бесконечный календарный месяц минуты в другие сети Республики Беларусь* 
безлимит минут внутри сети
безлимит SMS и MMS внутри сети
безлимит интернет-трафика
«Бизнес-класс» месяц от даты подключения минуты во все сети Европы и СНГ
безлимит минут во все сети* 
безлимит минут внутри сети
безлимит SMS внутри сети
безлимит интернет-трафика
«Пенсионный»
календарный месяц

минуты на «любимые» номера

интернет-трафик

«Социальный» календарный месяц

минуты внутри сети

интернет-трафик

 «Победа» календарный месяц

 минуты внутри сети

SMS

интернет-трафик

WEB Легкий календарный месяц

Анлим XS календарный месяц интернет-трафик
Анлим S календарный месяц интернет-трафик
Анлим M календарный месяц интернет-трафик
lemon Z календарный месяц безлимит минут внутри сети 
интернет-трафик
lemon Y 

календарный месяц


безлимит минут внутри сети
минуты в другие сети Республики Беларусь*
интернет-трафик
lemon X 

календарный месяц

безлимит минут внутри сети 
минуты в другие сети Республики Беларусь*
интернет-трафик
Для общения S календарный месяц  безлимит минут на «любимые» номера
интернет-трафик 
Для общения M календарный месяц  минуты внутри сети
интернет-трафик 
Для общения L календарный месяц безлимит минут на «любимые» номера
минуты во все сети*
интернет-трафик
«Непоседа» календарный месяц безлимит минут внутри сети,
безлимит интернет-трафика на скорости до 256 Кбит/сек,
100 SMS

* кроме международных вызовов, вызовов на короткие платные номера.

1. Общие положения:

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

1.2 Условия предоставления услуги «Мобильный интернет» регулируются «Порядком оказания услуги «Мобильный интернет».
1.3 Назначение/смена «любимых» номеров производится в соответствии с «Порядком оказания услуги «Любимый номер».
1.4 Подключение и смена на архивные тарифные планы не производится.
1.5 Смена на действующие тарифные планы производится в соответствии с «Порядком смены тарифного плана».
1.6 Клиенту доступно одно подключение на один из тарифных планов: Социальный, Пенсионный, Победа.

2. Особенности предоставления услуг на тарифных планах c периодом предоставления — календарный месяц:

2.1 Тарифные планы Комфорт S, Комфорт M, Комфорт L, Комфорт XL.

2.1.1 Трафик, включенный в абонентскую плату тарифных планов Комфорт S, Комфорт M, Комфорт L, Комфорт XL, расходуется только через публичные точки доступа, при использовании интернет-трафика через корпоративные точки доступа трафик тарифицируется в соответствии с тарифным планом абонента. Абонентская плата тарифного плана Комфорт S включает пакет «Безлимит на мессенджеры», Комфорт M, Комфорт L – пакеты «Безлимит на соц.сети» и «Безлимит на мессенджеры», Комфорт XL — «Безлимит на соц.сети», «Безлимит на мессенджеры» и «Безлимит на YouTube».

2.1.2 Неиспользованный интернет-трафик, включенный в абонентскую плату, накапливается и переносится на следующий месяц в объеме: Комфорт S – до 1 ГБ, Комфорт M – до 10 ГБ, Комфорт L – до 25 ГБ, Комфорт XL – до 40 ГБ.
2.1.3 Абонентам тарифных планов доступны для подключения пакеты:

Комфорт S Комфорт M Комфорт L Комфорт XL
«Безлимитный интернет на сутки»  ●
 ●
 ●  ●
 «500 МБ комфорт»  ●
 «1 ГБ комфорт»  ●  ●  ●  ●
 «3 ГБ комфорт»  ●  ●  ●

www.a1.by

Лёгкие Web-серверы

Специализированные HTTP-приложения дополняют Apache и другие ведущие Web-серверы

Камерон Лейрд
Опубликовано 23.10.2007

Comments

Применение в проектах «лёгких» Web-серверов, таких как lighttpd, litespeed и mongrel, дает впечатляющие преимущества. В этой статье мы представляем обзор возможностей и показываем, как их можно применять.

Что должен делать Web-сервер?

В первую очередь надо понять, что мы исследуем (подробности см. в разделе Ресурсы). Основное действие конечного пользователя в Интернете – это «переход на Web-страницу». На самом общем уровне это предполагает совместную работу пары приложений:

  • Web-браузера, такого как Firefox или Internet Explorer, который показывает в удобной для человеческого восприятия форме запрашиваемую страницу, которую он получает от…
  • Web-сервера, находящегося, как правило, на удалённой машине, который отвечает на запрос страницы потоком данных в формате HTML или аналогичном.

С браузерами имеют дело Web-пользователи, которые подходят к их выбору и анализу с надлежащей тщательностью. Напротив, серверы видны только техническому персоналу сайтов. Более того, хотя существует множество различных Web-серверов, около 90% всех сайтов, согласно недавним исследованиям Netcraft, работают всего на двух из них — Apache и Internet Information Server (IIS). Оба эти сервера – тщательно проработанные продукты, обладающие не только очень длинным списком встроенных возможностей, но и процветающим «вторичным рынком» книг, дополнений, консультаций, провайдеров и т.д. Надо ли вновь изобретать обычное колесо?

Да. Web-сервер оценивается по целому ряду важнейших параметров:

  • Эффективность: как быстро он отвечает на запрос?
  • Масштабируемость: продолжает ли сервер работать надёжно, когда к нему одновременно обращаются много пользователей?
  • Безопасность: совершает ли сервер только те операции, которые должен? Какие возможности он предлагает для аутентификации пользователей и шифрования потока обмена информацией? Делает ли его использование более уязвимыми соседние приложения или хосты?
  • Работоспособность: какие у сервера режимы отказа и аварийные ситуации?
  • Соответствие стандартам
    : поддерживает ли сервер соответствующие RFC?
  • Гибкость: можно ли настроить сервер для принятия большого количества запросов или динамических страниц, требующих значительных вычислений, или сложной аутентификации, или …?
  • Требования к платформе: на каких платформах возможно использование сервера? Предъявляет ли он особые требования к аппаратной платформе?
  • Управляемость: легко ли установить и обслуживать сервер? Совместим ли он с организационными стандартами по ведению журналов, аудиту, оценке затрат и т.д.?

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

Самое интересное в лёгких Web-серверах, то, почему они заслуживают такого обзора, как этот – это их далеко не теоретическая конкурентоспособность. Внимательное исследование показывает, что они могут предложить очень многое и за счёт этого успешно конкурировать с Apache и IIS даже во многих обычных ситуациях. Хотя разумно было бы предположить, что лидеры рынка тщательно оптимизированы, чтобы быть непобедимыми (например) в производительности, многие мелкие конкуренты работают быстрее при простом отображении статических Web-страниц. Если вы проделаете свои собственные тесты с этими Web-серверами, у вас возникнет чувство, что вы случайно оказались на гоночном треке на карте и каким-то непостижимым образом обгоняете «порше» и «вайперы». И это еще не всё: временами лёгкие Web-серверы дополняют своих больших братьев, а не только соревнуются с ними. Даже если вы знаете, что будете использовать Apache, иногда удается получить от него гораздо больше, объединив его с лёгким партнёром. Часто наилучшее решение состоит в кооперации между двумя или более Web-серверами.

Лёгкость Web-сервера

«Лёгкость», на которой фокусируется этот обзор – это скорее субъективная характеристика, как «искусство» или «аромат». Обычно «лёгкий» подразумевает простой, легко инсталлируемый, хорошо налаженный, нетребовательный и устойчивый – меньшего размера и менее сложный, чем Apache и IIS, которые в попытке удовлетворить свой большой рынок превратились в довольно громоздкие конструкции. Из-за сложности и размера мы исключаем из рассмотрения Java Web Server, AOLserver и Zeus, несмотря на их интригующую переносимость и производительность.

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

Упаковка в один файл

Apache требует аккуратной инсталляции многих файлов, разбросанных по нескольким каталогам. Контраст с описанными ниже Web-серверами, некоторые из которых помещаются в одном исполняемом файле, разителен. Одна из специальностей моего работодателя, Phaseit, – развёртывание и сборка установочных пакетов, и мы умеем сделать инсталляцию Apache на вид проще, чем обычно. Но даже когда мы используем наш лучший способ, всё-таки есть огромная разница в «следах» от Apache или IIS или лёгких серверов: первые просто занимают много места.

Маленькие лёгкие Web-серверы также неплохо работают на машинах малой производительности. В нашей собственной компании (Phaseit – см. врезку) мы используем специализированное оборудование, работающее на промышленных компьютерах в удалённых системах, в жёстких условиях или в условиях недостаточного электропитания. В этих ситуациях большим преимуществом является возможность обрабатывать Web-страницы каким-то приложением, которое не требует большой производительности или пространства на диске; это значит, что наши машины могут иметь встроенные доступные через Web управляющие консоли, без сложностей разработки и накладных расходов, характерных для Apache.

Почти все лёгкие Web-серверы имеют в той или иной степени открытый исходный код. Если нам требуется особое поведение Web-сервера, то описанные ниже серверы настолько малы, что их легко понять и, следовательно, усовершенствовать (есть лишь пара исключений). Эти Web-серверы – отличный исходный материал для проектов, в которых Web-серверы встраиваются в специальное ли оборудование или в специфические приложения, предназначенные для работы на компьютерах общего назначения. Они также широко используются на обычных Web-сайтах:

  • YouTube использует lighttpd для быстрой доставки архивированного контента, например, видео;
  • cdServe работает на CD-дисках «German Woodworking Machinery and Tools»;
  • LiteSpeed «отметился» в twitter, www.funnyoride.com, www.airliners.com, WordPress.com, fanfiction.com, SlashGear, www.forumactif.com и в других заметных Web-сайтах;
  • OpenSUSE, RubyOnRails, MarkaBoo и несколько других заметных сайтов опираются на Mongrel;
  • thttpd работает на ht.com, mtv.com, The Drudge Report, garfield.com и др.
  • и т.д.

Вот пример удобства лёгких серверов для разработчиков: в нашей компании мы имеем дело со специальным оборудованием для офисной телефонии. С ним используется специализированное программное обеспечение, которое работает как обычное Linux®-приложение. С помощью всего одного дополнительного файла и небольшой настройки init.d легко добавить высокоэффективную «Web-консоль», которая обеспечивает управляющий интерфейс для аппаратного и программного обеспечения. Конечные пользователи получают возможность отслеживать и конфигурировать свою аппаратуру из любого браузера без установки специального оборудования и других сложностей, которые были характерны для «вертикального» оборудования.

Сервис-ориентированные архитектуры (SOA) имеют репутацию трудных и капризных. По крайней мере часть проблем, по нашему опыту, решается правильной реализацией Web-сервиса. С помощью лёгких Web-серверов мы организуем быстрые установки SOA для демонстраций.

Лёгкие серверы играют свою роль даже в реальных вычислительных центрах, включая перечисленные выше солидные сайты и не только их. Особо высокопроизводительные сайты сегментируют свои операции, чтобы извлечь максимальную выгоду из кэширования, прокси-серверов и т.д. Сайт на основе Apache, к примеру, может иметь архитектуру, в которой медленно изменяющиеся изображения доставляются посредством «минималистского» Web-сервера из выделенной файловой системы. То, что видит в действительности конечный пользователь – это результат командной работы Apache и одного или нескольких дополнительных Web-серверов, каждый из которых играет роль, в которой он превосходит остальных. Такая конструкция может дать очень быстрые результаты с минимальными затратами на вычисления.

Цели и средства

Хотя лёгкие Web-серверы имеют много общего, внутри данной категории есть и различия. Большинство серверов написаны на C, но среди серверов, которые я тестировал, есть и ряд успешных реализаций на других языках, в том числе на Erlang, Java, Lisp, Lua, Perl, Python и Tcl. Если вы предпочитаете какой-либо язык, вы, возможно, найдёте Web-сервер, написанный на нем.

Для того чтобы выбрать «редкий» язык, может быть множество специфических причин:

  • Образование: работа с лёгким Web-сервером – это серьёзная, но не запредельная задача. Это хороший способ получить опыт работы с языком.
  • Кооперация: в то время как лёгкий Web-сервер, написанный на С, обычно укладывается в 10-50 килобайт, а исполняемые файлы более высокоуровневых языков занимают от 100 килобайт до нескольких мегабайт, исходный код для полного Web-сервера на языке высокого уровня может занимать всего несколько тысяч байт. Такой небольшой код намного легче использовать совместно с коллегами, чем модифицировать Apache.
  • Исследование: языки высокого уровня делают облегчают эксперименты – например, для добавления новых возможностей HTTP/1.1 может потребоваться всего несколько дополнительных строчек кода. Эти лёгкие серверы – удобный экспериментальный материал.
  • Модификация: добавление HTTP-сервера к существующему приложению, уже написанному на языке высокого уровня, может потребовать увеличения исходного кода всего на несколько строк.

Хорошим примером здесь может служить Athana. Это Web-сервер, написанный на Python. Он поддерживает HTTP multipart (uploading), сессии, cookies и многое другое. Существующий в настоящее время в версии 0.2.1, Athana пока помещается в одном прекрасно организованном исходном файле.

Как уже говорилось, возможности различных лёгких Web-серверов также варьируются, более или менее независимо от использованного языка. Все лёгкие Web-серверы меньше и конфигурируются легче, чем Apache. Некоторые из них быстрее, чем Apache, некоторые намного быстрее; в других упор сделан на безопасность, бесперебойную работу при больших загрузках, расширяемость или экономию памяти. В любом случае в них скорее всего можно полностью разобраться, что уже нереально для Apache.

Какие конкретные продукты стоят за этими возможностями? Даже ограничившись «лёгкими» серверами, мы получаем необозримо огромный выбор. Рассмотрим эти серверы по подкатегориям: ультралёгкие, особо защищенные, использующие особый язык и так далее.

Среди этих категорий я особенно люблю ультралёгкие Web-серверы – те, которые намного меньше, чем Apache. Приложения такого размера могут уместиться в голове обычного человека; их работу можно представить себе систематически и строго, чтобы строго доказать их безопасность или масштабируемость. К числу очень маленьких Web-серверов относятся:

  • Cheetah Server, содержащий менее тысячи строк на C.
  • DustMote, очень маленький Web-сервер, реализованный в одном Tcl-исходнике размером примерно 3000 байт.
  • fnord занимает менее 20K, в зависимости от платформы и конфигурации. Несмотря на маленький размер, он поддерживает виртуальный хостинг, CGI и keep-alive.
  • ihttpd, имея менее 800 строчек C, умеет обслуживать страницы, включая CGI, посредством inetd.
  • mattows поддерживает CGI, насчитывая при этом всего лишь 600 строк на C.
  • Scrinchy, несмотря на маленький размер — около 30 KB — поддерживает примечательно много языков сценариев, включая специализированный стековый язык под названием Sy.
  • ZWS показывает, как можно написать содержательное приложение – в данном случае сервер HTTP 0.9+ – немногим более чем из 500 строк хорошо откомментированного zsh (!).

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

Возможно, наиболее впечатляющая категория легких серверов по достижениям – высокопроизводительные серверы:

  • cghttpd – минимальный Web-сервер, который можно рассматривать как эксперимент по использованию асинхронных средств, доступных в ядрах Linux серии 2.6.
  • darkhttpd – быстрый однопоточный сервер HTTP/1.1.
  • Gatling специально разработан для высокой производительности. Поддерживает FTP, IPv6, виртуальный хостинг, CGI и т.п.
  • Kernux – модуль ядра Linux, который обеспечивает выполнение HTTP-демона.
  • lighttpd – пятый по популярности Web-сервер в мире (и его доля растет!). Он оптимизирован под большое количество одновременных соединений: «Типичный сценарий – использование lighttpd как сервера, разгружающего основной сервер, для выдачи статического контента…»
  • LiteSpeed Web Server – коммерческий лёгкий Web-сервер, в котором особый упор сделан на производительность и безопасность. LiteSpeed Technologies Inc. заявляет об ускорении в шесть раз для статического контента и несколько более скромных показателях для интерпретируемых страниц.
  • Miniature JWS, известный также как tjws — написанный на Java Web-сервер, который обрабатывает сервлеты, JSP и тысячи параллельных соединений, занимая 77 килобайт. Его автор характеризует его так: «на 10% быстрее, чем Apache 2.x.»
  • Yaws – высокопроизводительный сервер HTTP/1.1, написанный на Erlang.

Многие Web-серверы реализованы как классы или библиотеки, разработанные для встраивания в большие приложения. Среди них особенно интересны:

  • EHS – «встраиваемый HTTP сервер,» класс C++, разработанный для встраивания в большие C++ приложения; и
  • Embedded TCL Web Server, простейший Web-сервер, поддерживающий SSL и Basic Authentication и при этом фантастически быстрый – по замерам автора, не менее быстрый, чем lighttpd и AOLserver. Содержит меньше сотни строк Tcl.

На языке Python реализованы несколько Web-серверов, которые заполняют необычные ниши, в том числе:

  • cdServer — маленький простой http-сервер на Python, «разработанный для выдачи (статического) контента с CD-ROM». Имеет ограниченные возможности в обслуживании динамического контента. У нас есть несколько проектов, которые включают доставку непортящихся «live CD», и инструменты типа cdServer являются для них критическими.
  • edna – остроумный MP3-сервер на Python, основанный на HTTP.

Есть и другие интересные лёгкие Web-серверы, реализованные на Perl и на других, не так хорошо известных, языках:

  • Camlserv – полный Web-сервер, написанный на ocaml и нацеленный на «высокоинтерактивные Web-страницы». Умещается в нескольких тысячах строчек ocaml, большинство из которых посвящено специальным возможностям работы с MySQL и HTML.
  • dhttpd протоколирует обращения в том же формате, что и Apache. Имеет встроенный Perl-интерпретатор для поддержки CGI, виртуальный хостинг, IPv6, управление пропускной способностью и возможности безопасности.
  • DNHTTPD написан на Perl для UNIX®. Он поддерживает виртуальные хосты, SSL соединения, CGI и другое.
  • Jellybean – написанный на Perl сервер Perl Object Server, основанный на HTTP.
  • lns.http – общая Web-среда на LISP HTTP/1.1.
  • Mongrel – библиотека и сервер для HTTP, написанные на Ruby.
  • Nanoweb – быстрый, устойчивый Web-сервер, написанный на PHP. Имеет обширный список возможностей, включая полное соответствие HTTP/1.1, контроль обращений, аутентификацию, виртуальный хостинг, SSL совместимость и т.д.
  • Naridesh – написанный на Perl Web-сервер.
  • OpenAngel – написан на Perl. Его фокус – безопасность.
  • Xavante – HTTP/1.1 Web-сервер, написанный на Lua.
  • XSP написан на C# и выполняет роль ведущего узла ASP.NET.

Однажды вам могут понадобиться и некоторые другие написанные на C лёгкие Web-серверы с необычными дополнительными возможностями:

  • ABYSS переносим между UNIX и Win32 и претендует на то, чтобы «быть полностью HTTP/1.1-совместимым Web-сервером». Экономичен в использовании памяти.
  • Anti-Web HTTPD (также «Anti-Web», «awhttpd» и «AW») однопроцессный (не многопоточный), поддерживающий CGI сервер, в котором особое внимание уделено безопасности и простоте.
  • MHTTPD поддерживает MHTTPD Basic Authentication как из внешнего файла, так и при помощи LDAP-сервера.
  • mini-httpd обрабатывает параллельные запросы в одном потоке и нетребователен к хосту в плане памяти и процессора.
  • Naken Web похож на множество других лёгких серверов – поддерживает Basic Authentication, статический контент и т.д. – но авторы нацеливали его на операции для Web-камер и применяли на Gumstix, WRT54GL, OpenWrt и других инновационных платформах.
  • Null httpd – многопоточный, но простой и портативный Web-сервер.
  • Seminole – коммерческий Web-сервер, не требует много памяти и имеет много возможностей.
  • thttpd поддерживает регулирование пропускной способности, реализует chroot, Basic Authentication и т.д.

Заключение

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

Ресурсы для скачивания
Похожие темы
  • Lightweight Web servers – оригинал этой статьи на developerWorks (EN).
  • LinuxLinks и Wikipedia – обновляемый список лёгких Web-серверов.(EN)
  • Хотите узнать, какое серверное ПО работает на данном сайте (или Заявлено как работающее)? Посмотрите в Netcraft(EN).
  • Netcraft считает что 1.2% (или пятое место) на рынке Web-серверов принадлежит lighttpd, и Serverwatch считает, что рост обусловлен администраторами, которые ищут альтернативу Apache(EN).
  • Три венгерских исследователя описывают «Портативные минимальные Web-серверы (Portableminimal Web servers)» на примерах двух серверов, написанных ими на C и bash, соответственно (EN).
  • «Реализация лёгкого Web-сервера для объединения ресурсов и масштабируемости (Implementing a Lightweight Web Server for Resource Pooling and Scalability)» – типичные для всех упомянутых здесь серверов рекомендации по применению и модели использования, хотя язык реализации, Java, представлен среди них в меньшинстве (EN).
  • Изобретатель REBOL показывает возможности языка на примере этого одностраничного Web-сервера, написанного на REBOL (EN).
  • Скачать бесплатно пробное ПО от IBM, включая таких любимцев публики, как IBMHTTP-сервер, WebSphereApplication Server Community Edition и другие.(EN)
  • Подписка на наши новости.(EN)

Подпишите меня на уведомления к комментариям

www.ibm.com

Как работают веб-приложения / Habr

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

1. Чем веб-приложения отличаются от сайтов


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

Сайты содержат различную статику, которая как и HTML-файл не генерируется на лету. Чаще всего это картинки, CSS-файлы, JS-скрипты, но могут быть и любые другие файлы: mp3, mov, csv, pdf.

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

А веб-приложение — это что-то технически более сложное. Тут HTML-страницы генерируются на лету в зависимости от запроса пользователя. Почтовые клиенты, соцсети, поисковики, интернет-магазины, онлайн-программы для бизнеса, это все веб-приложения.

2. Какие бывают веб-приложения


Веб-приложения можно разделить на несколько типов, в зависимости от разных сочетаний его основных составляющих:
  1. Backend (бэкенд или серверная часть приложения) работает на удаленном компьютере, который может находиться где угодно. Она может быть написана на разных языках программирования: PHP, Python, Ruby, C# и других. Если создавать приложение используя только серверную часть, то в результате любых переходов между разделами, отправок форм, обновления данных, сервером будет генерироваться новый HTML-файл и страница в браузере будет перезагружаться.
  2. Frontend (фронтенд или клиентская часть приложения) выполняется в браузере пользователя. Эта часть написана на языке программирования Javascript. Приложение может состоять только из клиентской части, если не требуется хранить данные пользователя дольше одной сессии. Это могут быть, например, фоторедакторы или простые игрушки.
  3. Single page application (SPA или одностраничное приложение). Более интересный вариант, когда используются и бэкенд и фронтенд. С помощью их взаимодействия можно создать приложение, которое будет работать совсем без перезагрузок страницы в браузере. Или в упрощенном варианте, когда переходы между разделами вызывают перезагрузки, но любые действия в разделе обходятся без них.

3. Pyhon-фреймворк Django aka бэкенд


В разработке фреймворк — это набор готовых библиотек и инструментов, которые помогают создавать веб-приложения. Для примера опишу принцип работы фреймворка Django, написанного на языке программирования Python.

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

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

Данные приложения хранятся в базе данных (БД). Чаще всего используются реляционные БД. Это когда есть таблицы с заранее заданными колонками и эти таблицы связаны между собой через одну из колонок.

Данные в БД можно создавать, читать, изменять и удалять. Иногда для обозначения этих действий можно встретить аббревиатуру CRUD (Create Read Update Delete). Для запроса к данным в БД используется специальный язык SQL (structured query language).

В Джанго для работы с БД используются модели (model). Они позволяют описывать таблицы и делать запросы на привычном разработчику питоне, что гораздо удобнее. За это удобство приходится платить: такие запросы медленнее и ограничены в возможностях по сравнению с использованием чистого SQL.

Полученные из БД данные подготавливаются во вью к отправке на фронт. Они могут быть подставлены в шаблон (template) и отправлены в виде HTML-файла. Но в случае одностраничного приложения это происходит всего один раз, когда генерируется HTML-страница, на который подключаются все JS-скрипты. В остальных случаях данные сериализуются и отправляются в JSON-формате.

4. Javascript-фреймворки aka фронтенд


Клиентская часть приложения — это скрипты, написанные на языке программирования Javascript (JS) и исполняемые в браузере пользователя. Раньше вся клиентская логика основывалась на использовании библиотеки JQuery, которая позволяет работать с DOM, анимацией на странице и делать AJAX запросы.

DOM (document object model) — это структура HTML-страницы. Работа с DOM — это поиск, добавление, изменение, перемещеие и удаление HTML-тегов.

AJAX (asynchronous javascript and XML) — это общее название для технологий, которые позволяют делать асинхронные (без перезагрузки страницы) запросы к серверу и обмениваться данными. Так как клиентская и серверная части веб-приложения написаны на разных языках программирования, то для обмена информацией необходимо преобразовывать структуры данных (например, списки и словари), в которых она хранится, в JSON-формат.

JSON (JavaScript Object Notation) — это универсальный формат для обмена данными между клиентом и сервером. Он представляет собой простую строку, которая может быть использована в любом языке программирования.

Сериализация — это преобразование списка или словаря в JSON-строку. Для примера:

Словарь:

    {
        'id': 1, 
        'email': '[email protected]'
    }

Сериализованная строка:
    '{"id": 1, "email": "[email protected]"}'

Десериализация — это обратное преобразование строки в список или словарь.

С помощью манипуляций с DOM можно полностью управлять содержимым страниц. С помощью AJAX можно обмениваться данными между клиентом и сервером. С этими технологиями уже можно создать SPA. Но при создании сложного приложения код фронтенда, основанного на JQuery, быстро становится запутанным и трудно поддерживаемым.

К счастью, на смену JQuery пришли Javascript-фреймворки: Backbone Marionette, Angular, React, Vue и другие. У них разная философия и синтаксис, но все они позволяют с гораздо большим удобством управлять данными на фронтенде, имеют шаблонизаторы и инструменты для создания навигации между страницами.

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

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

5. Как клиент и сервер общаются между собой


Общение клиента с сервером происходит по протоколу HTTP. Основа этого протокола — это запрос от клиента к серверу и ответ сервера клиенту.

Для запросов обычно используют методы GET, если мы хотим получить данные, и POST, если мы хотим изменить данные. Еще в запросе указывается Host (домен сайта), тело запроса (если это POST-запрос) и много дополнительной технической информации.

Современные веб-приложения используют протокол HTTPS, расширенную версию HTTP с поддержкой шифрования SSL/TLS. Использование шифрованного канала передачи данных, независимо от важности этих данных, стало хорошим тоном в интернете.

Есть еще один запрос, который делается перед HTTP. Это DNS (domain name system) запроc. Он нужен для получения ip-адреса, к которому привязан запрашиваемый домен. Эта информация сохраняется в браузере и мы больше не тратим на это время.

Когда запрос от браузера доходит до сервера, он не сразу попадает в Джанго. Сначала его обрабатывает веб-сервер Nginx. Если запрашивается статический файл (например, картинка), то сам Nginx его отправляет в ответ клиенту. Если запрос не к статике, то Nginx должен проксировать (передать) его в Джанго.

К сожалению, он этого не умеет. Поэтому используется еще одна программа-прослойка — сервер приложений. Например для приложений на питоне, это могут быть uWSGI или Gunicorn. И вот уже они передают запрос в Джанго.

После того как Джанго обработал запрос, он возвращает ответ c HTML-страницей или данными, и код ответа. Если все хорошо, то код ответа — 200; если страница не найдена, то — 404; если произошла ошибка и сервер не смог обработать запрос, то — 500. Это самые часто встречающиеся коды.

6. Кэширование в веб-приложениях


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

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

  • В Джанго пришел запрос на получение данных для графика в отчете. Мы достаем из БД данные, подготавливаем их и кладем в БД с быстрым доступом, например, memcached на 1 час. При следующем запросе мы сразу достанем их из memcached и отправим на фронтенд. Если мы узнаём, что данные перестали быть актуальными, мы их инвалидируем (удаляем из кэша).
  • Для кэширования статических файлов используются CDN (content delivery network) провайдеры. Это серверы, расположенные по всему миру и оптимизированные для раздачи статики. Иногда бывает эффективнее положить картинки, видео, JS-скрипты на CDN вместо своего сервера.
  • Во всех браузерах по умолчанию включено кэширование статических файлов. Благодаря этому, открывая сайт не в первый раз, все загружается заметно быстрее. Минус для разработчика в том, что со включенным кэшем не всегда сразу видны изменения сделанные в коде.

habr.com

Мета теги в HTML. Для чего нужны, что они делают на сайте

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

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

  1. <meta name= «description» content= «Краткое описание сайта»>
  2. <meta name= «keywords» content= «ключевые слова для поисковых систем»>
  3. <meta charset= «utf-8»>
  4. <meta name= «author» content= «Максим Новичков»>

Рассмотрим подробнее назначение каждого из представленных метатегов.

Метатег description.

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

Пример:

<!DOCTYPE html>
<html>
  <head>
    <meta name="description" Content="На нашем портале вы найдете все Необходимое для создания сайтов!">
    <title>Мой первый сайт</title>
  </head>
  <body>
   <p align=center> Привет МИР!!!</p>
  </body>
</html>

Метатег Keywords.

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

Пример:

<!DOCTYPE html>
<html>
  <head>
    <meta name="keywords" content="сайты, основы HTML, теги, метатеги">
    <title>Мой первый сайт</title>
  </head>
  <body>
   <p align=center> Привет МИР!!!</p>
  </body>
</html>

Метатег charset.

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

Пример:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Мой первый сайт</title>
  </head>
  <body>
   <p align=center> Привет МИР!!!</p>
  </body>
</html>

Метатег Author.

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

Пример:

<!DOCTYPE html>
<html>
  <head>
    <meta name="author" content="Максим Новичков">
    <title>Мой первый сайт</title>
  </head>
  <body>
   <p align=center> Привет МИР!!!</p>
  </body>
</html>

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

web-legko.ru

Yaws — лёгкий web сервер на Erlang

Недавно на всех серверах кои я администрирую, решил сменить lighttpd на что либо ещё более лёгкое, и конечно же, под чем либо более лёгким, я имел в виду nginx. Однако, раз уж я захотел сменить web сервер, то я не мог не посмотреть из интереса на другие лёгкие web сервера, и не мог не заметить web сервер Yaws.

Yaws (Yet Another Web Server) — web сервер написанный на языке Erlang. На языке, который по праву считается крайне производительным. Тоже самое можно сказать и об самом web сервере: по сравнению с apache2, yaws — просто реактивный.

Yaws поддерживает два режима работы:

  • Как отдельный web сервер
  • Как интегрированный web сервер в другое erlang приложение

Я опишу первый вариант.

Установка

Для работы web сервера само собой требуется erlang. Он установится как зависимость от yaws:

sudo aptitude install yaws

Настройка

Конфиг у yaws’а крайне простой, и понятный. Всё что мне потребовалось сделать для работы, это добавить хосты, и несколько строчек для php. Кстати о виртуальных хостах. Мне очень сильно понравилось то, как организована работа с ними в yaws. Всё довольно просто, прозрачно и удобно.

# проверьте чтобы было установлено в true
pick_first_virthost_on_nomatch = true

<server localhost>
        port = 80
        listen = 0.0.0.0
        <redirect>
                / = example.com
        </redirect>
</server>

<server example.com>
        port = 80
        listen = 0.0.0.0
        docroot = /var/www/example.com
        dir_listings = true
</server>

Всё довольно просто и понятно. Вначале мы делаем редирект на основной домен при обращении к серверу по ip адресу, или другими обходными способами. Далее добавили один домен.

PHP

Yaws прекрасно работает с php. Всё что нужно — это добавить несколько строчек в файл конфигурации.

Во первых путь до php5-cgi:

php_exe_path = /usr/php/bin/php-cgi

И к каждому виртуальному хосту на котором нужен php, добавить allowed_scripts = php:

<server example.com>
        port = 80
        listen = 0.0.0.0
        docroot = /var/www/example.com
        dir_listings = true
        allowed_scripts = php
</server>

Этим не ограничиваются возможности yaws. Больше о его возможностях и документация — на официальном сайте Yaws.

the-bosha.ru

UwAmp — легкий web — сервер для windows ⋆ SLUSAR.SU

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

Вот как о нем говорят сами разработчики:
Без установки
UwAmp доступен как архив Zip, просто распаковать его, и вы можете запустить сервер WAMP.

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

Мульти версии PHP
Изменение версии PHP в один клик и скачать новую версию PHP непосредственно из репозитория php.net.

Мониторинг CPU
В режиме реального времени мониторинг Apache и MySQL процесс CPU.

Режим У3
Может быть запущена с USB-флешки.

Единственное, что там не настроено — это date.timezone, то есть, место расположения вашего сервера в часовом поясе. Это легко настраивается в конфигурации php.ini. Найдите там параметр date.timezone и укажите свою зону, например моя выглядит так: date.timezone = ‘Europe/Kiev’. Список всех таймзон можно посмотреть тут: http://php.net/manual/ru/timezones.php

Пользуйтесь на здоровье.

Официальный сайт: http://www.uwamp.com/en/

Скачать с моего хранилища версию 3.1.0:

 

Просмотры: 4 041

slusar.su

Отправить ответ

avatar
  Подписаться  
Уведомление о