Разница между протоколами TCP и UDP?
TCP гарантирует доставку данных, но медленнее чем UDP. UDP может применяться, например, в потоковом аудио и видео.
Методы простой оптимизации загрузки сайтов и JS приложений (производительность)
async и defer.Анализ производительности (какие есть метрики)
TTFB - время до получения первого байта (вычисления на сервере + сеть)
FCP - время до того как на экране появится хоть что-нибудь
LCP - время до того, как на экране появится полезный контент
Показатель отказов - процент покинувших сайт со страницы входа или посмотревших не более 1 страницы.
Конверсия - полезное действие.
XSS - как провести атаку, как защититься
Атака:
Исполнение вредоносного JS-кода на сайте не предусмотренным способом. Например через ввод каких-то данных, которые отображаются на сайте: строка поиска, комментарий, параметры поиска в адресной строке. Получение таким способом конфиденциальных данных, например токены авторизации, авторизационные куки, логин-пароли.
Защита:
Экранирование полученный от пользователя данных, валидация ввода, httponly cookies.
GraphQL (знать, что это)
Язык запросов. Позволяет получать данные по конкретному запросу, как в SQL, а не целыми “пластами”, ограничиваясь только предоставленными нам эндпоинтами, как в REST.
Git Flow
Методика работы с гит. В ней создаётся отдельная ветка для разработки, а от неё создаются ветки для фич. После того как фича готова делается запрос на слияние. Код перед слиянием проходит ревью.
Что такое кросс-браузерность?
Какие инструменты используются для этого?
Одинаковая работа сайта (и его визуальная составляющая) во всех браузерах (в том числе мобильных).
Инструменты:
* префиксы
* обнуление или нормализация
* полифилы
Из чего состоит запрос HTTP?
Host.Какие методы есть в HTTP?
Основные: GET (получение), POST (отправка), PUT (замена, обновление), DELETE (удаление), PATCH (частичное обновление)
Чем HTTP отличается от HTTPS?
HTTPS - с шифрованием. В нём участвуют сертификаты, которые должны быть подтверждены центром сертификации и обмен ключами по принципу “рукопожатия” (handshake, TSL, SSL).
Что такое SSL и TLS? Зачем они используются в веб-разработке?
Это протоколы шифрования. Используются для:
Как работает DNS?
Есть дерево серверов, где каждый отвечает за свою зону. При поиске адреса через DNS сначала идёт обращение к корневому серверу, который переадресует запрос далее, например в ru регион, тот далее, например к серверу yandex.
В целом есть два типа серверов. Те кто перенаправляют тебя к тому кто знает ответ и те, кто сами получают ответ и затем возвращаются с ним.
Что такое REST?
Архитектурный подход для создания API.
API, полностью соответствующий правилам будет RESTful.
Структура URL?
URI - https://domain.com/some/url?q=foo&bar=baz
URL - https://domain.com
URN - some/url
URI = URL + URN
Что могут в себе содержать заголовки и Cookies?
Популярные заголовки:
* Host
* User-Agent описание клиента - браузер, ос итд
* Accept указывается формат в котором клиент принимает ответ, “любое” указывается как “/”
* Authorization
* Cookie
Cookie хранятся в виде пар ключ-значение. Небольшие фрагменты данных, которые могут выступать в виде идентификатора пользователя или, например хранить в себе предпочтения пользователя.
Какие типы кодов ответов HTTP есть?
100 - информационные
200 - успешное выполнение запроса
300 - переадресация
400 - ошибка клиента
500 - ошибка сервера
Что такое прогрессивная отрисовка? Какие технологии используются?
Кусочки HTML генерируются на сервере и отсылаются браузеру в порядке приоритетности (например <header> генерируется и отсылается в первую очередь).
В прогрессивной отрисовке используются техники ленивой загрузки и приоритизации контента (например не загружать изначально все CSS-стили в <head>, а только важные, остальные загрузить в конце <body>).
Для чего предназначены линтеры (code style linting tool)?
Для проверки кода на стилистические и программные ошибки.
Опишите весь процесс, начиная с ввода адреса сайта в адресную строку до окончания его загрузки на экране.
Что такое History API в браузере?
Даёт доступ к управлению историей браузера в рамках текущей сессии. Новая сессия - новая вкладка или окно.
Можно двигаться по истории с помощью объекта window.history, можно двигаться вперёд и управлять содержимым.
Объясните разницу между cookie, sessionStorage и localStorage (web storage).
Механизмы хранения ключ-значения. Могут хранить только строки.
sessionStorage - используется через JS, доступен только в рамках вкладки и до её закрытия
localStorage - используется через JS, доступен в рамках всего сайта для всех вкладок и после закрытия вкладок
cookie - может задаваться сервером или через JS, срок хранения настраивается, отправляется на сервер при каждом запросе
Ключевые отличия:
Что такое безопасные cookies (Secure cookies)? Что такое HttpOnly cookies?
Безопасные cookies - только по HTTPS.
HttpOnly - нельзя работать через JS с cookies.
Что такое IndexedDB в браузере? Преимущества IndexedDB?
Это база данных в браузере. Позволяет хранить больше данных, чем localStorage и более сложная в работе с ней, но и больше контроля.
Механизм установки сеанса между клиентом и сервером?
Клиент отправляет запрос на сервер, сервер получает запрос, обрабатывает и создаёт уникальный ID сессии. В ответе отправляет в куках этот ID. Затем клиент будет делать новый запрос уже с полученным ID.