Содержание
Протокол HTTP служит для передачи информации в сети Интернет.
Содержание
- Hyper Text Transfer Protocol
- Структура протокола HTTP
- Методы протокола
- Специфика HTTP
- Преимущества и недостатки протокола
- Достоинства
- Недостатки
- Как работает интернет? Протоколы HTTP/HTTPS
Hyper Text Transfer Protocol
Интернет протокол HTTP — Hyper Text Transfer Protocol является протоколом передачи гипертекста. Он предназначен для передачи различной информации между клиентом и сервером и является символьно-ориентированным клиент-серверным протоколом.
Интернет протокол HTTP
Это протокол прикладного уровня, не сохраняющий состояния и используется службой World Wide Web. В настоящее время HTTP в основном используется для получения данных с web -сайтов.
В основе протокола лежит технология «клиент-сервер». Это предполагает наличие потребителей – клиентов. Клиенты инициализируют соединение и посылают запрос и наличие поставщиков – серверов. Сервер ждет соединения чтобы получить запрос, производит нужные операции и возвращает клиенту сообщение с результатом.
Всего было четыре версии протокола. Самый первый вариант интернет протокола HTTP 0.9 был выпущен в 1991 году и впервые издан в январе 1992 года. Он привел к урегулированию норм и правил взаимосвязи между клиентами и серверами HTTP, а соответственно к точному разграничению функций между этими элементами. Были запротоколированы основные синтаксические и семантические принципы и положения.
В феврале 2015 года вышли последние редакции черновика очередной версии протокола. Протокол HTTP 2 отличает от предшествующих протоколов то, что он является бинарным. Его основные ключевые особенности: мультиплексирование запросов, последовательность приоритетов для запросов, уплотнение заголовков. Можно загружать несколько элементов параллельно, при помощи одного TCP-соединения, поддержка push-уведомлений серверной стороны.
Структура протокола HTTP
Сообщение HTTP содержит три части, которые пересылаются в следующем порядке:
- Starting line — стартовая строка.
Устанавливает тип передаваемого сообщения;
- Headers – заголовки. Дают характеристику телу сообщения, параметры его передачи и иные данные;
- Message Body — тело сообщения. Передает непосредственно информацию сообщения. Необходимо в обязательном порядке отделить тело сообщение от заголовков пустой строкой.
Структура протокола HTTP
В этих трёх частях стартовая строка обязательно должна присутствовать. Заголовки и тело сообщения являются необязательными элементами. Это связано с тем, что собственно стартовая строка указывает на вид запроса — ответа. Исключением является интернет протокол HTTP версии 0.9. В ней сообщение запроса включает всего лишь стартовую строку, а сообщения ответа содержит только его тело.
Методы протокола
Метод HTTP — последовательность из разных символов, кроме символов управления и разделителей, которые указывают на главное действие над ресурсом. Как правило метод представляет из себя короткое английское слово, написанное заголовочными буквами. Наименование метода является чувствительным к регистру.
Сервер может применять какие угодно методы. Для сервера или клиента нет методов являющихся обязательными. Если сервер не смог определить метод указанный клиентом, то он должен возвратить статус 501 – «Not Implemented». Если сервер определил метод, но его нельзя применить к конкретному ресурсу, то будет возвращено сообщение содержащее код 405 — «Method Not Allowed».
Методы протокола HTTP
Во всех этих случаях сервер должен включить в ответное сообщение заголовок «Allow». Список включает в себя поддерживаемые методы. Все серверы обязаны поддерживать минимально методы GET и HEAD.
GET — применяется для запроса содержимого указанного источника. При помощи метода также можно начать какой-нибудь процесс. При этом в тело сообщения ответа нужно включить сведения о ходе реализации процесса. Клиент имеет возможность передать параметры исполнения запроса в URL целевого ресурса сразу после символа «?»: GET/path/resource?
HEAD – применяется аналогично методу GET. Отличие заключается в том, что в ответе сервера нет тела. Запрос HEAD как правило используется для извлечения метаданных, проверки существования ресурса, то есть валидация URL. Также этот запрос нужен для того, чтобы узнать, было ли изменение ресурса с момента предыдущего обращения. Еще одним часто используемым методом является метод POST.
Специфика HTTP
Интернет протокол HTTP отличается от других протоколов тем, что создает отдельную TCP-сессию на любой запрос. В следующих версиях протокола было разрешено выполнять несколько запросов во время одной TCP-сессии. Но при этом браузеры, как правило, делают запрос только на страницу и находящиеся в ней объекты (изображения, таблицы стилей и так далее), а затем сразу прерывают TCP-сессию.
TCP/IP
Чтобы поддерживать авторизованный доступ в протоколе HTTP используются файлы cookies, представляющие собой небольшие части данных, отосланные веб-сервером и сохраняемые на компьютере в браузере. Веб-клиент, пытаясь открыть страницу нужного сайта посылает этот фрагмент информации веб-серверу в виде HTTP-запроса.
Достоинства
- Интернет протокол HTTP дает возможность достаточно просто создавать нужные клиентские приложения.
- Первоначальные возможности протокола возможно расширить, внедрив свои персональные заголовки.
- Протокол поддерживается как клиент большим числом программ и есть возможность выбирать среди множества хостинговых компаний с серверами HTTP.
Недостатки
- Протокол HTTP не содержит в явном виде возможность навигации внутри ресурсов сервера.
- Отсутствует поддержка распределенности. Промышленное применение интернет протокола HTTP с использованием распределённых вычислений при больших нагрузках на сервер оказывается непригодным.
Как работает интернет? Протоколы HTTP/HTTPS
что это такое, для чего служит протокол
Есть проблемы с ранжированием, проект не растет, хотите проверить работу своих специалистов по продвижению? Закажите профессиональный аудит в Семантике
Аудит и стратегия продвижения в Семантике
Получи нашу книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».
Подпишись на рассылку и получи книгу в подарок!
HTTP — это протокол, позволяющий передавать данные. Изначально он создавался для отправки и принятия документов, содержащих внутри ссылки для выполнения перехода на сторонние ресурсы.
Аббревиатура читается как «HyperText Transfer Protocol», что в переводе означает «протокол для передачи гипертекста». HTTP относится к группе прикладного уровня на основании специфики, использующейся OSI.
Чтобы лучше понять, что значит HTTP, разберем простую аналогию. Представим, что вы общаетесь с иностранцем в социальной сети. Он отправляет вам сообщение на английском языке, вы его получаете. Но понять содержимое вы не можете, так как не достаточно владеете языком. Чтобы расшифровать сообщение, воспользуетесь словарем. Поняв суть, вы отвечаете иностранцу на русском языке и отправляете ответ. Иностранец получает ответ и с помощью переводчика расшифровывает послание. Если упростить весь механизм, протоколы интернета HTTP выполняют функцию переводчика. С их помощью браузер может переводить зашифрованное содержимое веб-страниц и отображать их содержимое.
Для чего нужен HTTP
Протокол HTTP служит для обмена информацией с помощью клиент-серверной модели. Клиент составляет и передает запрос на сервер, затем сервер обрабатывает и анализирует его, после этого создается ответ и отправляется пользователю. По окончании данного процесса клиент делает новую команду, и все повторяется.
Таким образом, протокол HTTP позволяет осуществлять обмен информацией между различными приложениями пользователей и специальными веб-серверами, а также подключаться к веб-ресурсам (как правило, браузерам). Сегодня описываемый протокол обеспечивает работу всей сети. Протокол передачи данных HTTP применяется и для передачи информации по другим протоколам более низкого уровня, например, WebDAV или SOAP. При этом протокол представляет собой средство для транспортировки. Многие программы также основываются на применении HTTP в качестве основного инструмента для обмена информацией. Данные представляются в различных форматах, к примеру, JSON или XML.
HTTP является протоколом для обмена информацией с помощью соединения IP/ ТСР. Как правило, для этого сервер использует порт 80 типа TCP. Если порт не прописан, программное обеспечение клиента будет использовать порт 80 типа TCP по умолчанию. В некоторых случаях могут использоваться и другие порты.
В протоколе HTTP используется симметричная схема шифрования, в его работе применяются симметричные криптосистемы. Симметричные криптосистемы предполагают использование одного и того же ключа для шифрования и расшифрования информации.
Чем отличается HTTP от HTTPS
Отличие можно обнаружить даже из расшифровок аббревиатур. HTTPS расшифровывается как «защита протокола передачи гипертекста». Таким образом, HTTP — самостоятельный протокол, а HTTPS — расширение для его защиты. По HTTP информация передается незащищенной, а HTTPS обеспечивает криптографическую защиту. Особенно актуально это для ресурсов с ответственной авторизацией. Это могут быть социальные сети или сайты платежных систем.
Чем опасна передача незащищенных данных? Программа-перехватчик может в любой момент передать их злоумышленникам. HTTPS имеет сложную техническую организацию, что позволяет надежно защищать информацию и исключить возможность несанкционированного доступа к ней. Отличие заключается и в портах. HTTPS, как правило, работает с портом 443.
Таким образом, HTTP применяется для передачи данных, а HTTPS позволяет осуществлять защищенную передачу данных с помощью шифрования и выполнять авторизацию на ресурсах с высоким уровнем безопасности.
Дополнительный функционал
HTTP отличается богатым функционалом, он совместим с различными расширениями. Используемая сегодня спецификация 1.1 позволяет применять заголовок Upgrade для переключения и работы через другие протоколы при обмене данными. Для этого пользователь должен отправить запрос серверу с данным заголовком. Если же сервер нуждается в переходе на специфичный обмен по иному протоколу, он возвращает клиенту запрос, в котором отображается статус «426 Upgrade Required».
Данная возможность особенно актуальна для обмена информацией через WebSocket (имеет спецификацию RFC 6455 , позволяет обмениваться данными в любой момент, без лишних HTTP-запросов). Для перехода на WebSocket один пользователь отправляет запрос с заголовком Upgrade и значением «websocket». Далее сервер отвечает «101 Switching Protocols». После этого момента начинается передача информация по WebSocket.
Обзор HTTP — HTTP
HTTP — это протокол для получения ресурсов, таких как HTML-документы.
Это основа любого обмена данными в Интернете, и это протокол клиент-сервер, что означает, что запросы инициируются получателем, обычно веб-браузером.
Полный документ реконструируется из различных извлеченных вложенных документов, например, текста, описания макета, изображений, видео, сценариев и т. д.
Клиенты и серверы общаются, обмениваясь отдельными сообщениями (в отличие от потока данных).
Сообщения, отправляемые клиентом, обычно веб-браузером, называются запросы и сообщения, отправленные сервером в качестве ответа, называются ответами .
HTTP, разработанный в начале 1990-х годов, представляет собой расширяемый протокол, который со временем развивался.
Это протокол прикладного уровня, который отправляется через TCP или через TCP-соединение с шифрованием TLS, хотя теоретически можно использовать любой надежный транспортный протокол.
Благодаря своей расширяемости он используется не только для извлечения гипертекстовых документов, но также изображений и видео или для отправки контента на серверы, например, с результатами HTML-форм.
HTTP также можно использовать для извлечения частей документов для обновления веб-страниц по запросу.
HTTP — это клиент-серверный протокол: запросы отправляются одним объектом — агентом пользователя (или прокси-сервером от его имени).
В большинстве случаев агентом пользователя является веб-браузер, но это может быть что угодно, например, робот, который просматривает Интернет для заполнения и поддержки индекса поисковой системы.
Каждый отдельный запрос отправляется на сервер, который обрабатывает его и предоставляет ответ, называемый ответом .
Между клиентом и сервером существует множество объектов, которые в совокупности называются прокси, которые выполняют различные операции и действуют, например, как шлюзы или кэши.
На самом деле между браузером и сервером, обрабатывающим запрос, больше компьютеров: маршрутизаторы, модемы и прочее.
Благодаря многоуровневой структуре Интернета они скрыты в сетевом и транспортном уровнях.
HTTP находится сверху, на прикладном уровне.
Хотя базовые уровни важны для диагностики сетевых проблем, они в основном не имеют отношения к описанию HTTP.
Клиент: пользовательский агент
Пользовательский агент — это любой инструмент, который действует от имени пользователя.
Эту роль в основном выполняет веб-браузер, но ее также могут выполнять программы, используемые инженерами и веб-разработчиками для отладки своих приложений.
Браузер всегда объект, инициирующий запрос.
Он никогда не является сервером (хотя с годами были добавлены некоторые механизмы для имитации сообщений, инициированных сервером).
Чтобы отобразить веб-страницу, браузер отправляет исходный запрос на получение HTML-документа, представляющего страницу.
Затем он анализирует этот файл, делая дополнительные запросы, соответствующие сценариям выполнения, информации о макете (CSS) для отображения и подресурсам, содержащимся на странице (обычно изображения и видео).
Затем веб-браузер объединяет эти ресурсы, чтобы представить полный документ, веб-страницу.
Сценарии, выполняемые браузером, могут извлекать больше ресурсов на более поздних этапах, и браузер соответствующим образом обновляет веб-страницу.
Веб-страница представляет собой гипертекстовый документ.
Это означает, что некоторые части отображаемого контента представляют собой ссылки, которые можно активировать (обычно щелчком мыши) для получения новой веб-страницы, что позволяет пользователю направлять свой пользовательский агент и перемещаться по сети.
Браузер переводит эти указания в HTTP-запросы и дополнительно интерпретирует HTTP-ответы, чтобы предоставить пользователю четкий ответ.
Веб-сервер
На противоположной стороне канала связи находится сервер, который подает документ по запросу клиента.
Сервер виртуально выглядит как одна машина; но на самом деле это может быть набор серверов, разделяющих нагрузку (балансировка нагрузки), или сложная часть программного обеспечения, опрашивающая другие компьютеры (например, кеш, сервер БД или серверы электронной коммерции), полностью или частично генерирующая документ по требованию.
Сервер не обязательно представляет собой одну машину, но на одной машине может быть размещено несколько экземпляров серверного программного обеспечения.
С HTTP/1.1 и Хост
, они могут даже иметь один и тот же IP-адрес.
Прокси
Между веб-браузером и сервером многочисленные компьютеры и машины передают HTTP-сообщения.
Из-за многоуровневой структуры веб-стека большинство из них работают на транспортном, сетевом или физическом уровнях, становясь прозрачными на уровне HTTP и потенциально оказывая значительное влияние на производительность.
Те, которые работают на уровне приложений, обычно называются прокси .
Они могут быть прозрачными, пересылая запросы, которые они получают, не изменяя их каким-либо образом, или непрозрачными, и в этом случае они каким-то образом изменят запрос, прежде чем передать его на сервер.
Прокси могут выполнять множество функций:
- кэширование (кэш может быть общедоступным или частным, например, кеш браузера)
- фильтрация (например, антивирусное сканирование или родительский контроль)
- балансировка нагрузки (чтобы несколько серверов могли обслуживать разные запросы)
- аутентификация (для управления доступом к различным ресурсам)
- ведение журнала (позволяющее хранить историческую информацию)
Простой HTTP
HTTP, как правило, разработан таким образом, чтобы быть простым и понятным для человека, даже с добавленной сложностью, представленной в HTTP/2 за счет инкапсуляции сообщений HTTP в фреймы.
Сообщения HTTP могут быть прочитаны и поняты людьми, что упрощает тестирование для разработчиков и снижает сложность для новичков.
HTTP является расширяемым
Представленные в HTTP/1.0 заголовки HTTP упрощают расширение этого протокола и экспериментирование с ним.
Новая функциональность может быть введена даже простым соглашением между клиентом и сервером о семантике нового заголовка.
HTTP без сохранения состояния, но не без сеанса
HTTP не имеет состояния: нет связи между двумя запросами, последовательно выполняемыми по одному и тому же соединению.
Это немедленно создает проблемы для пользователей, пытающихся последовательно взаимодействовать с определенными страницами, например, используя корзину для покупок в электронной коммерции.
Но хотя ядро самого HTTP не имеет состояния, файлы cookie HTTP позволяют использовать сеансы с отслеживанием состояния.
С помощью расширяемости заголовков в рабочий процесс добавляются файлы cookie HTTP, что позволяет создавать сеансы для каждого HTTP-запроса для совместного использования одного и того же контекста или одного и того же состояния.
HTTP и соединения
Соединение контролируется на транспортном уровне и, следовательно, принципиально выходит за рамки HTTP.
HTTP не требует, чтобы базовый транспортный протокол был основан на соединении; требуется только, чтобы он был надежным или не терял сообщения (как минимум, в таких случаях выдавая ошибку).
Среди двух наиболее распространенных транспортных протоколов в Интернете TCP является надежным, а UDP — нет.
Таким образом, HTTP опирается на стандарт TCP, основанный на соединении.
Прежде чем клиент и сервер смогут обменяться парой HTTP-запрос/ответ, они должны установить TCP-соединение, процесс, для которого требуется несколько круговых обходов.
По умолчанию HTTP/1.0 открывает отдельное TCP-соединение для каждой пары HTTP-запрос/ответ.
Это менее эффективно, чем совместное использование одного TCP-соединения, когда несколько запросов отправляются друг за другом.
Чтобы смягчить этот недостаток, в HTTP/1.1 была введена конвейерная обработка (которая оказалась трудной для реализации) и постоянные соединения : базовое TCP-соединение можно частично контролировать с помощью заголовка Connection
.
HTTP/2 пошел еще дальше, мультиплексируя сообщения по одному соединению, помогая сохранять соединение теплым и более эффективным.
В настоящее время проводятся эксперименты по разработке лучшего транспортного протокола, более подходящего для HTTP.
Например, Google экспериментирует с QUIC, который основан на UDP, чтобы обеспечить более надежный и эффективный транспортный протокол.
Эта расширяемая природа HTTP со временем позволила расширить возможности управления и функциональности Интернета.
Методы кэширования и аутентификации были функциями, которые обрабатывались в начале истории HTTP.
Напротив, возможность ослабить ограничение источника была добавлена только в 2010-х годах.
Вот список общих функций, которыми можно управлять с помощью HTTP:
- Кэширование :
Кэшированием документов можно управлять с помощью HTTP.
Сервер может указать прокси и клиентам, что кэшировать и как долго.
Клиент может указать прокси-серверам промежуточного кэша игнорировать сохраненный документ. - Ослабление ограничения источника :
Чтобы предотвратить отслеживание и другие вторжения в частную жизнь, веб-браузеры обеспечивают строгое разделение между веб-сайтами.
Только страницы из того же источника могут получить доступ ко всей информации веб-страницы.
Хотя такое ограничение является бременем для сервера, заголовки HTTP могут ослабить это строгое разделение на стороне сервера, позволяя документу стать лоскутным одеялом информации, полученной из разных доменов; для этого могут быть даже причины, связанные с безопасностью. - Аутентификация :
Некоторые страницы могут быть защищены, чтобы доступ к ним могли получить только определенные пользователи.
Базовая аутентификация может быть обеспечена HTTP, либо с использованиемWWW-Authenticate
и аналогичных заголовков, либо путем установки определенного сеанса с использованием файлов cookie HTTP. - Прокси и туннелирование :
Серверы или клиенты часто располагаются в интрасетях и скрывают свой истинный IP-адрес от других компьютеров.
Затем HTTP-запросы проходят через прокси-серверы, чтобы преодолеть этот сетевой барьер.
Не все прокси являются HTTP-прокси.
Протокол SOCKS, например, работает на более низком уровне.
Другие протоколы, такие как ftp, могут обрабатываться этими прокси-серверами. - сеансов :
Использование файлов cookie HTTP позволяет связать запросы с состоянием сервера.
Это создает сеансы, несмотря на то, что базовый HTTP является протоколом без состояния.
Это полезно не только для корзин покупок электронной коммерции, но и для любого сайта, позволяющего пользователю настраивать вывод.
Когда клиент хочет связаться с сервером, конечным сервером или промежуточным прокси, он выполняет следующие шаги:
- Откройте TCP-соединение: TCP-соединение используется для отправки запроса или нескольких и получения ответа.
Клиент может открыть новое соединение, повторно использовать существующее соединение или открыть несколько TCP-соединений с серверами. - Отправить HTTP-сообщение: HTTP-сообщения (до HTTP/2) удобочитаемы.
В HTTP/2 эти простые сообщения инкапсулируются во фреймы, что делает невозможным их прямое чтение, но принцип остается прежним.
Например:ПОЛУЧИТЬ/HTTP/1.1 Хост: developer.mozilla.org Accept-Language: fr
- Прочитайте ответ, отправленный сервером, например:
HTTP/1.1 200 ОК Дата: 09 октября 2010 г., 14:28:02 по Гринвичу Сервер: Апач Последнее изменение: Вт, 01 декабря 2009 г.20:18:22 по Гринвичу ETag: "51142bc1-7449-479b075b2891b" Допустимые диапазоны: байты Длина контента: 29769 Тип содержимого: текст/html … (здесь идут 29769 байт запрошенной веб-страницы)
- Закройте или повторно используйте соединение для дальнейших запросов.
Если активирована конвейерная обработка HTTP, можно отправить несколько запросов, не дожидаясь полного получения первого ответа.
Конвейерную обработку HTTP оказалось трудно реализовать в существующих сетях, где старые части программного обеспечения сосуществуют с современными версиями.
Конвейерная обработка HTTP была заменена в HTTP/2 более надежным мультиплексированием запросов внутри кадра.
Сообщения HTTP, определенные в HTTP/1.1 и более ранних версиях, удобочитаемы.
В HTTP/2 эти сообщения встроены в двоичную структуру, кадр , что позволяет выполнять такие оптимизации, как сжатие заголовков и мультиплексирование.
Даже если в этой версии HTTP отправляется только часть исходного HTTP-сообщения, семантика каждого сообщения остается неизменной, и клиент воссоздает (виртуально) исходный запрос HTTP/1.1.
Поэтому полезно понимать сообщения HTTP/2 в формате HTTP/1.1.
Существует два типа HTTP-сообщений: запросы и ответы, каждый из которых имеет собственный формат.
Запросы
Пример HTTP-запроса:
Запросы состоят из следующих элементов:
- HTTP-метод, обычно глагол типа
GET
,POST
или существительное вродеOPTIONS
илиHEAD
, который определяет операцию, которую хочет выполнить клиент.
Как правило, клиент хочет получить ресурс (используяGET
) или отправить значение HTML-формы (используяPOST
), хотя в других случаях может потребоваться больше операций. - Путь ресурса для выборки; URL-адрес ресурса, очищенный от очевидных из контекста элементов, например без протокола (
http://
), домена (здесьdeveloper.mozilla.org
) или TCP-порта (здесь80
). - Версия протокола HTTP.
- Необязательные заголовки, передающие дополнительную информацию для серверов.
- Тело для некоторых методов, таких как
POST
, аналогично ответам, которые содержат отправленный ресурс.
Ответы
Пример ответа:
Ответы состоят из следующих элементов:
- Версия протокола HTTP, которому они следуют.
- Код состояния, указывающий, был ли запрос успешным и почему.
- Сообщение о состоянии, неавторизованное краткое описание кода состояния.
- HTTP-заголовки, такие как для запросов.
- Необязательно тело, содержащее выбранный ресурс.
Наиболее часто используемым API на основе HTTP является API XMLHttpRequest
, который можно использовать для обмена данными между агентом пользователя и сервером.
Современный Fetch API
предоставляет те же функции с более мощным и гибким набором функций.
Другой API, события, отправленные сервером, представляет собой одностороннюю службу, которая позволяет серверу отправлять события клиенту, используя HTTP в качестве транспортного механизма.
Использование EventSource
, клиент открывает соединение и устанавливает обработчики событий.
Браузер клиента автоматически преобразует сообщения, поступающие в потоке HTTP, в соответствующие объекты Event
. Затем он доставляет их обработчикам событий, которые были зарегистрированы для событий типа
, если они известны, или обработчику событий onmessage
, если не был установлен обработчик событий конкретного типа.
HTTP — это расширяемый протокол, который прост в использовании.
Структура клиент-сервер в сочетании с возможностью добавления заголовков позволяет HTTP развиваться вместе с расширенными возможностями Интернета.
Хотя HTTP/2 добавляет некоторую сложность за счет встраивания сообщений HTTP во фреймы для повышения производительности, базовая структура сообщений осталась неизменной со времен HTTP/1.0.
Поток сеанса остается простым, что позволяет исследовать и отлаживать его с помощью простого монитора HTTP-сообщений.
Последнее изменение: , участниками MDN
Основы HTTP — HTTP
HTTP — это расширяемый протокол, основанный на таких понятиях, как ресурсы и унифицированные идентификаторы ресурсов (URI), простая структура сообщения и поток связи клиент-сервер. Помимо этих базовых концепций, за прошедшие годы были разработаны многочисленные расширения, добавляющие обновленную функциональность и семантику с новыми методами или заголовками HTTP.
- Обзор HTTP
Описывает, что такое HTTP и его роль в веб-архитектуре, включая его положение в стеке протоколов.
- Эволюция HTTP
HTTP был создан в начале 1990-х и несколько раз расширялся. Эта статья рассказывает о его истории и описывает HTTP/0.9, HTTP/1.0, HTTP/1.1 и современный HTTP/2, а также новинки, появившиеся за эти годы.
- Ресурсы и URI
Краткое введение в концепцию ресурсов, идентификаторов и местоположений в Интернете.
- Идентификация ресурсов в Интернете
Описывает, как ссылаются на веб-ресурсы и как их найти.
- URL-адреса данных
Определенный тип URI, непосредственно встраивающий ресурс, который он представляет. URL-адреса данных очень удобны, но имеют некоторые оговорки.
- URL ресурсов «>
Нестандартный
- URL-адреса ресурсов
с префиксом
схемы ресурса
используются браузерными расширениями Firefox и Firefox для внутренней загрузки ресурсов, но также доступны для некоторых сайтов, к которым подключается браузер. - MIME-типы
Начиная с HTTP/1.0, можно передавать различные типы содержимого. В этой статье объясняется, как это достигается с помощью заголовка
Content-Type
и стандарта MIME.- Выбор между URL-адресами с www и без www
В этой статье приведены рекомендации о том, как выбрать, использовать ли домен с префиксом www или нет, а также о последствиях этого выбора.
- Поток сеанса HTTP
В этой статье описывается типичный сеанс HTTP; то есть что происходит, когда вы переходите по ссылке или загружаете изображение на веб-страницу.
- HTTP-сообщения
HTTP-сообщения, передаваемые во время запросов или ответов, имеют очень четкую структуру.
В этой вводной статье описывается эта структура, ее назначение и возможности.
- Структура кадра и сообщения в HTTP/2
HTTP/2 инкапсулирует и представляет сообщения HTTP/1.x в двоичном фрейме. В этой статье объясняется структура кадра, его назначение и способ кодирования.
- Управление соединением в HTTP/1.x
HTTP/1.1 была первой версией HTTP, поддерживающей постоянное соединение и конвейерную обработку. В этой статье объясняются обе концепции.
- Управление соединением в HTTP/2
HTTP/2 полностью пересмотрел то, как создаются и поддерживаются соединения. В этой статье объясняется, как кадры HTTP обеспечивают мультиплексирование и решают проблему блокировки «заголовка строки» предыдущих версий HTTP.
- Согласование содержимого
HTTP вводит набор заголовков, начиная с
Accept
, как способ для браузера объявить предпочтительный формат, язык или кодировку.