HTTP
HTTP: протокол передачи гипертекста
HTTP — это протокол прикладного уровня для передачи гипермедийных документов, таких как HTML. Он был разработан для взаимодействия между веб-браузерами и веб-серверами, но также может использоваться и для других целей, например для взаимодействия между компьютерами, программного доступа к API и многого другого.
HTTP следует классической клиент-серверной модели: клиент открывает соединение, отправляет запрос, а затем ожидает ответа от сервера. HTTP — это протокол без сохранения состояния, то есть сервер не хранит данные о сеансе между запросами, хотя появившиеся позже файлы cookie добавляют состояние некоторым взаимодействиям между клиентом и сервером.
Руководства
HTTP — это расширяемый протокол, основанный на таких понятиях, как ресурсы и унифицированные идентификаторы ресурсов (URI), базовая структура сообщений и клиент-серверная модель взаимодействия. На основе этих понятий за прошедшие годы было разработано множество расширений, добавляющих функциональность и обновлённую семантику, в том числе дополнительные методы и заголовки HTTP.
Руководства по HTTP перечислены в порядке от общих обзоров до специализированных материалов, посвящённых конкретным сценариям использования. Новичкам рекомендуется начать с основных руководств, прежде чем переходить к более узким темам.
- Обзор HTTP
-
Основные характеристики HTTP, его возможности, предполагаемое применение в веб-архитектуре и место в стеке протоколов.
- Эволюция HTTP
-
HTTP появился в начале 1990-х годов и с тех пор неоднократно расширялся. В этой статье рассматривается его история и описываются HTTP/0.9, HTTP/1.0, HTTP/1.1, HTTP/2 и HTTP/3, а также нововведения, появившиеся за эти годы.
- Типичный сеанс HTTP
-
Описывает ход сеанса HTTP: от установления соединения и отправки запроса до получения ответа.
- Сообщения HTTP
-
Сообщения HTTP, передаваемые в виде запросов и ответов, имеют определённую структуру. В этой статье описываются эта общая структура, её назначение и различные типы сообщений.
- Типы MIME
-
Начиная с HTTP/1.0 появилась возможность передавать различные типы содержимого. В этой статье объясняется, как это реализовано с помощью заголовка
Content-Typeи стандарта MIME. Краткий список распространённых типов, используемых веб-разработчиками, приведён в статье Распространённые типы MIME. - Сжатие в HTTP
-
Браузеры и серверы сжимают сообщения перед отправкой по сети, чтобы сократить объём передаваемых данных, повысить скорость передачи и эффективнее использовать пропускную способность.
- Кэширование HTTP
-
Кэширование — чрезвычайно важный механизм для быстрой работы сайтов и эффективного использования ресурсов. В этой статье описаны различные способы кэширования и управление ими с помощью заголовков HTTP.
- Аутентификация HTTP
-
Аутентификация позволяет проверить личность клиента, отправляющего запросы серверу. Она гарантирует, что доступ к определённым ресурсам получат только авторизованные пользователи или системы.
-
Хотя HTTP — это протокол без сохранения состояния, сервер может отправить в ответе заголовок
Set-Cookie. Затем клиент передаёт значение файла cookie с каждым последующим запросом к серверу в виде заголовка запросаCookie. Это позволяет хранить и передавать небольшой объём данных, фактически добавляя состояние некоторым взаимодействиям между клиентом и сервером. - Перенаправления в HTTP
-
Перенаправление URL, также известное как переадресация URL, — это способ назначить странице, форме, целому сайту или веб-приложению несколько адресов URL. Для этого в HTTP предусмотрен специальный тип ответа, называемый перенаправлением HTTP.
- Условные запросы HTTP
-
При условных запросах результат зависит от значения валидатора в запросе. Этот метод широко используется при кэшировании, а также в таких сценариях, как возобновление загрузки, предотвращение потери изменений при редактировании документа на сервере и многих других.
- Диапазонные запросы HTTP
-
Диапазонный запрос просит сервер отправить клиенту определённую часть или части ресурса вместо ресурса целиком. Такие запросы полезны, когда клиенту нужна только часть большого файла или когда приложение позволяет пользователю приостанавливать и возобновлять загрузку.
- Согласование содержимого
-
В HTTP определён набор заголовков сообщений, начинающихся с
Accept, с помощью которых браузер сообщает о предпочитаемом формате, языке или кодировке. В этой статье объясняется, как браузер сообщает об этих предпочтениях, как должен реагировать сервер и как он выбирает наиболее подходящий ответ на запрос. - Управление соединениями в HTTP/1.x
-
HTTP/1.1 стал первой версией HTTP с поддержкой постоянных соединений и конвейерной передачи запросов. В этой статье объясняются оба понятия, в том числе их преимущества и недостатки.
- Механизм обновления протокола
-
В HTTP/1.1 предусмотрен механизм обновления уже установленного соединения до другого протокола с помощью заголовка
Upgrade. Клиент может обновить соединение с HTTP/1.1 до HTTP/2 или соединение HTTP(S) до WebSocket (ws/wss). - Прокси-серверы и туннелирование
-
Прокси может находиться на локальном компьютере пользователя или в любом месте между компьютером пользователя и целевым сервером в Интернете. На этой странице приведены основные сведения о прокси и рассмотрены некоторые параметры настройки.
- Подсказки клиента HTTP
-
Client Hints — это набор заголовков запросов, с помощью которых сервер может заранее запросить у клиента сведения об устройстве, сети, пользователе и предпочтениях, характерных для пользовательского агента. Затем сервер может определить, какие ресурсы отправить, исходя из сведений, которые клиент согласится предоставить.
- Журналирование сетевых ошибок
-
Журналирование сетевых ошибок — это механизм, который можно настроить с помощью заголовка HTTP-ответа
NEL. Этот экспериментальный заголовок позволяет сайтам и приложениям подписаться на получение отчётов о неудачных (и даже успешных) сетевых запросах, выполненных в поддерживающих эту возможность браузерах. - Определение браузера с помощью пользовательского агента
-
Использовать анализ строки пользовательского агента для определения браузера почти никогда не стоит, однако бывают ситуации, когда это необходимо. В этом документе рассказывается, как сделать это максимально правильно, если без такого способа не обойтись, и на что следует обратить внимание, прежде чем его применять.
Безопасность и конфиденциальность
- Политика разрешений
-
Политика разрешений позволяет веб-разработчикам явно указывать, какие возможности можно и нельзя использовать на сайте. Вы задаёте набор «политик», которые ограничивают доступ к API для кода сайта или изменяют стандартное поведение браузера для определённых функций.
- Обмен ресурсами между источниками (CORS)
-
Межсайтовые HTTP-запросы — это запросы ресурсов из домена, отличного от домена ресурса, отправляющего запрос. Сегодня веб-страницы очень часто загружают ресурсы с других сайтов. Например, страница «Домен A» (
http://domaina.example/) запрашивает изображение с «Домена B» (http://domainb.foo/image.jpg) с помощью элементаimg. CORS позволяет веб-разработчикам контролировать реакцию сайта на межсайтовые запросы. - Политика безопасности содержимого (CSP)
-
CSP позволяет администраторам сайтов управлять тем, какие ресурсы клиенту разрешено загружать для заданной страницы, с помощью заголовка ответа
Content-Security-Policy. В руководстве по CSP описан общий механизм политики безопасности содержимого, который помогает обнаруживать атаки определённых типов и снижать их последствия, включая межсайтовый скриптинг (XSS) и атаки с внедрением данных. - Политика ресурсов между источниками (CORP)
-
CORP позволяет сайтам и приложениям включить защиту от определённых запросов с других источников (например, отправляемых с помощью таких элементов, как
<script>и<img>), чтобы снизить риск спекулятивных атак по побочным каналам. - Рекомендации Mozilla по безопасности веб-приложений
-
Сборник советов для операционных команд по созданию безопасных веб-приложений.
Связанные ресурсы
- URI
-
Унифицированные идентификаторы ресурсов (URI) используются для описания и поиска ресурсов в Интернете и являются важной частью HTTP-запросов.
- Настройка серверов для медиафайлов Ogg
-
В этом руководстве рассматриваются некоторые изменения конфигурации сервера, необходимые для правильной передачи медиафайлов Ogg веб-сервером. Эти сведения могут пригодиться и в том случае, если вы столкнётесь с другими типами медиафайлов, которые сервер пока не распознаёт.
Инструменты и ресурсы
Полезные инструменты и ресурсы для изучения HTTP и устранения проблем.
- Инструменты разработчика Firefox
- HTTP Observatory
-
Проект, призванный помочь разработчикам, системным администраторам и специалистам по безопасности безопасно настроить свои сайты.
- RedBot
-
Инструменты для проверки заголовков, связанных с кэшированием.
- nghttp2
-
Реализация клиента, сервера и прокси HTTP/2 на языке C с инструментами нагрузочного и сравнительного тестирования, а также кодировщиком и декодировщиком HPACK.
- curl
-
Инструмент командной строки для передачи данных, указанных в формате URL. Поддерживает HTTP, HTTPS, WS, WSS и многие другие протоколы.
- Как работают браузеры (2011)
-
Подробная статья о внутреннем устройстве браузеров и прохождении запросов по протоколу HTTP.
Справочник
В справочнике HTTP содержатся подробные сведения о заголовках, методах запросов и кодах состояния ответов, а также списки соответствующих спецификаций и стандартов.
- Заголовки HTTP
-
Заголовки сообщений используются для передачи метаданных о ресурсе или сообщении HTTP, а также для описания поведения клиента или сервера.
- Методы запросов HTTP
-
Методы запросов указывают цель запроса и ожидаемый результат в случае его успешного выполнения. Наиболее распространённые методы —
GETиPOST, предназначенные соответственно для получения и отправки данных на серверы, однако существуют и другие методы для иных целей. - Коды состояния ответов HTTP
-
Коды состояния ответов указывают результат конкретного HTTP-запроса. Ответы делятся на пять классов: информационные, успешные, перенаправления, ошибки клиента и ошибки сервера.
- Ресурсы и спецификации HTTP
-
На этой странице перечислены материалы об HTTP, начиная с первых спецификаций, опубликованных в начале 1990-х годов.
Также заслуживают внимания следующие подразделы:
- Директивы CSP
-
Заголовок ответа
Content-Security-Policy(CSP) позволяет администраторам сайта указывать, какие ресурсы пользовательскому агенту разрешено загружать для заданной страницы. В этом разделе перечислены директивы, которые можно использовать в заголовке CSP; для каждой директивы есть отдельная страница с описанием её работы и применения. - Директивы Permissions-Policy
-
Заголовок ответа
Permissions-Policyпозволяет разрешать или запрещать использование функций браузера в документе или любом элементе<iframe>в документе. В этом разделе перечислены директивы, которые можно использовать в заголовке Permissions-Policy; для каждой директивы есть отдельная страница с описанием её работы и применения.
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP