#javascript #node.js
#javascript #node.js
Вопрос:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(req.url);
res.end();
}).listen(2020);
Для чего нужен параметр req.url? Будет ли все в порядке, если я не буду его использовать? Кроме того, передача параметра в res.write(); приводит к тому же результату, что и передача параметра в res.write();
Комментарии:
1. Это базовый пример сервера, который возвращает URL-адрес запроса для любого запроса, отправленного к нему. Не использовать
req.url
нормально, вы могли бы вместо этого вызватьres.write("hello world!");
Also , если вы хотите создать веб-сайт, используя node в качестве серверной части, я определенно рекомендую использовать express и pug .
Ответ №1:
Предположим, вы создаете веб-приложение, которое загружает некоторые данные, когда пользователь нажимает на кнопку «выборка сообщений», теперь, что происходит, браузер запускает http-запрос и загружает данные с сервера.Однако, если пользователь откроет инструмент разработчика браузеров и перейдет на вкладку «Сеть» и нажмет кнопку «fetch post», тогда появится запись для Http-вызова, например: — http://domain.tld/fetch-posts .Итак, если пользователь скопирует ваш URL-адрес в скрипте an и вызовет его в цикле для огромного числа, например 10 ^ 9, тогда ваш сервер не сможет обслуживать других и, вероятно, выйдет из строя или, если он автоматически масштабируется, тогда бог может помочь вам оплатить стоимость.Эту проблему можно предотвратить без использования captcha с помощью req.url в NodeJS, чтобы использовать это, мы можем создать общий маршрут, например http://domain.tld/invoke и отправьте зашифрованные параметры для следующего вызываемого маршрута, а затем замените этот параметр на req.url на сервере, например req.url = req.body.path и вызовитеnext() с использованием ExpressJS.Таким образом, каждый раз, когда пользователь видит сетевую вкладку, существует один вид URL, т.е. http://domain.tld/invoke