Веб-страница
23.9K subscribers
1.77K photos
535 videos
1 file
3.97K links
Всё по фронтенду, бэкенду и девопсу в одном месте

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/64ai
Download Telegram
Влияют ли теги H1 на ранжирование в Google?

Когда SEO только зарождался, часто можно было слышать о двух тактиках продвижения страниц своего сайта:

— «Поместите заголовок страницы в теги H1»;
— «Используйте только один заголовок H1 на страницу».

Сейчас вроде как Google более комплексно анализирует контент на странице, и эти правила уже не так и важны. Или нет?

Эксперт по SEO решил провести эксперимент и получить ответ на этот вопрос. Вот, что у него получилось:

https://tprg.ru/TZhW

#seo
В нашем конкурсе Tproger Gamify появилось ещё два задания: за прохождение тестов и прочтение статей. До подведения итогов осталась ещё неделя, так что вы тоже можете довести дело до конца.

Успевайте набрать баллы и поучаствовать в розыгрыше нашего мерча: https://tprg.ru/gamify21
HTTP/3 уже почти здесь. Поддержка в популярных браузерах реализована, но выключена по умолчанию, разработчики Nginx обещают присоединиться к веселью уже в текущей ветке 1.17, а CloudFlare в своём стиле просто добавила одну галку — тыкнул и всё работает.

Поиграться и провести тесты можно уже сейчас:

Собираем Nginx по инструкции (https://tprg.ru/yTiU) или берём готовый docker image (https://tprg.ru/1Rkr).

Выпускаем сертификат через Let's Encrypt, правим конфиги (https://tprg.ru/QbLu), запускаем контейнер.

Проверяем как всё работает:
— В онлайне: https://www.http3check.net/
— Через curl (собираем из исходников https://tprg.ru/Qqe2 или берём готовый контейнер https://tprg.ru/zOJe)

Включаем в браузерах:
— Chrome: chrome://flags/#enable-quic
— Firefox: about:config => network.http.http3.enabled

Мы должны получить уменьшение latency и в целом ускорение, потому что в теории в HTTP/3:
– Быстрее handshake (1 или 0-RTT)
— Нет проблемы с HOL (https://tprg.ru/Z6lF)
— Переключение сети проиходит без потерь

Узнать больше как работает HTTP/3 можно тут, например: https://tprg.ru/TmEi
Вдогонку к посту про HTTP/3

Команда Node.js сообщает, что экспериментальную поддержку QUIC (это транспортный протокол, лежащий в основе HTTP/3) для всех разработчиков добавят уже в Node.js v14, а полноценная поддержка QUIC и HTTP/3 появится в Node.js v15

Подробнее : https://www.nearform.com/blog/a-quic-update-for-node-js/

По ссылке также есть код для реализации QUIC клиента и сервера, чтобы вы могли сами всё попробовать и провести замеры.
Если ещё не знали, то у DigitalOcean есть весьма удобный конфигуратор для Nginx, который покрывает большинство стандартных кейсов:

https://tprg.ru/paQG

#бэкенд #nginx #инструменты
Поговорим немного о JIT в PHP 8

Новая мажорная версия PHP ожидается уже в конце 2020 года, так что сейчас ведётся активная разработка. Что-то может поменяться перед релизом, но в целом общий список изменений можно глянуть тут, например: https://tprg.ru/Ocoy

Одна из наиболее обсуждаемых фишек — Just In Time (JIT) компилятор. Он будет реализован как часть расширения Opcache. Суть в том, что некоторые участки кода будут компилироваться в инструкции CPU на лету. Это значит, что в некоторых случаях можно будет пропустить виртуальную машину Zend и выполнить код напрямую в процессоре.

На практике же ожидать серьёзного прироста производительности не стоит, потому что основной затык в PHP-коде обычно не в CPU, а в потоках ввода-вывода. Ускорение инструкций не ускорит обращения к диску или сетевые запросы.

Больше подробностей можно глянуть тут: https://tprg.ru/f67m

Ждём первые сборки, будем проверять на практике.

#бэкенд #php
This media is not supported in your browser
VIEW IN TELEGRAM
GoScan — сканер сети, основанный на nmap, но с большим уровнем абстракции. Умеет в автодополнение команд.

Обнаружение хостов, сканер портов, поиск запущенных сервисов через интеграции с другими утилитами — вот это всё.

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

Подробнее на гитхабе: https://github.com/marco-lancini/goscan

#сеть
Вышла новая версия Memcached 1.6.0

Авторы говорят, что добавили много крутых фич и исправили кучу ошибок, которые надо было давно пофиксить: https://github.com/memcached/memcached/wiki/ReleaseNotes160

Если кто уже пробовал — поделитесь в комментариях, как работает и есть ли ускорение или снижения загрузку CPU в этой версии.
Где и как мониторить скорость загрузки веб-сайта, чтобы понимать как можно всё улучшить — годная подборка инструментов от команды Tproger

https://tproger.ru/articles/tproger-performance-monitoring-and-improving-tools/

#мониторинг #инструменты
Сегодня рассказываем про директиву stale-while-revalidate HTTP-заголовка Cache-Control.

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

Вот пример от ребят из Google:
cache-control: private, max-age=900, stale-while-revalidate=3600

Такой заголовок они добавили для скрипта gpt.js, который используется для показа рекламы. Если файл запрашивается между 15 и 60 минутами, после того как он попал в кэш, будет использоваться устаревшая версия, но в фоне скрипт будет обновлён и закэширован для использования в будущем. Добавление заголовка ускорило начальную загрузку скрипта на 2% и на 0,5% увеличило доход с рекламы.

Директива stale-while-revalidate не входит в основной стандарт, однако уже поддерживается в FF, Chrome и Edge (в целом 67% юзеров по миру на момент публикации поста).

#http #браузеры
This media is not supported in your browser
VIEW IN TELEGRAM
Сколько раз вы писали sl вместо ls для получения списка файлов в консоли?

Предлагаем делать опечатки стильно:
sudo apt-get install sl
(ну или какой там у вас пакетный менеджер, утилита есть почти под все платформы)

Теперь к вам приедет паровозик (Steam Locomotive), если вы снова ошибётесь. Разные опции дают разный результат, можно экспериментировать.

#консоль
Вышло новое издание, надо брать
This media is not supported in your browser
VIEW IN TELEGRAM
В инструментах разработчика Google Chrome есть возможность скопировать любой запрос на вкладке Network в виде команды cURL. Все заголовки и кукисы включены т.е. можно полностью повторить HTTP-реквест вне браузера.

Но можно ещё круче. Берём команду cURL из буфера и вставляем вот тут: https://curl.trillworks.com/. Получаем готовый код на Pyhton, Go, PHP или на чём вы там сейчас пишите.

Это удобно, когда работаете с сайтами, которые проверяют заголовки или ещё какие-то условия, которые просто так сразу не видно.

#chrome #браузеры
Git Flow — модель ветвления и слияния в гите, которая стала безумно популярной после одной заметки 10-летней давности. И вот в этом году выходит другая статья, где говорится, что это всё фигня и так делать не надо. И даже автор оригинальной заметки вносит правки в своё видение.

В общем, занятно получилось: https://habr.com/ru/company/flant/blog/491320/

#git
Годная статейка про то, как забирать данные с других сайтов и при этом не попасть в бан. Ну или попасть, но потом обойти его.

https://tproger.ru/translations/web-scraping-without-getting-blocked/

Имеется в виду именно открытый парсинг, когда API или готовых фидов нет. Например, чтобы забрать себе данные по ценам на товары в онлайн-магазинах конкуретов.

(картинка в посте про «извлечение» данных, хехе, ну вы поняли)

#парсинг
webscrapinghandbook.pdf
4.5 MB
По поводу веб-скрейпинга. Вот тут ещё подъехало руководство по этому делу на Java.

Авторы бесплатно опубликовали книжку на 130 страниц, которую изначально издали в 2018 году. И даже дали прямую ссылку на скачивание PDF (прикрепили к посту).

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

#парсинг
.garden { margin-left: 60%; }
Инструмент для ресайза и конвертации картинок в вебе: https://bulkresizephotos.com/

И когда мы говорим «в вебе», то имеем в виду не на удалённом сервере, а локально у вас на комьютере, просто в веб-интерфейсе. По этой причине всё работает так быстро (для референса 150 средних картинок за 60 секунд).

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

#инструменты
12 концепций, которые прокачают ваш JavaScript: https://tproger.ru/translations/javascript-important-concepts/

Рекомендуем всем, кто сталкивается с JS. Статья не охватывает всё, что может пригодится, но некоторые полезные советы точно найти можно.

#javascript
This media is not supported in your browser
VIEW IN TELEGRAM
Визуальный клиент Git для терминала: https://github.com/jesseduffield/lazygit

Написан на Go, есть пакеты под популярные дистрибутивы Linux и сборка под Windows.

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

#git