Протокол передачи гипер текста ( Hypertext Transfer Protocol - HTTP) это прикладной протокол для передачи гипертекстовых документов, таких как HTML. Он создан для общения между веб-браузерами и веб-серверами, хотя в принципе HTTP может использоваться и для других целей. Протокол следует классической клиент-серверной модели, когда клиент открывает соединение, инициирует запрос, а затем ждет ответа. HTTP - это stateless-протокол, то есть сервер не сохраняет никаких данных (состояние) между парами запросов-ответов. Несмотря на то, что HTTP основан на TCP/IP , он так же может использовать любой транспорт, который не теряет молча сообщения (то есть обязан знать дошло ли сообщение до адресата).
Учебники
- Обзор HTTP
- Основные свойства клиент-серверного протокола: что можно сделать и для чего он предназначен
- Эволюция HTTP
- Краткое описание изменений, произошедших в HTTP, начиная с самых ранних версий, заканчивая новой HTTP/2 и далее.
- Принципы вэб-безопасности Mozilla
- Сборник советов для помощи в разработке защищённых вэб-приложений.
- HTTP-сообщения (HTTP Messages)
- Описывает тип и структуру разных видов сообщений HTTP/1.x и HTTP/2.
- Обычный сеанс HTTP
- Показывает и описывает течение обычногое сеанса HTTP
- Управление подключениями в HTTP/1.x
- Описывает три модели управления подключыениями доступными в HTTP/1.x, их сильные и слабые стороны
- HTTP-кэширование (HTTP Cache)
- Кэширование это важнейший инструмент для повышения производительности веб-сайтов. Эта статья представляет разные виды кэша, и как можно использовать HTTP-заголовки для конфигурации и управления кэшированием.
- HTTP куки (HTTP cookies)
- Как работают куки можно почитать в RFC 6265. В момент получения HTTP-запроса , сервер может послать "Set-Cookie"-заголовок в ответе. После этого, значение куки посылается клиентом с каждым запросом к этому серверу. Делается это в форме
Cookie HTTP header. Дополнительно, можно указать истечение срока куки, а так же ограничения для специфического домена или пути. - Контроль доступа (совместное использование ресурсов между разными источниками, HTTP access control (CORS))
- Межсайтовые HTTP-запросы (кросс-сайтовые) - это HTTP-запросы к ресурсам, находящимся домене отличающимся от того, с которого производится запрос. Например, HTML-страница, загружаемая с домена А (
http://domaina.example), запрашивает изображение с домена Б (http://domainb.foo), используя тегimg(http://domainb.foo/image.jpg). Это происходит постоянно в мире веба: страницы загружают различные ресурсы в кроссайтовой манере, включая стили (CSS) , изображения, скрипты и другие ресурсы. CORS позволяет разработчикам сайтов контролировать межсайтовые запросы. - Контроль предварительной загрузки DNS (Controlling DNS prefetching)
- Firefox как и большинство других браузеров выполняет предварительную загрузку DNS (DNS prefetching). Это действие, когда брайзеры превентивно выполняют разрешение доменных имён (получают имена доменов) для ссылок, по которым пользователь может перейти, а также для ссылок на ресурсы, такие как картинки, CSS, JavaScript. Эта предварительная загрузка выполняется в фоновом режиме, так что вполне вероятно, что к моменту обращения к объектам в документе, DNS уже получен. Это уменьшает задержки, когда, например, пользователь кликает на ссылку.
Справочники
- HTTP заголовки (HTTP headers)
- Заголовки HTTP сообщения используются для точного описания загружаемого ресурса или поведения сервера или клиента. Пользовательские заголовки можно добавить используя '
X-' префикс; другие перечислены в IANA registry, содержание которого в свою очередь определено в RFC 4229. IANA так же поддерживает регистр предложенных новых HTTP заголовков. - Методы HTTP запроса
- Различные операции, которые выполняются с HTTP:
- Коды ответа (HTTP response codes)
- Коды ответа HTTP указывают на результат выполнения определенного HTTP запроса. Ответы сгруппированы в пять категорий: информационные ответы, удачные ответы, перенаправления, ошибки клиента, и ошибки сервера.
- Директивы CSP
Content-Security-Policy-поля заголовков ответа позволяют администраторам веб-сайтов констролировать источники ресурсов, которые браузер пользователя может загрузить на данную веб-страницу. За некоторым исключением, эти политики связаны с указанием сервера-источника и адресов доступа (обращения) скриптов.
Инструменты и ресурсы
- Firefox Developer Tools
- Network monitor
- Mozilla Observatory
- Проект, созданный в помощь разработчикам, системным администраторам и специалистам по безопасности для создания безопасных и надёжных сайтов.
- RedBot
- Инструмент для проверки кэширования заголовков
- Принципы работы современных веб-браузеров
- Комплексная статья по внутренностям браузеров и потоку запросов через протокол HTTP. Это нужно понимать всем разработчикам.

