diff --git a/files/ru/web/http/overview/index.md b/files/ru/web/http/overview/index.md index cb8d4faba8ff70..e5aacae961cf80 100644 --- a/files/ru/web/http/overview/index.md +++ b/files/ru/web/http/overview/index.md @@ -5,13 +5,15 @@ slug: Web/HTTP/Overview {{HTTPSidebar}} -**HTTP** — это {{glossary("protocol","протокол")}}, позволяющий получать различные ресурсы, например HTML-документы. Протокол HTTP лежит в основе обмена данными в Интернете. HTTP является протоколом клиент-серверного взаимодействия, что означает инициирование запросов к серверу самим получателем, обычно веб-браузером (web-browser). Полученный итоговый документ будет (может) состоять из различных поддокументов, являющихся частью итогового документа: например, из отдельно полученного текста, описания структуры документа, изображений, видео-файлов, скриптов и многого другого. +**HTTP** — это {{glossary("protocol", "протокол")}}, для получения различных ресурсов, например, HTML-документов. Он лежит в основе обмена данными в Интернете. HTTP является протоколом клиент-серверного взаимодействия, что означает инициирование запросов к серверу самим получателем, обычно веб-браузером. Полученный итоговый документ как правило состоит из различных ресурсов, таких как текстовое содержимое, описание структуры документа, изображения, видео-файлы, скрипты и т.д. -![A Web document is the composition of different resources](fetching_a_page.png) +![Единый веб-документ, составленный из нескольких ресурсов с разных серверов.](https://mdn.github.io/shared-assets/images/diagrams/http/overview/fetching-a-page.svg) -Клиенты и серверы взаимодействуют, обмениваясь одиночными сообщениями (а не потоком данных). Сообщения, отправленные клиентом, обычно веб-браузером, называются _запросами_, а сообщения, отправленные сервером, называются _ответами_. +Клиенты и серверы взаимодействуют, обмениваясь одиночными сообщениями (а не потоком данных). Сообщения, отправленные клиентом, называются _запросами_, а сообщения, отправленные сервером, называются _ответами_. -![HTTP as an application layer protocol, on top of TCP (transport layer) and IP (network layer) and below the presentation layer.](http-layers.png)Хотя HTTP был разработан ещё в начале 1990-х годов, за счёт своей расширяемости в дальнейшем он все время совершенствовался. HTTP является протоколом прикладного уровня, который чаще всего использует возможности другого протокола - {{glossary("TCP")}} (или {{glossary("TLS")}} - защищённый TCP) - для пересылки своих сообщений, однако любой другой надёжный транспортный протокол теоретически может быть использован для доставки таких сообщений. Благодаря своей расширяемости, он используется не только для получения клиентом гипертекстовых документов, изображений и видео, но и для передачи содержимого серверам, например, с помощью HTML-форм. HTTP также может быть использован для получения только частей документа с целью обновления веб-страницы по запросу (например, посредством AJAX запроса). +![HTTP — это протокол прикладного уровня, расположенный поверх TCP (транспортный уровень) и IP (сетевой уровень) и ниже уровня представления.](https://mdn.github.io/shared-assets/images/diagrams/http/overview/http-layers.svg) + +Хотя HTTP был разработан ещё в начале 1990-х годов, за счёт своей расширяемости в дальнейшем он все время совершенствовался. HTTP является протоколом прикладного уровня, который чаще всего использует возможности другого протокола - {{glossary("TCP")}} (или {{glossary("TLS")}} - защищённый TCP) - для пересылки своих сообщений, однако любой другой надёжный транспортный протокол теоретически может быть использован для доставки таких сообщений. Благодаря своей расширяемости, он используется не только для получения клиентом гипертекстовых документов, изображений и видео, но и для передачи содержимого серверам, например, с помощью HTML-форм. HTTP также может быть использован для получения только частей документа с целью обновления веб-страницы по запросу (например, посредством AJAX запроса). ## Составляющие систем, основанных на HTTP @@ -19,7 +21,7 @@ HTTP — это клиент-серверный протокол, то есть Каждый запрос (англ. _request_) отправляется серверу, который обрабатывает его и возвращает ответ (англ. _response_). Между этими запросами и ответами как правило существуют многочисленные посредники, называемые {{glossary("Proxy_server","прокси")}}, которые выполняют различные операции и работают как шлюзы или {{glossary("cache","кэш")}}, например. -![Client server chain](client-server-chain.png) +![HTTP-запрос от клиента, пересылаемый несколькими прокси-серверами на сервер, и ответ, возвращающийся по тому же маршруту клиенту.](https://mdn.github.io/shared-assets/images/diagrams/http/overview/client-server-chain.svg) Обычно между браузером и сервером гораздо больше различных устройств-посредников, которые играют какую-либо роль в обработке запроса: маршрутизаторы, модемы и так далее. Благодаря тому, что Сеть построена на основе системы уровней (слоёв) взаимодействия, эти посредники "спрятаны" на сетевом и транспортном уровнях. В этой системе уровней HTTP занимает самый верхний уровень, который называется "прикладным" (или "уровнем приложений"). Знания об уровнях сети, таких как представительский, сеансовый, транспортный, сетевой, канальный и физический, имеют важное значение для понимания работы сети и диагностики возможных проблем, но не требуются для описания и понимания HTTP. @@ -132,13 +134,13 @@ HTTP/1.1 и более ранние HTTP сообщения человекочи ### Запросы -Примеры HTTP запросов: +Пример HTTP-запроса: -![A basic HTTP request](http_request.png) +![Обзор HTTP-запроса GET с заголовками](https://mdn.github.io/shared-assets/images/diagrams/http/overview/http-request.svg) Запросы содержат следующие элементы: -- HTTP-[метод](/ru/docs/Web/HTTP/Methods), обычно глагол подобно {{HTTPMethod("GET")}}, {{HTTPMethod("POST")}} или существительное, как {{HTTPMethod("OPTIONS")}} или {{HTTPMethod("HEAD")}}, определяющее операцию, которую клиент хочет выполнить. Обычно, клиент хочет получить ресурс (используя `GET`) или передать значения [HTML-формы](/ru/docs/Web/Guide/HTML/Forms) (используя `POST`), хотя другие операции могут быть необходимы в других случаях. +- HTTP-[метод](/ru/docs/Web/HTTP/Methods), обычно глагол подобно {{HTTPMethod("GET")}}, {{HTTPMethod("POST")}} или существительное, как {{HTTPMethod("OPTIONS")}} или {{HTTPMethod("HEAD")}}, определяющее операцию, которую клиент хочет выполнить. Обычно, клиент хочет получить ресурс (используя `GET`) или передать значения [HTML-формы](/ru/docs/Learn/Forms) (используя `POST`), хотя другие операции могут быть необходимы в других случаях. - Путь к ресурсу: URL ресурсы лишены элементов, которые очевидны из контекста, например без {{glossary("protocol","протокола")}} (`http://`), {{glossary("domain","домена")}} (здесь `developer.mozilla.org`), или TCP {{glossary("port","порта")}} (здесь `80`). - Версию HTTP-протокола. - [Заголовки](/ru/docs/Web/HTTP/Headers) (опционально), предоставляющие дополнительную информацию для сервера. @@ -146,9 +148,9 @@ HTTP/1.1 и более ранние HTTP сообщения человекочи ### Ответы -Примеры ответов: +Пример ответа: -![](http_response.png) +![Обзор HTTP-ответа '200 OK' на запрос GET, включая заголовки ответа.](https://mdn.github.io/shared-assets/images/diagrams/http/overview/http-response.svg) Ответы содержат следующие элементы: @@ -160,6 +162,6 @@ HTTP/1.1 и более ранние HTTP сообщения человекочи ## Вывод -HTTP — лёгкий в использовании расширяемый протокол. Структура клиент-сервера, вместе со способностью к простому добавлению заголовков, позволяет HTTP продвигаться вместе с расширяющимися возможностями Сети. +HTTP — расширяемый и лёгкий в использовании протокол. Клиент-серверная структура в сочетании с возможностью добавления заголовков позволяет HTTP развиваться вместе с расширяющимися возможностями интернета. -Хотя HTTP/2 добавляет некоторую сложность, встраивая HTTP сообщения во фреймы для улучшения производительности, базовая структура сообщений осталась с HTTP/1.0. Сессионный поток остаётся простым, позволяя исследовать и отлаживать с простым [монитором HTTP-сообщений](/ru/docs/Tools/Network_Monitor). +Хотя HTTP/2 добавляет некоторую сложность, помещая HTTP сообщения во фреймы для улучшения производительности, базовая структура сообщений осталась такой же как и в HTTP/1.0. Сессионный поток остаётся простым, его можно исследовать и отлаживать с помощью [Сетевого монитора](https://firefox-source-docs.mozilla.org/devtools-user/network_monitor/index.html).