ar
Feedback
PHP | Вопросы собесов

PHP | Вопросы собесов

الذهاب إلى القناة على Telegram
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?
Anonymous voting

🤔 Что делает функция `session_start()` в PHP?
Anonymous voting

Чем отличается 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 используется для преобразования всех типов данных в строку?
Anonymous voting

🤔 Какой модификатор доступа в объектно-ориентированном PHP делает члены класса доступными только внутри этого класса?
Anonymous voting

Что такое 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 позволяет хранить несколько значений, включая другие массивы?
Anonymous voting

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 используется для автоматической загрузки классов?
Anonymous voting

Что такое 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 создает копию уже существующего объекта?
Anonymous voting

Что известно о 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 примерами реальных резюмешек ребят, которые неда
Как джуну без опыта составить себе крутое резюме? Просто скачай наш гайд с 5 примерами реальных резюмешек ребят, которые недавно нашли работу. В этом гайде рассказали как: 1. Оформить свой опыт, даже если его нет. 2. Добавили 5 крутых примеров настоящих резюме junior разработчиков без опыта, которые нашли работу. А писала этот гайд команда, которая трудоустроила уже больше 150 джунов! Меняем его на подписку на канал 😊 👉 Скачать можно бесплатно по этой ссылочке.

🤔 Как в PHP можно получить количество элементов в массиве?
Anonymous voting

Чем 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 разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых