Backend
3.95K subscribers
36 photos
710 links
Комьюнити Backend программистов.
Python, Java, Golang, PHP, C#, C/C++, DevOps

Сайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp
Download Telegram
📌 Какие виды тестирования ты знаешь ?

💬 Спрашивают в 12% собеседований

🤔 Я знаю множество видов тестирования программного обеспечения, которые можно классифицировать по разным критериям. Вот основные из них:

🤔 По уровню тестирования:

1️⃣ Модульное тестирование (Unit Testing):

Проверяет отдельные модули или компоненты приложения на корректность работы.

2️⃣ Интеграционное тестирование (Integration Testing):

Проверяет взаимодействие между различными модулями или компонентами.

3️⃣ Системное тестирование (System Testing):

Тестирует всю систему в целом на соответствие требованиям.

4️⃣ Приёмочное тестирование (Acceptance Testing):

Проверяет систему на соответствие бизнес-требованиям и готовность к выпуску.

🤔 По методу тестирования:

1️⃣ Белое (прозрачное) тестирование (White-box Testing):

Тестирует внутреннюю структуру или работу приложения.

2️⃣ Чёрное (закрытое) тестирование (Black-box Testing):

Тестирует функциональность системы без знания внутренней структуры.

3️⃣ Серое тестирование (Gray-box Testing):

Комбинация белого и черного тестирования.

🤔 По цели тестирования:

1️⃣ Функциональное тестирование (Functional Testing):

Проверяет функциональность системы на соответствие требованиям.

2️⃣ Нефункциональное тестирование (Non-functional Testing):

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

🤔 По типу тестирования:

1️⃣ Регрессионное тестирование (Regression Testing):

Проверяет, что изменения в коде не вызвали новых ошибок.

2️⃣ Ретестирование (Re-testing):

Повторное тестирование после исправления дефектов.

3️⃣ Тестирование производительности (Performance Testing):

Включает нагрузочное (Load Testing), стрессовое (Stress Testing) и тестирование стабильности (Stability Testing).

4️⃣ Тестирование безопасности (Security Testing):

Проверяет систему на наличие уязвимостей и защищённость данных.

5️⃣ Тестирование удобства использования (Usability Testing):

Проверяет, насколько система удобна и понятна для пользователя.

6️⃣ Альфа-тестирование (Alpha Testing):

Проводится внутри организации разработчика.

7️⃣ Бета-тестирование (Beta Testing):

Проводится внешними пользователями в реальных условиях.

🤔 По степени автоматизации:

1️⃣ Ручное тестирование (Manual Testing):

Тестирование, выполняемое вручную тестировщиками.

2️⃣ Автоматизированное тестирование (Automated Testing):

Тестирование с использованием специальных инструментов и скриптов.

🤔 По специфике тестирования:

1️⃣ Тестирование совместимости (Compatibility Testing):

Проверяет систему на совместимость с различными устройствами, браузерами, операционными системами и т.д.

2️⃣ Тестирование локализации (Localization Testing):

Проверяет корректность адаптации приложения к различным языкам и регионам.

3️⃣ Тестирование установки (Installation Testing):

Проверяет процесс установки и настройки системы.

4️⃣ Тестирование восстановления (Recovery Testing):

Проверяет способность системы восстанавливаться после сбоев.

🤔 Заключение:

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

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
🤔 Какой из перечисленных методов аутентификации основан на использовании токенов?
Anonymous Quiz
11%
Basic Auth
59%
OAuth
22%
API Key
8%
Session
👍1
📌 Что такое SOAP ?

💬 Спрашивают в 10% собеседований

🤔 SOAP (Simple Object Access Protocol) — это протокол для обмена структурированными сообщениями в распределённых вычислительных средах. Он основан на XML и используется для передачи данных между различными приложениями через сеть, часто по протоколу HTTP или SMTP.

🤔 Основные характеристики SOAP:

1️⃣ Протокол на основе XML:

SOAP сообщения формируются в формате XML, что обеспечивает независимость от платформы и языка программирования.

2️⃣ Стандартизованное сообщение:

SOAP сообщение состоит из обязательных и необязательных элементов:

Envelope: Определяет начало и конец сообщения.

Header: Опциональный элемент, содержащий метаинформацию о сообщении.

Body: Основное содержимое сообщения, включающее данные и команды.

Fault: Опциональный элемент для обработки ошибок.

3️⃣ Транспортные протоколы:

Чаще всего используется с HTTP/HTTPS, но может работать и с другими протоколами, такими как SMTP.

4️⃣ Расширяемость:

SOAP легко расширяется, позволяя добавлять дополнительные функциональные возможности через заголовки и другие элементы.

5️⃣ Независимость от платформы и языка:

SOAP может быть использован в любой среде и на любом языке программирования, что обеспечивает высокую совместимость между различными системами.

🤔 Пример SOAP-сообщения:
<soapenv:Envelope xmlns:soapenv="https://schemas.xmlsoap.org/soap/envelope/" xmlns:example="https://example.com/">
<soapenv:Header/>
<soapenv:Body>
<example:getExampleRequest>
<example:parameter1>Value1</example:parameter1>
<example:parameter2>Value2</example:parameter2>
</example:getExampleRequest>
</soapenv:Body>
</soapenv:Envelope>


🤔 Преимущества SOAP:

1️⃣ Независимость от платформы и языка:

SOAP может взаимодействовать с любыми системами, поддерживающими XML и HTTP/SMTP.

2️⃣ Строгое соблюдение стандартов:

SOAP основывается на строгих стандартах, что обеспечивает надежность и предсказуемость взаимодействия.

3️⃣ Расширяемость:

Легко адаптируется для специфических потребностей через расширения и заголовки.

4️⃣ Встроенная обработка ошибок:

Использует элемент Fault для детальной обработки и передачи ошибок.

5️⃣ Поддержка сложных операций:

Подходит для сложных операций и распределённых транзакций.

🤔 Недостатки SOAP:

1️⃣ Сложность:

SOAP-сообщения могут быть сложными и громоздкими из-за использования XML.

2️⃣ Производительность:

Использование XML увеличивает объем передаваемых данных, что может снизить производительность.

3️⃣ Оверхед:

Требует дополнительных ресурсов для обработки и передачи XML-сообщений.

🤔 Заключение:

SOAP является мощным и гибким протоколом для обмена сообщениями в распределённых системах, обеспечивая высокий уровень совместимости и расширяемости. Однако его сложность и накладные расходы делают его менее предпочтительным для простых веб-сервисов, где часто используется более легковесный REST.

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🤔 Какой из перечисленных фреймворков является фреймворком для разработки backend на Java?
Anonymous Quiz
86%
Spring
5%
Flask
3%
Ruby on Rails
6%
Express.js
📌 Какие join бывают?

💬 Спрашивают в 8% собеседований

В реляционных базах данных, операции объединения (JOIN) позволяют объединить строки из двух или более таблиц на основе связанных между собой столбцов. Существует несколько типов JOIN, каждый из которых имеет свои особенности и применим для разных ситуаций. Рассмотрим основные типы JOIN:

1️⃣ INNER JOIN

Описание: Объединяет строки из обеих таблиц, если они удовлетворяют условию объединения.
Применение: Когда необходимо выбрать только те строки, которые имеют соответствующие значения в обеих таблицах.
SELECT *
FROM таблица1
INNER JOIN таблица2
ON таблица1.ключ = таблица2.ключ;


2️⃣ LEFT JOIN (или LEFT OUTER JOIN)

Описание: Возвращает все строки из левой таблицы и соответствующие строки из правой таблицы. Если соответствующей строки в правой таблице нет, в результирующем наборе данных для столбцов правой таблицы будут значения NULL.
Применение: Когда необходимо выбрать все строки из одной таблицы и соответствующие данные из другой таблицы, если они существуют.
SELECT *
FROM таблица1
LEFT JOIN таблица2
ON таблица1.ключ = таблица2.ключ;


3️⃣ RIGHT JOIN (или RIGHT OUTER JOIN)

Описание: Возвращает все строки из правой таблицы и соответствующие строки из левой таблицы. Если соответствующей строки в левой таблице нет, в результирующем наборе данных для столбцов левой таблицы будут значения NULL.
Применение: Когда необходимо выбрать все строки из одной таблицы (правой) и соответствующие данные из другой таблицы (левой), если они существуют.
SELECT *
FROM таблица1
RIGHT JOIN таблица2
ON таблица1.ключ = таблица2.ключ;


4️⃣ FULL JOIN (или FULL OUTER JOIN)

Описание: Возвращает все строки, когда есть совпадения либо в левой, либо в правой таблице. Если строки не соответствуют в одной из таблиц, для этой таблицы будут значения NULL.
Применение: Когда необходимо выбрать все строки из обеих таблиц, независимо от того, есть ли соответствующие строки в другой таблице.
SELECT *
FROM таблица1
FULL JOIN таблица2
ON таблица1.ключ = таблица2.ключ;


5️⃣ CROSS JOIN

Описание: Возвращает декартово произведение двух таблиц, то есть все возможные комбинации строк из обеих таблиц.
Применение: Когда необходимо создать комбинации всех строк из обеих таблиц. Используется редко и с осторожностью, так как может привести к очень большому количеству строк.
SELECT *
FROM таблица1
CROSS JOIN таблица2;


6️⃣ SELF JOIN

Описание: Применяется для объединения таблицы самой с собой. Обычно используется для сравнения строк внутри одной и той же таблицы.
Применение: Когда необходимо сопоставить строки одной таблицы друг с другом, например, для анализа иерархий или поиска парных записей.
SELECT A.*
FROM таблица A, таблица B
WHERE A.ключ = B.ключ;


8️⃣ NATURAL JOIN

Описание: Автоматически объединяет таблицы по всем столбцам с одинаковыми именами и типами данных.
Применение: Когда у таблиц есть столбцы с одинаковыми именами, и нужно объединить их без явного указания условий объединения.
SELECT *
FROM таблица1
NATURAL JOIN таблица2;


🤔 Заключение

JOIN-операции являются мощным инструментом для объединения данных из нескольких таблиц в реляционных базах данных. Правильный выбор типа JOIN зависит от конкретных требований запроса и структуры данных. Понимание различий между INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN, CROSS JOIN, SELF JOIN и NATURAL JOIN позволяет эффективно работать с реляционными данными.

🤔 Краткий ответ:

Основные типы JOIN: INNER JOIN (объединяет только совпадающие строки), LEFT JOIN (все строки из левой таблицы и совпадающие строки из правой), RIGHT JOIN (все строки из правой таблицы и совпадающие строки из левой), FULL JOIN (все строки из обеих таблиц), CROSS JOIN (декартово произведение всех строк), SELF JOIN (объединение таблицы самой с собой), NATURAL JOIN (автоматическое объединение по одинаковым столбцам).

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🤔 Какой из перечисленных инструментов используется для оркестрации контейнеров?
Anonymous Quiz
2%
GitLab
3%
Terraform
91%
Kubernetes
4%
Nginx
📌 Что такое виртуальное окружение?

💬 Спрашивают в 7% собеседований

Виртуальное окружение: Что это такое и зачем оно нужно

🤔 Определение

Виртуальное окружение (virtual environment) — это изолированная среда для выполнения программного кода, которая позволяет создавать независимые друг от друга пространства для различных проектов. В каждом таком окружении могут быть установлены специфические для проекта зависимости (библиотеки, пакеты), которые не будут пересекаться с зависимостями других проектов.

🤔 Зачем нужно

Виртуальные окружения решают несколько важных задач:

1️⃣ Изоляция зависимостей: В разных проектах могут использоваться различные версии одних и тех же библиотек. Виртуальные окружения позволяют избежать конфликтов версий, создавая изолированные пространства для каждого проекта.

2️⃣ Упрощение управления зависимостями: Легко установить, обновить или удалить зависимости без риска повлиять на другие проекты. Это особенно полезно при работе над проектами с долгим жизненным циклом, где могут возникать проблемы совместимости.

3️⃣ Повышение безопасности: Изоляция окружения помогает ограничить доступ к критически важным системным ресурсам и защищает основную систему от потенциально вредоносного кода.

4️⃣ Удобство разработки и тестирования: Виртуальные окружения позволяют разработчикам легко переключаться между проектами и их зависимостями, что упрощает процесс тестирования и отладки.

5️⃣ Совместимость и переносимость: Проекты с виртуальными окружениями легче перенести на другие системы или передать другим разработчикам. Достаточно скопировать окружение вместе с проектом, чтобы получить полностью функционирующую копию.

🤔 Как используется

Для создания и управления виртуальными окружениями существуют различные инструменты. В Python, например, наиболее распространенными являются:

venv: Встроенный модуль в Python, позволяющий создавать легковесные виртуальные окружения.

virtualenv: Более функциональный инструмент, особенно полезный для старых версий Python.

conda: Инструмент, который управляет как пакетами, так и виртуальными окружениями, поддерживающий не только Python, но и другие языки программирования.

Процесс использования виртуальных окружений обычно включает следующие шаги:

1️⃣ Создание окружения: Команда для создания нового окружения (например, python -m venv env для venv).

2️⃣ Активация окружения: Команда для активации окружения (например, source env/bin/activate на Unix-подобных системах или .\env\Scripts\activate на Windows).

3️⃣ Установка зависимостей: Использование менеджера пакетов (например, pip) для установки необходимых библиотек.

4️⃣ Деактивация окружения: Команда для выхода из окружения (например, deactivate).

🤔 Краткий ответ

Виртуальное окружение — это изолированная среда для выполнения программного кода, позволяющая устанавливать и управлять зависимостями отдельно для каждого проекта, избегая конфликтов версий и упрощая разработку, тестирование и переносимость проектов.

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какой формат данных обычно используется для обмена данными между клиентом и сервером в веб-приложениях?
Anonymous Quiz
7%
XML
1%
CSV
91%
JSON
0%
YAML
📌 Как работает хеш таблица?

💬 Спрашивают в 7% собеседований

Хеш-таблица: Что это такое и как она работает

🤔 Определение

Хеш-таблица (hash table) — это структура данных, которая позволяет эффективно хранить и извлекать пары "ключ-значение". Она использует хеш-функцию для преобразования ключа в индекс массива, где хранится соответствующее значение.

🤔 Основные концепции

1️⃣ Хеш-функция: Это функция, которая принимает ключ и возвращает индекс массива, где должно храниться значение. Хорошая хеш-функция должна равномерно распределять ключи по всему пространству индексов, чтобы минимизировать количество коллизий.

2️⃣ Коллизии: Это ситуации, когда два разных ключа хешируются в один и тот же индекс. Существуют различные методы разрешения коллизий:

Метод цепочек (chaining): В каждой ячейке массива хранится список (или другая структура данных), содержащий все значения, соответствующие этому индексу.

Открытая адресация (open addressing): При коллизии ищется другая свободная ячейка по определённому алгоритму (например, линейное пробирование, квадратичное пробирование или двойное хеширование).

3️⃣ Размер хеш-таблицы: Количество ячеек (бакетов) в массиве. Оптимальный размер зависит от количества ключей и используемой хеш-функции. Обычно размер выбирается простым числом для уменьшения вероятности коллизий.

🤔 Как работает хеш-таблица

1️⃣ Вставка элемента:

Хеш-функция вычисляет индекс для ключа.

Если ячейка пуста, значение записывается в неё.

Если ячейка занята (коллизия), применяется выбранный метод разрешения коллизий.

2️⃣ Поиск элемента:

Хеш-функция вычисляет индекс для ключа.

Проверяется ячейка по этому индексу.

Если ключи совпадают, возвращается значение.

Если ключи не совпадают (коллизия), применяется метод разрешения коллизий до нахождения нужного ключа или пустой ячейки (что означает отсутствие ключа).

3️⃣ Удаление элемента:

Хеш-функция вычисляет индекс для ключа.

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

🤔 Преимущества и недостатки

🤔 Преимущества:

Быстродействие: Хеш-таблицы обеспечивают амортизированное время выполнения операций вставки, удаления и поиска в среднем за O(1).

Простота использования: Они интуитивно понятны и легко реализуются.

🤔 Недостатки:

Коллизии: Хотя хорошие хеш-функции минимизируют их количество, они всё же могут возникать, снижая производительность.

Память: Хеш-таблицы требуют значительных объёмов памяти для хранения данных, особенно при малой заполненности.

🤔 Применение

Хеш-таблицы широко используются в:

Реализации словарей и ассоциативных массивов.

Кэшировании данных для быстрого доступа.

Реализации множества.

Хранении и управлении сессиями и идентификаторами в веб-приложениях.

🤔 Краткий ответ

Хеш-таблица — это структура данных, использующая хеш-функцию для быстрого преобразования ключей в индексы массива, что позволяет эффективно выполнять операции вставки, поиска и удаления элементов. Она использует методы разрешения коллизий для обеспечения корректной работы при возникновении конфликтов индексов.

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🤔 Какой из перечисленных методов используется для удаления ресурса в REST API?
Anonymous Quiz
1%
GET
1%
POST
2%
PUT
96%
DELETE
🤔 Что знаешь о хеш функции?

Хеш-функция — это функция, которая принимает входные данные (ключ) и возвращает фиксированное число, называемое хешем (или хеш-значением). Основная цель хеш-функции — преобразовать произвольные данные в числовое значение определенного диапазона.

🚩Основные свойства хеш-функции:

🟠 Детерминированность: Хеш-функция всегда должна возвращать одно и то же хеш-значение для одного и того же входного значения.
🟠Равномерное распределение: Хорошая хеш-функция должна равномерно распределять хеш-значения по всему диапазону, чтобы минимизировать количество коллизий.
🟠Быстрота вычисления: Хеш-функция должна быть достаточно быстрой, чтобы не замедлять общую производительность алгоритмов, которые её используют.
🟠Минимизация коллизий: Коллизия возникает, когда два разных входных значения дают одно и то же хеш-значение. Хорошая хеш-функция должна минимизировать вероятность таких случаев.

🚩Применение хеш-функций:

🟠Хеш-таблицы: Используются для вычисления индекса массива, где будет храниться значение, связанное с ключом. Это позволяет быстро выполнять операции вставки, удаления и поиска.
🟠Криптография: Криптографические хеш-функции (например, SHA-256, MD5) используются для обеспечения целостности данных, создания цифровых подписей и безопасного хранения паролей.
🟠Контроль целостности данных: Хеш-функции применяются для проверки целостности данных при передаче или хранении, позволяя выявлять ошибки или изменения в данных.
🟠Генерация уникальных идентификаторов: Хеш-функции используются для генерации уникальных идентификаторов (например, UUID), основываясь на входных данных.

🚩Примеры хеш-функций

🟠Простая хеш-функция: Эта функция возвращает остаток от деления длины ключа на размер таблицы. Она проста, но не обеспечивает равномерное распределение.
def simple_hash(key, table_size):
return len(key) % table_size


🟠Хеш-функция для строк (например, DJB2):
def djb2_hash(key):
hash_value = 5381
for char in key:
hash_value = ((hash_value << 5) + hash_value) + ord(char) # hash_value * 33 + ord(char)
return hash_value


🚩Методы разрешения коллизий

🟠Метод цепочек (chaining): В каждой ячейке массива хранится список значений, которые хешируются в один и тот же индекс.
🟠Открытая адресация (open addressing): При коллизии ищется другая свободная ячейка по определённому алгоритму (например, линейное пробирование, квадратичное пробирование или двойное хеширование).

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🤔 Какой из перечисленных инструментов используется для управления конфигурацией инфраструктуры как код (IaC)?
Anonymous Quiz
15%
Docker
33%
Kubernetes
39%
Ansible
13%
Prometheus
🤔 Что такое IP?

IP (Internet Protocol) — это основной протокол сетевого уровня, который используется для передачи данных через интернет и другие сети. IP отвечает за маршрутизацию и адресацию пакетов данных, обеспечивая их доставку от отправителя к получателю.

🚩Основные аспекты IP:

Адресация: IP адресация обеспечивает уникальные адреса для устройств в сети, что позволяет им взаимодействовать друг с другом. Существует две версии IP адресации:
🟠Использует 32-битные адреса, что позволяет создать около 4,3 миллиарда уникальных адресов.
🟠Пример IPv4 адреса: 192.168.0.1
🟠IPv6 (Internet Protocol version 6):
🟠Использует 128-битные адреса, что позволяет создать около 340 ундециллионов (3,4×10^38) уникальных адресов.
🟠Пример IPv6 адреса: 2001:0db8:85a3:0000:0000:8a2e:0370:7334

Маршрутизация: IP отвечает за определение пути для передачи пакетов от источника к назначению через сеть, включая множество промежуточных маршрутизаторов. Это позволяет передавать данные через различные сети и соединения.

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

Пакетная передача: IP передает данные в виде пакетов. Каждый пакет содержит заголовок с информацией об адресации и маршрутизации, а также полезную нагрузку с передаваемыми данными.

🚩Основные функции IP:

🟠Адресация устройств: IP предоставляет уникальные адреса для каждого устройства в сети, что позволяет им идентифицировать и находить друг друга.
🟠Маршрутизация пакетов: IP определяет маршрут для пакетов данных через различные сети и маршрутизаторы до их конечного назначения.
🟠Фрагментация и сборка: IP разбивает большие пакеты на более мелкие фрагменты для передачи через сеть и собирает их обратно у получателя.
🟠Проверка целостности: IP включает контрольные суммы для проверки целостности заголовка пакета, но не обеспечивает контроль целостности данных.

🚩Преимущества IP:

🟠Универсальность: IP является стандартным протоколом для передачи данных в интернете и поддерживается всеми сетевыми устройствами.
🟠Гибкость: IP может передавать данные через различные типы сетей и соединений.
🟠Масштабируемость: IPv6 предоставляет практически неограниченное количество адресов для подключения новых устройств к сети.

🚩Недостатки IP:

🟠Безопасность: IP сам по себе не предоставляет механизмов для шифрования или аутентификации данных, что делает его уязвимым для атак.
🟠Отсутствие гарантии доставки: IP не гарантирует доставку пакетов, их последовательность или целостность данных, полагаясь на протоколы более высокого уровня, такие как TCP, для обеспечения надежности.

🚩Взаимодействие с другими протоколами

IP работает в комбинации с другими протоколами, чтобы обеспечить полное взаимодействие в сети:
🟠TCP (Transmission Control Protocol): Работает поверх IP и обеспечивает надежную передачу данных, проверку ошибок и управление потоком.
🟠UDP (User Datagram Protocol): Также работает поверх IP, но не обеспечивает надежность, что делает его подходящим для приложений, требующих высокой скорости и низкой задержки, таких как потоковая передача и игры.
🟠ICMP (Internet Control Message Protocol): Используется для передачи диагностических и управляющих сообщений, таких как запросы ping.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какой из следующих протоколов обычно используется для передачи данных в REST API?
Anonymous Quiz
2%
FTP
2%
SMTP
95%
HTTP
1%
POP3
🔥1
🤔 Что такое Web Sockets (веб сокет)?

WebSockets (веб-сокеты) — это коммуникационный протокол, предоставляющий возможность устанавливать постоянное, двустороннее соединение между клиентом (обычно веб-браузером) и сервером через один TCP-соединение. Это позволяет обмениваться данными в реальном времени с минимальной задержкой и без необходимости повторного открытия соединения для каждого обмена сообщениями, как это происходит в традиционных HTTP-соединениях.

🚩Основные характеристики WebSockets:

🟠Двусторонняя коммуникация: WebSockets поддерживают полноценную двустороннюю (или full-duplex) коммуникацию, что позволяет как клиенту, так и серверу отправлять данные в любое время без необходимости инициирования запроса.
🟠Постоянное соединение: После установления WebSocket-соединение остается открытым, что значительно уменьшает задержки, связанные с установлением новых соединений, характерных для HTTP-запросов.
🟠Меньший накладной расход: WebSockets используют меньше заголовков по сравнению с HTTP-запросами, что делает передачу данных более эффективной и менее затратной по времени и ресурсам.
🟠Протокол: WebSocket протокол стандартизирован в RFC 6455 и поддерживается большинством современных веб-браузеров. Соединение начинается с обычного HTTP-запроса, который затем "обновляется" до WebSocket-соединения через HTTP-заголовок Upgrade.

🚩Как работает WebSocket:

🟠Установление соединения: Клиент отправляет HTTP-запрос с заголовком Upgrade: websocket на сервер, указывая на желание перейти к протоколу WebSocket. Сервер отвечает подтверждением, если поддерживает WebSockets, и соединение устанавливается.
🟠Передача данных: После установления соединения клиент и сервер могут обмениваться данными в обе стороны по мере необходимости. Сообщения передаются как фреймы (frames), которые могут содержать текстовые или бинарные данные.
🟠Закрытие соединения: Соединение может быть закрыто любой стороной в любой момент времени с отправкой соответствующего фрейма закрытия.

🚩Применения WebSocket:

🟠Реальное время: Приложения, требующие обновлений в реальном времени, такие как чаты, системы обмена сообщениями, онлайн-игры, торги на биржах.
🟠Потоковая передача данных: Веб-сокеты идеально подходят для приложений, передающих данные в реальном времени, таких как спортивные трансляции или финансовые данные.
🟠Уведомления и оповещения: Приложения, отправляющие мгновенные уведомления пользователям, например, социальные сети или системы мониторинга.
🟠Коллаборативные инструменты: Инструменты для совместной работы, такие как совместное редактирование документов или доски с заметками.

Преимущества WebSocket:
🟠Эффективность: Меньший накладной расход и постоянное соединение делают WebSockets более эффективными для приложений, требующих частого обмена данными.
🟠Скорость: WebSockets обеспечивают более низкую задержку, что делает их идеальными для приложений, работающих в реальном времени.
🟠Простота использования: WebSockets имеют простой API, который легко интегрируется с современными веб-приложениями.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🤔 Какой из следующих типов баз данных лучше всего подходит для анализа больших данных?
Anonymous Quiz
41%
Реляционные базы данных
14%
Документные базы данных
16%
Ключ-значение базы данных
28%
Колонковые базы данных
🤔 Расскажи про https

HTTPS (HyperText Transfer Protocol Secure) — это расширение протокола HTTP, используемое для безопасного обмена данными между веб-браузером и веб-сервером. HTTPS обеспечивает конфиденциальность, целостность и аутентичность передаваемых данных, используя шифрование, аутентификацию и проверку целостности.

🚩Основные аспекты HTTPS

🟠Шифрование: HTTPS использует шифрование для защиты данных, передаваемых между клиентом и сервером. Шифрование делает данные нечитаемыми для посторонних, предотвращая их перехват и кражу. Это достигается с помощью протоколов SSL (Secure Sockets Layer) и его преемника TLS (Transport Layer Security).

🟠Аутентификация: Аутентификация подтверждает, что клиент и сервер являются теми, за кого они себя выдают. Это предотвращает атаки типа "человек посередине" (man-in-the-middle attacks). Аутентификация осуществляется с помощью цифровых сертификатов, которые выдаются доверенными центрами сертификации (Certificate Authorities, CA).

🟠Целостность данных: Целостность данных гарантирует, что данные не были изменены во время передачи. Это достигается с помощью хеш-функций и контрольных сумм, которые проверяются на каждой стороне соединения.

🚩Как работает HTTPS

🟠Инициация соединения: Клиент (например, веб-браузер) инициирует соединение с сервером, отправляя HTTPS-запрос.

🟠Обмен сертификатами: Сервер отправляет клиенту свой цифровой сертификат. Сертификат содержит публичный ключ сервера и информацию о центре сертификации.

🟠Проверка сертификата: Клиент проверяет подлинность сертификата, используя список доверенных центров сертификации. Если сертификат действителен, клиент продолжает установку защищённого соединения.

🟠Установка сеансового ключа: Клиент и сервер договариваются о сеансовом ключе, используя асимметричное шифрование. Этот ключ будет использоваться для шифрования данных в течение сеанса.

🟠Шифрование данных: Данные передаются между клиентом и сервером в зашифрованном виде, что обеспечивает их конфиденциальность и целостность.

🚩Преимущества HTTPS

🟠Безопасность: HTTPS защищает данные от перехвата и подделки, что особенно важно для передачи конфиденциальной информации, такой как пароли и номера кредитных карт.

🟠Доверие пользователей: Наличие HTTPS повышает доверие пользователей к веб-сайту, так как современные браузеры отмечают сайты с HTTPS как безопасные.

🟠SEO (Поисковая оптимизация): Поисковые системы, такие как Google, отдают предпочтение сайтам с HTTPS и могут ранжировать их выше в результатах поиска.

🟠Соответствие стандартам: Многие нормативные акты и стандарты требуют использования HTTPS для защиты данных, например, GDPR в Европейском Союзе.

🚩Как настроить HTTPS

🟠Получение сертификата: Приобретите SSL/TLS сертификат у доверенного центра сертификации (CA) или используйте бесплатные сертификаты, такие как Let's Encrypt.

🟠Установка сертификата: Установите полученный сертификат на веб-сервер. Процесс установки зависит от используемого веб-сервера (например, Apache, Nginx, IIS).

🟠Настройка перенаправлений:Настройте сервер так, чтобы все HTTP-запросы перенаправлялись на HTTPS.

🟠Обновление ссылок и ресурсов: Убедитесь, что все ссылки и ресурсы на сайте используют HTTPS, чтобы избежать смешанного контента (mixed content), когда части страницы загружаются по HTTP.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🤔 Какой из следующих инструментов используется для управления версиями в разработке?
Anonymous Quiz
3%
Docker
94%
Git
1%
Jenkins
1%
Kubernetes
🤔 Что можешь рассказать про HTML?

HTML (HyperText Markup Language) — это основной язык разметки, используемый для создания и структурирования веб-страниц. HTML позволяет создавать веб-страницы с текстом, изображениями, ссылками, формами и другими элементами, которые могут быть отображены в браузере. Он является фундаментом веб-технологий и работает в тандеме с CSS (Cascading Style Sheets) и JavaScript для создания полноценных веб-приложений.

🚩Основные аспекты HTML:

Структура документа: HTML-документ состоит из различных элементов, каждый из которых представлен тегами. Теги определяют, как различные части документа должны быть отображены в браузере.
🟠 <!DOCTYPE html>: Определяет тип документа и версию HTML.
🟠 <html>: Корневой элемент документа.
🟠<head>: Содержит метаданные о документе, такие как теги <title>, <meta>, стили и скрипты.
🟠 <body>: Содержит видимую часть документа, включая текст, изображения, ссылки и другие элементы.

Элементы и теги: HTML использует теги для определения различных элементов. Теги обычно идут в парах: открывающий тег <tag> и закрывающий тег </tag>. Некоторые теги являются самозакрывающимися, например, <img /> и <br />.
🟠<h1> - <h6>: Заголовки различных уровней.
🟠 <p>: Параграф текста.
🟠<a>: Гиперссылка.
🟠 <img>: Изображение.
🟠<ul>, <ol>, <li>: Ненумерованные и нумерованные списки и элементы списка.
🟠<table>, <tr>, <td>: Таблицы и их элементы.

Атрибуты: Теги могут иметь атрибуты, которые предоставляют дополнительную информацию о элементе. Атрибуты записываются внутри открывающего тега и имеют формат имя="значение".
🟠href для <a>: Указывает URL, на который ведёт ссылка.
🟠src для <img>: Указывает путь к изображению.
🟠alt для <img>: Описывает изображение для поисковых систем и пользователей с ограниченными возможностями.

Формы: HTML позволяет создавать интерактивные формы для сбора данных от пользователей. Формы могут содержать различные типы полей ввода, такие как текстовые поля, радиокнопки, чекбоксы и кнопки отправки.
🟠 <input>: Общее поле ввода. Атрибут type определяет тип ввода (например, text, password, email).
🟠<textarea>: Многострочное текстовое поле.
🟠 <select> и <option>: Выпадающий список.
🟠 <button>: Кнопка.

🚩Преимущества HTML:

🟠Простота использования: HTML легко изучить и использовать. Он не требует сложных инструментов для написания или редактирования.
🟠Совместимость: HTML поддерживается всеми веб-браузерами, что обеспечивает кроссплатформенность и широкую доступность.
🟠Расширяемость: HTML можно расширять с помощью CSS и JavaScript для создания более сложных и интерактивных веб-страниц.
🟠Стандартизация: HTML является стандартом, поддерживаемым W3C (World Wide Web Consortium), что обеспечивает его надежность и предсказуемость.

🚩Как используется HTML:

🟠Создание веб-страниц:
Основное применение HTML — это создание веб-страниц и веб-приложений. Каждый веб-сайт, который вы посещаете, использует HTML для структурирования своего контента.
🟠Электронные письма:
HTML также используется для создания форматированных электронных писем с текстом, изображениями и ссылками.
🟠Документация и справочные системы:
HTML используется для создания интерактивной документации и справочных систем, которые могут включать текст, ссылки, изображения и другие элементы.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🤔 Какой из следующих HTTP методов используется для создания нового ресурса?
Anonymous Quiz
7%
GET
83%
POST
10%
PUT
1%
DELETE