PHP | Вопросы собесов
الذهاب إلى القناة على Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv
إظهار المزيد2 343
المشتركون
-124 ساعات
-47 أيام
-2430 أيام
أرشيف المشاركات
Что такое уровни изоляции транзакций ?
Спросят с вероятностью 13%
Уровни изоляции транзакций — это концепция в системах управления базами данных (СУБД), определяющая степень видимости изменений, внесенных одной транзакцией, для других транзакций. Эти уровни помогают контролировать конкуренцию и обеспечивают целостность данных, минимизируя возможные проблемы, такие как «грязное чтение», «неповторяющееся чтение» и «фантомное чтение».
Основные уровни
1️⃣Read Uncommitted (Чтение неподтвержденных данных)
✅Описание: Транзакции могут видеть изменения, внесенные другими транзакциями, даже если эти изменения еще не были зафиксированы (коммитированы).
Проблемы: Возможны грязные чтения (Dirty Reads), когда транзакция читает данные, которые могут быть откатаны другой транзакцией.
2️⃣Read Committed (Чтение подтвержденных данных)
✅Описание: Транзакции видят только те изменения, которые были зафиксированы другими транзакциями.
Проблемы: Устраняет грязные чтения, но могут возникать неповторяющиеся чтения (Non-repeatable Reads), когда одна транзакция дважды читает данные и получает разные результаты из-за изменений, внесенных другой транзакцией.
3️⃣Repeatable Read (Повторяемое чтение)
✅Описание: Транзакция, которая дважды читает одни и те же данные, будет видеть один и тот же результат, независимо от изменений, внесенных другими транзакциями. Однако возможны фантомные чтения (Phantom Reads), когда при повторном запросе могут появляться новые строки, добавленные другими транзакциями.
Проблемы: Устраняет неповторяющиеся чтения, но фантомные чтения могут все еще происходить.
4️⃣Serializable (Сериализуемый)
✅Описание: Обеспечивает полную изоляцию транзакций, делая их выполнение последовательным, как будто они выполняются одна за другой. Это самый высокий уровень изоляции, исключающий грязные чтения, неповторяющиеся чтения и фантомные чтения.
Проблемы: Этот уровень может значительно снизить производительность системы из-за блокировок и ожиданий.
Примеры проблем
1️⃣Грязное чтение (Dirty Read):
✅Транзакция A изменяет данные, но не фиксирует изменения.
✅Транзакция B читает эти измененные данные.
✅Транзакция A откатывает изменения.
✅Теперь транзакция B обладает некорректными данными.
2️⃣Неповторяющееся чтение (Non-repeatable Read):
✅Транзакция A читает данные.
✅Транзакция B изменяет эти данные и фиксирует изменения.
✅Транзакция A повторно читает те же данные и получает другой результат.
3️⃣Фантомное чтение (Phantom Read):
✅Транзакция A выполняет запрос на выборку с некоторым условием.
✅Транзакция B добавляет новые строки, удовлетворяющие этому условию, и фиксирует изменения.
✅Транзакция A повторно выполняет запрос и получает дополнительные строки, которые не были видны при первом запросе.
Уровни изоляции транзакций определяют, как и когда изменения, внесенные одной транзакцией, становятся видимыми для других транзакций. Они помогают предотвратить проблемы, такие как грязное чтение, неповторяющееся чтение и фантомное чтение, при этом каждый уровень обеспечивает разный баланс между целостностью данных и производительностью системы.
👉 Можно посмотреть примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых
🤔 Какой интерфейс нужно использовать для работы с PDO в PHP?
Чем отличается PHP от C++ ?
Спросят с вероятностью 13%
PHP и C++ — это два различных языка программирования, каждый из которых имеет свои особенности, предназначения и области применения. Рассмотрим основные различия между ними:
1️⃣Цель и область применения
PHP:
✅Основное применение PHP — это разработка веб-приложений и серверных скриптов.
✅Интегрируется с HTML и используется для создания динамических веб-страниц.
C++:
✅Является языком общего назначения, используемым для системного программирования, разработки приложений, игр, драйверов и встраиваемых систем.
✅Он часто применяется в задачах, требующих высокой производительности и контроля над аппаратными ресурсами.
2️⃣Типизация
PHP:
✅Является языком с динамической типизацией. Это означает, что тип переменной определяется во время выполнения программы, и его можно изменить в процессе работы скрипта.
C++:
✅Имеет статическую типизацию, где тип переменной необходимо указывать во время компиляции. Это делает код более предсказуемым и позволяет выявлять ошибки на этапе компиляции.
3️⃣Синтаксис и структура
PHP:
✅Синтаксис более гибкий и менее строгий по сравнению с C++.
✅Коды обычно встраиваются в HTML, что делает его удобным для веб-разработки.
C++:
✅Имеет строгий синтаксис, требующий точного определения структур данных и функций.
✅В нем код обычно разделяется на файлы заголовков (.h) и файлы исходного кода (.cpp).
4️⃣Управление памятью
PHP:
✅Управление памятью автоматизировано благодаря сборке мусора (garbage collection), что облегчает работу.
C++:
✅Управление памятью часто осуществляется вручную с помощью оператора
new для выделения памяти и delete для её освобождения. Это предоставляет больше контроля, но также требует большей ответственности от разработчика.
5️⃣Компиляция vs. Интерпретация
PHP:
✅Является интерпретируемым языком. Код выполняется на сервере, используя интерпретатор PHP.
C++:
✅Является компилируемым языком. Код компилируется в машинный код перед выполнением, что обычно приводит к более высокой производительности.
6️⃣Производительность
PHP:
✅Предназначен для быстрого выполнения серверных скриптов и оптимизирован для обработки веб-запросов. Однако он медленнее, чем компилируемые языки, такие как C++.
C++:
✅Обеспечивает высокую производительность и эффективное использование ресурсов, что делает его предпочтительным для разработки приложений, требующих высокой скорости обработки данных.
Пример на PHP:
<?php
function greet($name) {
return "Hello, $name!";
}
echo greet("World");
?>
Пример на C++:
#include <iostream>
#include <string>
std::string greet(const std::string &name) {
return "Hello, " + name + "!";
}
int main() {
std::cout << greet("World") << std::endl;
return 0;
}
Используется для веб-разработки с динамической типизацией и автоматическим управлением памятью, а C++ — это высокопроизводительный язык общего назначения со статической типизацией и ручным управлением памятью.
👉 Можно посмотреть примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых🤔 Какая функция в PHP используется для преобразования всех типов данных в строку?
🤔 Какой модификатор доступа в объектно-ориентированном PHP делает члены класса доступными только внутри этого класса?
Что такое Rest ?
Спросят с вероятностью 13%
REST (Representational State Transfer) — это архитектурный стиль для создания веб-сервисов, который был предложен Роем Филдингом в его докторской диссертации в 2000 году. В его основе лежит принцип использования стандартных HTTP методов (GET, POST, PUT, DELETE и др.) для взаимодействия с ресурсами, представленными в виде URL.
Основные принципы:
1️⃣Адресуемость (Addressability): Каждому ресурсу (например, пользователю, товару) соответствует уникальный URL.
2️⃣Использование стандартных методов HTTP: Использует методы HTTP для выполнения операций с ресурсами.
✅
GET: Получение данных.
✅POST: Создание нового ресурса.
✅PUT: Обновление существующего ресурса.
✅DELETE: Удаление ресурса.
3️⃣Статусность (Statelessness): Каждый запрос к серверу должен содержать всю необходимую информацию для его обработки. Сервер не хранит информацию о состоянии клиента между запросами.
4️⃣Кэширование (Caching): Ответы от сервера могут кэшироваться, чтобы улучшить производительность и снизить нагрузку на сервер.
5️⃣Единообразие интерфейса (Uniform Interface): Все взаимодействия между клиентом и сервером стандартизированы, что упрощает интеграцию и взаимодействие между системами.
Рассмотрим пример RESTful API для управления пользователями.
Получение списка пользователей (GET)
Запрос:
GET /usersОтвет:
[
{"id": 1, "name": "Alice"},
{"id": 2, "name": "Bob"}
]
Получение информации о конкретном пользователе (GET)
Запрос:
GET /users/1Ответ:
{
"id": 1,
"name": "Alice"
}
Создание нового пользователя (POST)
Запрос:
POST /users
Content-Type: application/json
{
"name": "Charlie"
}
Ответ (Успешное создание):
{
"id": 3,
"name": "Charlie"
}
Обновление информации о пользователе (PUT)
Запрос:
PUT /users/1
Content-Type: application/json
{
"name": "Alice Updated"
}
Ответ:
{
"id": 1,
"name": "Alice Updated"
}
Удаление пользователя (DELETE)
Запрос:
DELETE /users/1
Ответ (Успешное удаление):
{
"message": "User deleted"
}
REST — это стиль архитектуры веб-сервисов, использующий стандартные методы HTTP для взаимодействия с ресурсами. Он обеспечивает простоту, масштабируемость и совместимость в веб-приложениях.
👉 Можно посмотреть примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовыхCамый простой способ изучить Java — залезть в голову профи
Один из лучших айтишников России учит базе кодинга в Telegram. Даже гуманитарий поймёт, как создавать приложения, сайты, игры и чат-боты.
Достаточно подписаться на «Секреты Java», где каждый день появляются гайды, готовые примеры кода и лучших практик.
И всё это бесплатно — вместо сотен тысяч рублей за курсы. Стартовать в прибыльной профессии с нуля вы сможете гораздо проще!
Теперь обучиться Java может каждый: @java_secrets
🤔 Какой тип данных в PHP позволяет хранить несколько значений, включая другие массивы?
Repost from easyoffer
Канал приближается к 20к подписчиков, а здесь так и нет нормального контент плана 😒
Ищу талантливых журналистов, способных писать клевые и авторские посты на тему "Карьера в IT" и все что с этим связано: поиск работы, повышение з/п, разбор кейсов, переезд в другие страны по рабочим визам, аналитика, исследование рынка и т.д.
Важно глубокое понимание IT индустрии, вы должны иметь опыт работы в ней
Если интересно отправьте мне свое резюме @kivaiko
Как переопределить хранение сессий ?
Спросят с вероятностью 7%
Переопределение хранения сессий позволяет изменять способ хранения сессий с использованием различных механизмов, таких как базы данных, Redis, Memcached и другие. Это может улучшить производительность, масштабируемость и безопасность ваших приложений. Давайте рассмотрим, как можно настроить PHP для хранения сессий в базе данных и в Redis.
Хранение сессий в базе данных
1️⃣Создание таблицы для хранения сессий:
CREATE TABLE sessions (
id VARCHAR(255) NOT NULL PRIMARY KEY,
data TEXT NOT NULL,
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
2️⃣Создание класса для управления сессиями:
<?php
class MySQLSessionHandler implements SessionHandlerInterface {
private $pdo;
public function __construct(PDO $pdo) {
$this->pdo = $pdo;
}
public function open($savePath, $sessionName) {
return true;
}
public function close() {
return true;
}
public function read($id) {
$stmt = $this->pdo->prepare("SELECT data FROM sessions WHERE id = :id");
$stmt->bindParam(':id', $id, PDO::PARAM_STR);
$stmt->execute();
if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
return $row['data'];
}
return '';
}
public function write($id, $data) {
$stmt = $this->pdo->prepare("REPLACE INTO sessions (id, data, timestamp) VALUES (:id, :data, NOW())");
$stmt->bindParam(':id', $id, PDO::PARAM_STR);
$stmt->bindParam(':data', $data, PDO::PARAM_STR);
return $stmt->execute();
}
public function destroy($id) {
$stmt = $this->pdo->prepare("DELETE FROM sessions WHERE id = :id");
$stmt->bindParam(':id', $id, PDO::PARAM_STR);
return $stmt->execute();
}
public function gc($maxlifetime) {
$stmt = $this->pdo->prepare("DELETE FROM sessions WHERE timestamp < NOW() - INTERVAL :maxlifetime SECOND");
$stmt->bindParam(':maxlifetime', $maxlifetime, PDO::PARAM_INT);
return $stmt->execute();
}
}
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$handler = new MySQLSessionHandler($pdo);
session_set_save_handler($handler, true);
session_start();
?>
Хранение сессий в Redis
1️⃣Установка и настройка Redis:
Убедитесь, что Redis установлен и запущен на вашем сервере.
2️⃣Установка PHP расширения для Redis:
pecl install redis
3️⃣Настройка для использования Redis:
<?php
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', 'tcp://127.0.0.1:6379');
session_start();
$_SESSION['username'] = 'example_user';
echo $_SESSION['username'];
?>
Хранение сессий в Memcached
1️⃣Установка и настройка Memcached:
Убедитесь, что Memcached установлен и запущен на вашем сервере.
2️⃣Установка PHP расширения для Memcached:
pecl install memcached
3️⃣Настройка для использования Memcached:
<?php
ini_set('session.save_handler', 'memcached');
ini_set('session.save_path', '127.0.0.1:11211');
session_start();
$_SESSION['username'] = 'example_user';
echo $_SESSION['username'];
?>
Настройка хранения сессий позволяет улучшить производительность и масштабируемость приложения, используя различные механизмы хранения, такие как базы данных, Redis или Memcached. Эти механизмы предоставляют дополнительные возможности, такие как более быстрая обработка данных и лучшая поддержка распределенных систем.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовыхПочему тебя не зовут на интервью? Исправь это в своем резюме…
Получить приглашение на интервью сейчас сложнее, чем с нуля обучиться разработке. И к сожалению, это не шутка.
Скорее всего только 1-2% работодателей сейчас позовут тебя на интервью. Это статистика, которую мы собирали по 10.000 откликам. Но над этой цифрой можно и нужно работать.
Если правильно оформить свое резюме, и поменять свою стратегию с откликами, то конверсию можно увеличить до 10%. Т.е почти в 10 раз!
Как это сделать?
1. Проверить свое резюме по нашему чек листу, и внести в него то, чего будет не хватать.
2. Поменять свой подход к поиску работы, ведь одними откликами на hh.ru сыт не будешь.
16 июля, в 18:00 по москве, мы вместе с Максом из CodeReview проведем вебинар на тему эффективного поиска работы в 2024 году.
На нем Макс покажет как сейчас нужно искать работу. В прямом эфире.
А также раскроет что именно нужно писать в свое резюме, чтобы оно ПРОДАВАЛО.
Получить чек лист по составлению резюме, а также зарегистрироваться на вебинар можно по этой ссылке.
Регистрируйся сейчас и увидимся 16 июля, в 18:00 по мск.
👉 Зарегистрироваться и получить чек-лист по резюме.
🤔 Какой механизм в PHP используется для автоматической загрузки классов?
Что такое namespaces ?
Спросят с вероятностью 13%
Пространства имен (namespaces) — это механизм, позволяющий организовать код в логические группы и избежать конфликтов имен, особенно в больших проектах или при использовании сторонних библиотек.
Зачем они нужны?
1️⃣Избежание конфликтов имен: В больших проектах могут быть сотни классов, функций и констант. Пространства имен помогают избежать ситуаций, когда разные части кода используют одинаковые имена.
2️⃣Упрощение организации кода: Они позволяют группировать связанные классы, интерфейсы, функции и константы, что делает код более читаемым и поддерживаемым.
3️⃣Упрощение автозагрузки: Пространства имен облегчают использование автозагрузчиков, таких как PSR-4, где классы и файлы организованы в соответствии с их пространствами имен.
Как их использовать?
Для использования пространств имен, нужно объявить их в начале файла с помощью ключевого слова
namespace. Вот пример:
<?php
namespace MyProject\Models;
class User {
public function getName() {
return "John Doe";
}
}
?>
Теперь класс User находится в пространстве имен MyProject\Models. Чтобы использовать этот класс в другом файле, нужно указать его полное имя:
<?php
require 'User.php';
$user = new \MyProject\Models\User();
echo $user->getName();
?>
Можно также использовать ключевое слово use для упрощения кода:
<?php
require 'User.php';
use MyProject\Models\User;
$user = new User();
echo $user->getName();
?>
Пространства имен могут содержать не только классы, но и функции и константы:
<?php
namespace MyProject\Utils;
const PI = 3.14;
function calculateCircleArea($radius) {
return PI * $radius * $radius;
}
?>
Использование этих элементов будет аналогичным:
<?php
require 'Utils.php';
echo \MyProject\Utils\calculateCircleArea(5);
echo \MyProject\Utils\PI;
?>
Пространства имен нужны для того, чтобы организовать код и избежать конфликтов имен. Они позволяют группировать классы, функции и константы, делая код более читабельным и поддерживаемым.
👉 Можно посмотреть примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовыхПривет! Ты сейчас ищешь работу?
Если да, то у меня для тебя классные новости.
Мы с Максом решили провести вебинар на тему поиска работы и того, как быстрее получить оффер.
Зачем?
Да потому что найти работу просто откликаясь на вакансии теперь практически нереально.
На Junior вакансии откликаются по 1500 кандидатов. 1500 человек, Карл...
Вопрос: Как искать работу в таких условиях?
Ответ: Нужно менять подходы, и использовать новые способы поиска работы.
А вот какие способы, и как искать работу в 2024 году, расскажет мой товарищ - Макс, который помогает разработчикам с трудоустройством.
Он расскажет тебе как ПРАВИЛЬНО откликаться на вакансии, на что смотрят рекрутеры, и как ты должен быть упакован, чтобы получить работу в это непростое время.
🗓 Когда? Во вторник – 16 июля, в 18:00 по мск.
🎁 После регистрации он также обещал прислать: 1) Анализ рынка труда. 2) Разбор кейсов тех, кто сейчас находит работу. 3) Пошаговый план, что нужно делать, чтобы прийти к оферу.
👉 Записаться на вебинар по поиску работы.
🤔 Какая функция в PHP создает копию уже существующего объекта?
Что известно о dependency injection ?
Спросят с вероятностью 7%
Dependency Injection (DI) — это паттерн проектирования, который позволяет улучшить гибкость и тестируемость кода путем передачи зависимостей объектов (таких как сервисы, репозитории и т.д.) из внешних источников, вместо создания этих зависимостей внутри объектов.
Основные концепции
1️⃣Зависимость (Dependency):
✅Зависимость — это объект, от которого зависит другой объект. Например, если класс
Car использует объект Engine, Engine является зависимостью для Car.
2️⃣Внедрение (Injection):
✅Внедрение означает передачу зависимости объекту. Это может быть сделано через конструктор, сеттер или метод объекта.
3️⃣Контейнер инверсии управления (Inversion of Control Container, IoC Container):
✅IoC контейнер — это фреймворк или библиотека, которая управляет созданием и внедрением зависимостей. Он помогает автоматизировать процесс внедрения и упрощает управление зависимостями.
Виды внедрения
1️⃣Внедрение через конструктор (Constructor Injection):
✅Зависимости передаются через конструктор класса.
class Car {
private $engine;
public function __construct(Engine $engine) {
$this->engine = $engine;
}
}
2️⃣Внедрение через сеттер (Setter Injection):
✅Зависимости передаются через методы-сеттеры.
class Car {
private $engine;
public function setEngine(Engine $engine) {
$this->engine = $engine;
}
}
3️⃣Внедрение через интерфейс (Interface Injection):
✅Зависимости передаются через интерфейсы, которые объект должен реализовать.
interface EngineAware {
public function setEngine(Engine $engine);
}
class Car implements EngineAware {
private $engine;
public function setEngine(Engine $engine) {
$this->engine = $engine;
}
}
Преимущества
1️⃣Улучшенная тестируемость:
✅Позволяет легко заменять реальные зависимости на фиктивные объекты (моки) при тестировании, что упрощает создание модульных тестов.
2️⃣Снижение связности (Coupling):
✅Уменьшает степень связанности между компонентами системы, что упрощает их замену и модификацию.
3️⃣Повышенная гибкость и расширяемость:
✅Делает код более гибким и расширяемым, так как зависимости могут быть легко заменены новыми реализациями без изменения основного кода.
4️⃣Упрощение конфигурации:
✅IoC контейнеры упрощают управление конфигурацией зависимостей, особенно в крупных приложениях.
Примеры использования
PHP
Есть несколько популярных библиотек и фреймворков, которые поддерживают DI, такие как Symfony, Laravel и PHP-DI.
class Car {
private $engine;
public function __construct(Engine $engine) {
$this->engine = $engine;
}
public function drive() {
$this->engine->start();
}
}
// Регистрация зависимости в контейнере
app()->bind(Engine::class, V8Engine::class);
// Внедрение зависимости через конструктор
$car = app()->make(Car::class);
$car->drive();
Java
Широко используются фреймворки Spring и Google Guice для реализации DI.
@Component
public class Car {
private final Engine engine;
@Autowired
public Car(Engine engine) {
this.engine = engine;
}
public void drive() {
engine.start();
}
}
@Configuration
public class AppConfig {
@Bean
public Engine engine() {
return new V8Engine();
}
@Bean
public Car car() {
return new Car(engine());
}
}
Dependency Injection — это мощный паттерн проектирования, который улучшает гибкость, тестируемость и управляемость кода. Он широко используется в современных фреймворках и библиотеках, таких как Spring (Java) и Laravel (PHP), и является важным инструментом для создания масштабируемых и поддерживаемых приложений.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовыхКак джуну без опыта составить себе крутое резюме?
Просто скачай наш гайд с 5 примерами реальных резюмешек ребят, которые недавно нашли работу.
В этом гайде рассказали как:
1. Оформить свой опыт, даже если его нет.
2. Добавили 5 крутых примеров настоящих резюме junior разработчиков без опыта, которые нашли работу.
А писала этот гайд команда, которая трудоустроила уже больше 150 джунов!
Меняем его на подписку на канал 😊
👉 Скачать можно бесплатно по этой ссылочке.
🤔 Как в PHP можно получить количество элементов в массиве?
Чем HTTP первой версии отличается от второй ?
Спросят с вероятностью 20%
HTTP/1.1 и HTTP/2 — это две версии протокола передачи гипертекста (HTTP), которые имеют ряд ключевых отличий. Каждая версия протокола внесла значительные улучшения в эффективность, производительность и возможности веб-коммуникации.
HTTP/1.1
Официально стандартизированный в 1997 году, принес следующие улучшения по сравнению с предыдущей версией (HTTP/1.0):
1️⃣Постоянные соединения: По умолчанию соединения остаются открытыми после завершения запроса, что позволяет отправлять несколько запросов по одному соединению и уменьшает нагрузку на сеть и серверы.
2️⃣Кэширование: Введены более сложные механизмы кэширования с использованием заголовков
ETag, If-Modified-Since, что улучшает управление кэшем и эффективность передачи данных.
3️⃣Коды состояния HTTP: Добавлены новые коды состояния для более точного представления различных сценариев веб-взаимодействия.
4️⃣Чанковая передача данных: Поддержка передачи данных в частях (chunks), что позволяет динамически генерировать содержимое и отправлять его по мере готовности.
5️⃣Хосты и виртуальные хосты: Поддержка заголовка Host, позволяющего размещать несколько доменов на одном IP-адресе.
HTTP/2
Стандартизированный в 2015 году, внес следующие значительные улучшения по сравнению с HTTP/1.1:
1️⃣Бинарный протокол: В отличие от текстового HTTP/1.1, HTTP/2 использует бинарный формат, который упрощает и ускоряет его разбор.
2️⃣Мультиплексирование: Одно соединение теперь может одновременно передавать несколько потоков данных, что устраняет проблему "заголовочного блока" и значительно повышает производительность.
3️⃣Управление потоками: HTTP/2 позволяет приоритизировать запросы, что улучшает загрузку ресурсов на странице.
4️⃣Сжатие заголовков: В HTTP/2 используется сжатие заголовков HPACK для уменьшения накладных расходов, связанных с метаданными HTTP.
5️⃣Server Push: Серверы могут активно отправлять ресурсы клиенту до того, как клиент явно запросит их, что улучшает время загрузки страниц.
HTTP/2 предназначен для улучшения производительности, эффективности и скорости веб-коммуникаций по сравнению с HTTP/1.1. Эти изменения особенно важны для современных веб-приложений, которые требуют быстрой и эффективной загрузки большого количества ресурсов. Основное преимущество HTTP/2 — это мультиплексирование, которое позволяет обрабатывать множественные запросы и ответы одновременно в рамках одного соединения, существенно улучшая производительность загрузки страниц.
👉 Можно посмотреть примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых