Простые, но эффективные приемы для готового к работе приложения

1. Исправление косой черты в конце

Завершающая косая черта - это косая черта, которая появляется в конце URL-адреса. Это выглядит так: localhost:8080/about/ - косая черта в конце - это так называемая конечная косая черта. Это на самом деле служит для обозначения большего количества содержимого, которое будет найдено по этому пути, так что это каталог.

Проблема в том, что Express.js отвечает на путь как с завершающей косой чертой, так и без нее одним и тем же ответом - одной и той же страницей, поэтому ее можно вызывать с конечной косой чертой и без нее.
Итак, Express отображает ту же страницу, когда мы открываем localhost:8080/about и localhost:8080/about/ в следующем базовом примере кода:

app.get(‘/about’, (req, res) => {
  res.send(‘about page’)
})

В чем проблема с этими косыми чертами в конце? Они могут привести к плохому SEO-рейтингу. Поисковые системы различают оба URL-адреса и, таким образом, замечают, что на веб-сайте появляется дублированный контент.

У меня была эта проблема на моем веб-сайте, и, как видите, она была классифицирована как проблема инструментом SEO, который я использую.

Я не специалист по SEO, и никто толком не знает, как именно работают алгоритмы поисковых систем, но в таких инструментах SEO, как Ubersuggest, косая черта в конце упоминается как серьезная проблема SEO.

Вот как это исправить.

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

Это промежуточное ПО должно работать без проблем - даже URL и параметры запроса должны работать, потому что промежуточное ПО удаляет только ненужную косую черту в конце.

2. Отключите питание от заголовка.

Вы когда-нибудь задумывались, как такие инструменты, как Wappalyzer, узнают, что ваш веб-сервер основан на Express.js?

Это связано с тем, что Express.js отправляет HTTP-заголовок по умолчанию, который называется X-Powered-By. Вы можете легко найти его на вкладке сети вашего браузера:

Но зачем нам отключать этот заголовок?

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

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

К счастью, отключить это несложно. Нам нужна только следующая строка, которую мы должны вставить прямо под созданием экземпляра:

const app = express()
app.disable('x-powered-by');

3. Сжатие

Сжатие может быть таким простым. Это того стоит, особенно для больших страниц, которые вы доставляете с помощью Express.js. Благодаря модулю NPM сжатие мы можем массово сжимать наш контент, используя только одну строку.
Это верно как для статического контента, так и для res.send-response.

Вы можете установить промежуточное ПО с помощью npm install compression.

Он должен быть включен вверху, то есть перед express.static, иначе он будет работать только в ограниченной степени.
Вот пример правильной интеграции:

const compression = require("compression")
....
app.use(compression())
app.use('/static', express.static('public'))

Эта одна строка делает многое. Например, я создал статическую страницу, размер которой обычно составляет 18,7 КБ в сжатом виде; это всего 1,3 кб. Гигантская разница, даже если она всегда зависит от документа. По умолчанию промежуточное ПО использует сжатие gzip.

Подпишитесь на мою рассылку, чтобы быть в курсе