HTTP

Материал из Циклопедии
Перейти к навигации Перейти к поиску
Сетевой протокол
HTTP
НазваниеПротокол передачи гипертекста
Уровень (по модели OSI)прикладной
Создан в1997 год
Основные реализации (клиенты)веб-браузеры
HTTP протокол: понимать web лучше // letsCode [18:12]
6. Web-технологии. Протокол HTTP / Технострим // Технострим Mail.Ru Group [58:53]

Протокол передачи гипертекста (HTTP) — это протокол прикладного уровня для распределенных, совместных гипермедийных информационных систем.[1] HTTP — это основа передачи данных во всемирной паутине, где гипертекстовые документы включают гиперссылки на другие ресурсы, к которым пользователь может легко получить доступ, например, щелчком мыши или касанием экрана в веб-браузере.

История[править]

Разработка HTTP была инициирована Тимом Бернерсом-Ли в CERN в 1989 году. Разработка первых HTTP-запросов для комментариев (RFC) была скоординированной работой Инженерного совета Интернета (IETF) и Консорциума World Wide Web (W3C), а позже работа была передана в IETF.

HTTP/1.1 был впервые задокументирован в RFC 2068 в 1997 году, а по состоянию на 2021 год он (плюс более старые версии) менее популярен (используется менее 45 % веб-сайтов; это всегда протокол резервного копирования) для веб-обслуживания, чем его преемники. Эта спецификация была отменена RFC 2616 в 1999 году, который также был заменен семейством RFC RFC 7230 в 2014 году.

HTTP/2 является более эффективным выражением семантики HTTP «на проводе», был опубликован в 2015 году и используется более чем на 50 % веб-сайтов; теперь он поддерживается практически всеми веб-браузерами[2] и основными веб-серверами через Transport Layer Security (TLS) с использованием расширения Application-Layer Protocol Negotiation (ALPN)[3], где требуется TLS 1.2 или новее.[4][5]

HTTP/3 является предлагаемым преемником HTTP/2[6][7], который уже используется более чем 5,8 % веб-сайтов; и используется более чем в 7,5 % настольных компьютеров (по умолчанию включено в последней версии macOS), используя UDP вместо TCP для основного транспортного протокола. Как и HTTP/2, он не отменяет предыдущие основные версии протокола. Поддержка HTTP/3 была добавлена ​​в Cloudflare и Google Chrome в сентябре 2019 года[8][9] и может быть включена в стабильных версиях Chrome и Firefox.[10]

Технические сведения[править]

Файл:Internet1.svg
URL, начинающийся со схемы HTTP и метки имени домена WWW

HTTP функционирует как протокол запроса-ответа в вычислительной модели клиент-сервер. Например, веб-браузер может быть клиентом, а приложение, запущенное на компьютере, на котором размещен веб-сайт, может быть сервером. Клиент отправляет на сервер сообщение HTTP-запроса. Сервер, который предоставляет ресурсы, такие как файлы HTML и другой контент, или выполняет другие функции от имени клиента, возвращает ответное сообщение клиенту. Ответ содержит информацию о статусе завершения запроса, а также может содержать запрошенное содержимое в теле сообщения.

Веб-браузер — это пример user agent (UA). Другие типы пользовательских агентов включают программное обеспечение индексирования, используемое поставщиками поиска (веб-сканеры), голосовыми браузерами, мобильными приложениями и другим программным обеспечением, которое получает доступ, потребляет или отображает веб-контент.

HTTP разработан, чтобы позволить промежуточным элементам сети улучшать или обеспечивать связь между клиентами и серверами. Веб-сайты с высокой посещаемостью часто выигрывают от серверов веб-кеша, которые доставляют контент от имени вышестоящих серверов, чтобы сократить время отклика. Веб-браузеры кэшируют ранее использованные веб-ресурсы и повторно используют их, когда это возможно, для уменьшения сетевого трафика. Прокси-серверы HTTP на границах частной сети могут облегчить связь для клиентов без глобально маршрутизируемого адреса путем ретрансляции сообщений с внешними серверами.

HTTP — это протокол прикладного уровня, разработанный в рамках набора Интернет-протоколов. Его определение предполагает лежащий в основе и надежный протокол транспортного уровня[11] и обычно используется протокол управления передачей (TCP). Однако HTTP может быть адаптирован для использования ненадежных протоколов, таких как протокол дейтаграмм пользователя (UDP), например, в HTTPU и протоколе обнаружения простых служб (SSDP).

Ресурсы HTTP идентифицируются и размещаются в сети с помощью универсальных указателей ресурсов (URL) с использованием схем универсальных идентификаторов ресурсов (URI) http и https. Как определено в RFC 3986, URI кодируются как гиперссылки в HTML-документах, чтобы формировать взаимосвязанные гипертекстовые документы.

HTTP/1.1 — это версия исходного HTTP (HTTP/1.0). В HTTP/1.0 для каждого запроса ресурса выполняется отдельное соединение с одним и тем же сервером. HTTP/1.1 может повторно использовать соединение несколько раз для загрузки изображений, скриптов, таблиц стилей и т. д. после того, как страница была доставлена. Таким образом, связь HTTP/1.1 имеет меньшую задержку, поскольку установление TCP-соединений сопряжено со значительными накладными расходами.[12]

Источники[править]

  1. Fielding, Roy T.; Gettys, James; Mogul, Jeffrey C. & Nielsen, Henrik Frystyk (June 1999), «Hypertext Transfer Protocol – HTTP/1.1», IETF 
  2. Can I use... Support tables for HTML5, CSS3, etc. Проверено 2 июня 2020.
  3. Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension. IETF (July 2014).
  4. Hypertext Transfer Protocol Version 2, Use of TLS Features. Проверено 10 февраля 2015.
  5. Benjamin, David Using TLS 1.3 with HTTP/2 (англ.). — «This lowers the barrier for deploying TLS 1.3, a major security improvement over TLS 1.2.»  Проверено 2 июня 2020.
  6. Bishop, Mike Hypertext Transfer Protocol Version 3 (HTTP/3) (англ.) (July 9, 2019). Проверено 16 августа 2019.
  7. Cimpanu, Catalin. HTTP-over-QUIC to be renamed HTTP/3 | ZDNet (англ.), ZDNet.
  8. Cimpanu, Catalin Cloudflare, Google Chrome, and Firefox add HTTP/3 support (26 September 2019). Проверено 27 сентября 2019.
  9. HTTP/3: the past, the present, and the future (англ.) (2019-09-26). Проверено 30 октября 2019.
  10. Firefox Nightly supports HTTP 3 - General - Cloudflare Community (2019-11-19). Проверено 23 января 2020.
  11. «RFC 2616», с. 12 
  12. Classic HTTP Documents. W3.org (1998-05-14). Проверено 1 августа 2010.

Ссылки[править]

 
Глобально

Всемирная паутина (Веб 1.0Веб 2.0Веб 3.0) • Семантическая паутинаИнтернет (в России) • Русскоязычный ИнтернетРунет (термин) • Провайдер

Локально

ДоменСайтПорталСтраницаСлужбаКольцо

Виды сайтов
и сервисов

Виртуальный атласБаннерная сетьБиблиотекаБлог (платформа) • ВидеохостингВикиСайт-визиткаВопрос-ответЗакладкиСлужбы знакомствБраузерная играКаталог ресурсовИнтернет-магазинМикроблогНовостной сайтПоисковая системаПорносайтВеб-почтаСоциальная сетьТамблелогBitTorrent-трекерФайлообменникФорум (СервисИмиджборд) • ФотохостингЧат

Создание и
обслуживание

МастерРазработкаДизайнВёрсткаПрограммированиеЮзабилитиОпыт взаимодействияПродвижение сайтаПоисковая оптимизация (SEO) • ХостингСистемный администраторМодераторУчётная записьОнлайн-трансляцияАвторизация

Типы макетов,
страниц, сайтов

СтатическийДинамическийФиксированныйРезиновыйДинамично эластичныйАдаптивный

Техническое

Веб-сервер (сравнение) • Браузер (сравнение) • CookieDNSCMFCMSHTTP (ответызаголовки) • SPDYQUICCGIHTMLXHTMLIP-адресCSSJavaScriptDHTMLCookieDOMXMLAJAXJSONFlashRSSTCP/IPAtomМикроформатfavicon.ico • robots.txtSitemapsVPNКарта сайтаУникальный посетитель.htaccess

Маркетинг

АффилиатИнтернет-маркетингИнтернет-рекламаБаннерКонтекстная рекламаТизерУправление интернет-магазиномКиберсквоттинг

Социум и культура

БлогосфераИнтернет-правоИнтернет-сообщество (районное) • Сетевая литератураХейтерРоберт Эллиот Кан

 
Физический

EthernetRS-232EIA-422RS-449RS-485

Канальный

EthernetPPPoEPPPL2F802.11 Wi-Fi802.16 WiMaxToken ringARCNETFDDIHDLCSLIPATMCANDTMX.25Frame relayShortest Path BridgingSMDSSTPERPS

Сетевой

IPv4IPv6IPsecICMPIGMPARPRARPRIP2OSPFEIGRP

Транспортный

TCP(Crypt) • UDPSCTPDCCP • RDP/RUDPRTPGRE

Сеансовый

ADSPH.245iSNSNetBIOSPAPRPCL2TPPPTPRTCPSMPPSCPZIPSDP

Представления

XDRSSLTLS

Прикладной

BGPHTTP(S) • DHCPIRCSNMPDNS(SEC) • NNTPXMPPSIPIPPNTPSNTPЭлектронная почта (SMTPPOP3IMAP4) • Передача файлов (FTPTFTPSFTPWebDAV) • SMB • Удалённый доступ (rloginTelnetSSHRDP)

Другие прикладные

BitcoinOSCARCDDBMulticast FTPMultisource FTPBitTorrentGnutellaSkype