HTTP
Сетевой протокол | |
HTTP | |
Название | Протокол передачи гипертекста |
---|---|
Уровень (по модели OSI) | прикладной |
Создан в | 1997 год |
Основные реализации (клиенты) | веб-браузеры |
Протокол передачи гипертекста (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]
Технические сведения[править]
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]
Источники[править]
- ↑ Fielding, Roy T.; Gettys, James; Mogul, Jeffrey C. & Nielsen, Henrik Frystyk (June 1999), «Hypertext Transfer Protocol – HTTP/1.1», IETF
- ↑ Can I use... Support tables for HTML5, CSS3, etc. Проверено 2 июня 2020.
- ↑ Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension. IETF (July 2014).
- ↑ Hypertext Transfer Protocol Version 2, Use of TLS Features. Проверено 10 февраля 2015.
- ↑ 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.
- ↑ Bishop, Mike Hypertext Transfer Protocol Version 3 (HTTP/3) (англ.) (July 9, 2019). Проверено 16 августа 2019.
- ↑ Cimpanu, Catalin. HTTP-over-QUIC to be renamed HTTP/3 | ZDNet (англ.), ZDNet.
- ↑ Cimpanu, Catalin Cloudflare, Google Chrome, and Firefox add HTTP/3 support (26 September 2019). Проверено 27 сентября 2019.
- ↑ HTTP/3: the past, the present, and the future (англ.) (2019-09-26). Проверено 30 октября 2019.
- ↑ Firefox Nightly supports HTTP 3 - General - Cloudflare Community (2019-11-19). Проверено 23 января 2020.
- ↑ «RFC 2616», с. 12
- ↑ Classic HTTP Documents. W3.org (1998-05-14). Проверено 1 августа 2010.
Ссылки[править]
- HTTP в энциклопедии «Викиреальность»
Основные протоколы TCP/IP по уровням модели OSI ↑ [+] | |
---|---|
Физический | |
Канальный |
Ethernet • PPPoE • PPP • L2F • 802.11 Wi-Fi • 802.16 WiMax • Token ring • ARCNET • FDDI • HDLC • SLIP • ATM • CAN • DTM • X.25 • Frame relay • Shortest Path Bridging • SMDS • STP • ERPS |
Сетевой |
IPv4 • IPv6 • IPsec • ICMP • IGMP • ARP • RARP • RIP2 • OSPF • EIGRP |
Транспортный | |
Сеансовый |
ADSP • H.245 • iSNS • NetBIOS • PAP • RPC • L2TP • PPTP • RTCP • SMPP • SCP • ZIP • SDP |
Представления | |
Прикладной |
BGP • HTTP(S) • DHCP • IRC • SNMP • DNS(SEC) • NNTP • XMPP • SIP • IPP • NTP • SNTP • Электронная почта (SMTP • POP3 • IMAP4) • Передача файлов (FTP • TFTP • SFTP • WebDAV) • SMB • Удалённый доступ (rlogin • Telnet • SSH • RDP) |
Другие прикладные |
Bitcoin • OSCAR • CDDB • Multicast FTP • Multisource FTP • BitTorrent • Gnutella • Skype |