@DartNyan

Для PHP нужен лок. сервер, а для других ЯП?

Приветствую.
Только учусь и поэтому вам мой вопрос покажется глупым.
Речь о серверных языках.
Для PHP нужен локальный сервер. Например, связка LAMP.
И в рунете огромное количество статей на эту тему.
А как с другими языками? Используются аналогичные локальные сервера или в них нет никакой необходимости?
Буду благодарен за развернутый ответ или ссылочку на соответствующую статью.
Спасибо.
  • Вопрос задан
  • 3169 просмотров
Решения вопроса 1
naXa
@naXa
Junior Java(Script) Developer
Самый глупый вопрос тот, который не задан.

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

Надобность в такой программе возникает именно при разработке динамических сайтов, т.е. сайтов, использующих в своей работе php (или perl, node.js и пр.) – скрипты. Для тестирования обычных html+css сайтов локальный сервер не нужен.

Тут, по-моему, важно понять, что какие-то вещи способен сделать браузер (распарсить html страницу, выполнить js код, ...), и они выполняются на стороне клиента, а какие-то вещи* выполняются на стороне сервера. В ответ на запрос сервер на основе скрипта / программы генерирует страницу, которую отправляет клиенту. В этом суть сервера. В этом и будет различие: (ещё раз) если Вы в проекте используете исключительно языки, которые "понимает" браузер, Вы можете обойтись без локального сервера.

Для языков, которые Вы упомянули в тегах, нужны локальные сервера:
Java** - Tomcat, JBoss AS, GlassFish, Jetty и др.
Python*** - Google App Engine, веб сервера, реализующие WSGI, (Twisted Web, например) и др.
JavaScript*** - Node.js (основан на V8) и др.
Ruby on Rails*** - WEBrick, Mongrel, любой web сервер, поддерживающий FastCGI, ...
__________
* Для реализации сайтов с динамическим контентом, либо по соображениям безопасности, либо, чтобы снять вычилительную нагрузку с клиента, ...
** Сервер нужен для сервлетов; java-апплеты выполняются в браузере, без участия сервера.
*** Важно: насчёт этих языков и фреймворка я не уверен, просто по-быстрому нагуглил. Надеюсь, знающий человек не пройдёт мимо этого ответа и поправит меня, если что-то не так.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
ProgramCodePav
@ProgramCodePav
Front-end developer. Love open source
Серверные языки имеют особенность - обработка только на сервере. Это от софта зависит. Что происходит, когда вы заходите на страницу с кодом PHP (или другого языка):
1. Ваш браузер посылает запрос на получение html страницы (файла) по %url%;
2. Сервер получает ваш запрос, берет запрошенную страницу (допустим index.php с html + php или просто php кодом), обрабатывает операции с языком php (как обычная программа);
3. После обработки PHP команд на сервере, на выходе получается html-страница (содержимое, конечно же, зависит от того, что написано было в коде - может и пустая быть)
4. Сервер отсылает вам эту страницу
5. Ваш браузер получает ее и открывает

upd: именно поэтому вам не обойтись без сервера. А локальный он или выделенный - без разницы, фишка в ПО
Ответ написан
viktorvsk
@viktorvsk
Сервер нужен обязательно. LAMP - нет.
В пхп есть php -S localhost:3000 , кажется, - встроенный веб-сервер
Во всех остальных языках (руби, питон, например), с минимальными телодвижениями - тоже.
В качестве базы данных всегда можно использовать sqlite - просто файлик.
Тут, думаю, ссылочки излишни. Разве что:
php.net/manual/en/features.commandline.webserver.php

Ну, и еще на будущее хорошо понимать, что распространенная природа пхп отличается от других. пхп у вас рождается и умирает при запросе, а в других языках привыкли загружать окружение и работать с ним (в общем случае). В итоге вы увидите, что приложение пхп в продакшене может занимать 5 мегабайт, а в руби - 200.
Ответ написан
Комментировать
index0h
@index0h
PHP, Golang. https://github.com/index0h
С 5.4 у php есть встроенный сервер, но его стоит использовать разве что для тестирования. PHP - не хранит свое состояния от запроса к запросу, он так изначально создавался, как следствие - для части кейсов - это его киллер фича, для другой части - недостаток. Например: в одном из 200 файлов php ошибка синтаксиса, все запросы, которые НЕ будут требовать этот файл будут работать, остальные - фаталить. Я не спорю, за такое надо бить сраным веником по одному месту, но ситуации бывают разные.
У NodeJS / Ruby / Golang / Erlang / ... сервера поднимаются собственные, и у них есть некое состояние, хранящееся между запросами. Нужно быть осторожным в плане перехвата ошибок, так как любое не перехваченное исключение выведет из строя ваш сервер (за такое нужно тем же веником по тому же месту)) ).
Для этих языков обычно тоже поднимается nginx и отдает статику, а запросы на html - уже проксирует.
Ответ написан
Freika
@Freika
Senior Ruby on Rails developer
В Ruby on Rails есть встроенный сервер WEBrick, который запускается для конкретного приложения из его директории командой rails server. Приложение доступно будет в браузере по адресу localhost:3000
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы