Перед написанием HTTP-фреймворка на PHP полезно разобраться в устройстве протокола HTTP. И понять, какими способами мы можем запускать наш программный код на сервере. Использовать ли модуль для Apache или настроить работу по CGI или FastCGI. Либо вообще запустить синхронный или асинхронный сервер на самом PHP.
В зависимости от выбранного способа наш код должен работать по-разному. И ситуация порой осложняется тем, что программисты, знакомящиеся с PHP, слабо разбираются в том, что реально происходит на сервере. Как производится работа с заголовками и телом запроса и ответа, откуда берутся суперглобальные массивы и как работают сессии. И по исторически сложившимся причинам порой имеют заблуждения, затрудняющие их общение с программистами на других языках.
В этом эпизоде мы пройдём полный путь от написания программ на разных языках программирования до запуска их на серверах Apache и Nginx разными способами. От запуска в терминале до использования менеджера процессов и написание нативного сервера. Проследим за каждым нюансом работы в разных окружениях и по разным протоколам:
- 00:00:07 - Постановка задачи
- 00:02:16 - Протокол HTTP
- 00:04:25 - Различия версий HTTP
- 00:06:43 - Структура HTTP-запроса
- 00:09:38 - HTTP-ответ сервера
- 00:11:06 - Форматы тела ответа
- 00:13:24 - Уточнение запроса
- 00:14:45 - Операции с записями
- 00:16:25 - Формат тела запроса
- 00:19:16 - Формат отправки HTML-форм
- 00:23:09 - Установка и передача Cookies
- 00:24:22 - Сходство и различие запроса и ответа
- 00:25:28 - Выбор сервера для экспериментов
- 00:26:31 - Установка Apache
- 00:28:42 - Раздача статических файлов
- 00:29:33 - Просмотр заголовков в браузере
- 00:31:37 - HTTP-клиент в PhpStorm
- 00:33:41 - Запуск PHP-кода через модуль
- 00:36:47 - Переход к альтернативам
- 00:37:40 - Протокол CGI
- 00:38:27 - Запуск программ в терминале
- 00:39:03 - Потоки ввода и вывода
- 00:45:10 - Аргументы командной строки
- 00:45:47 - Переменные окружения
- 00:47:58 - Написание и запуск программы
- 00:50:46 - Вывод аргументов
- 00:51:47 - Отображение stdin и env
- 00:53:50 - Консольная программа на PHP
- 00:58:22 - Протокол CGI
- 00:59:59 - Запуск через CGI в Apache
- 01:02:47 - Вспомогательные заголовки
- 01:05:32 - Получение данных запроса
- 01:09:34 - Получение JSON
- 01:12:39 - Суперглобальный массив SERVER
- 01:15:13 - Массивы для CGI
- 01:16:22 - Использование PHP-CGI
- 01:18:33 - Динамический запуск скриптов
- 01:23:25 - Переопределение SCRIPT_FILENAME
- 01:27:29 - Переход на PHP-CGI
- 01:29:23 - Встроенные процедуры
- 01:31:32 - Работа с PHP-CGI в Apache
- 01:34:39 - Массивы GET и POST
- 01:38:17 - Потоки input и output
- 01:41:12 - Работа с Cookies
- 01:43:43 - Устройство сессий в PHP
- 01:46:53 - Где хранятся данные сессии
- 01:49:26 - Перенос сессий в другие хранилища
- 01:51:10 - Промежуточный итог
- 01:53:54 - Специфические заголовки для сервера
- 01:55:31 - Сложности реализации HTTP
- 01:57:08 - Протокол FastCGI
- 01:58:48 - Спецификация FastCGI
- 02:01:11 - Менеджер процессов PHP-FPM
- 02:04:03 - Подключение PHP-FPM к Apache
- 02:05:33 - Установка Nginx
- 02:07:51 - Подключение PHP-FPM к Nginx
- 02:14:39 - Промежуточный итог
- 02:15:14 - Единый подход в коде
- 02:16:49 - Написание своего сервера
- 02:17:46 - HTTP-сервер на JavaScript
- 02:20:03 - HTTP-сервер на PHP
- 02:23:12 - Асинхронные серверы для PHP
- 02:25:33 - Доступ к тексту запроса
- 02:26:19 - Заблуждения PHP-программистов
И только учитывая всё это мы дальше сможем написать удобный фреймворк, успешно работающий в каждом окружении.
Скрытый контент
Чтобы не пропускать новые эпизоды подпишитесь на наш канал @deworkerpro в Telegram

СУПЕР!!!!!) СПАСИБО!)
Просто "Пушка" - полетел смотреть)) Благодарю
А я думал какой сегодня фильм перед выходным днем посмотреть! ) Спасибо!
Спасибо!
Спасибо!
Спасибо! Очень познавательно.
спасибо.
Спасибо! Отличный материал!
Рекомендуется в качестве ликбеза для начинающих и не только веб программистов!
Спасибо!
А продолжение будет, вроде больше выпусков планировалось?
Или войти через: