Example Domain

HTTP простыми словами

HTTP (HyperText Transfer Protocol) изначально предназначался для передачи гипертекста (HTML документов), но сейчас этот протокол прикладного уровня используется для передачи различных файлов (видео, аудио, изображений и т.д.) и массивов данных. HTTP реализует технологию передачи данных «клиент-сервер», которая позволяет различным веб-приложениям общаться между собой. Для лучшего понимания технологию «клиент-сервер» можно перефразировать как «запрос-ответ».

Самым простым примером является просмотр веб-сайтов в браузере. Браузер является клиентом. Когда вы переходите на любой веб-сайт, браузер формирует и отправляет запрос на получение данных к серверу, на котором и находится запрашиваемый веб-сайт. Сервер, получая запрос, обрабатывает его, отдает клиенту (браузеру) ответ, браузер получает ответ (данные) и показывает пользователю. Миллионы и миллиарды разных веб-сервисов в сети интернет используют HTTP.

Цепочка передачи данных может быть простой, состоящей всего из двух звеньев (клиента и сервера), а может быть более сложной. Помимо клиента и сервера может присутствовать еще прокси-сервер, который выступает как посредник между клиентом и сервером.

Простая схема HTTP запроса

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

Читайте также:  Php calling function with variable

Схема HTTP запроса с использование проски-сервера

Стоит отметить, что серверы могут в определенных ситуациях выполнять роль клиентов и обращаться к другим серверам, но никогда сервер не может обратиться к клиенту. Какие бы задачи не выполняли посредники и серверы, всегда все составляющие жизненного цикла HTTP делятся на три категории:

  • Клиенты — это начальные (отправляют запросы) и конечные (получают ответы) звенья цепочки. Клиентами являются десктопные или веб-браузеры, различные консольные утилиты (cURL, Wget и т.д.).
  • Серверы (исходные серверы) выполняют обработку запросов, хранят, обрабатывают и отдают данные. Реализацией являются веб-серверы: Nginx, Apache и т.д.
  • Посредники (прокси-серверы) выполняют роль шлюза, являются промежуточным звеном между клиентами и серверами. Реализации: Nginx, Squid и т.д.

HTTP-запрос

Неважно, отправляет запрос браузер или консольная утилита, запрос представляет собой HTTP сообщение специального формата. В самом начале сообщения указывается «стартовая строка», следующего формата: Метод URI HTTP/Версия .

  • Метод является типом запроса и представляет собой одно слово, состоящее из заглавных букв. Подробнее о методах запроса.
  • URI — это путь к ресурсу (документу) на запрашиваемом сервере (веб-сайте).
  • Версия — это версия протокола, в соответствии с которой производится запрос.

Сразу под стартовой строкой идут заголовки, представляющие собой обычные текстовые строки определенного формата. Каждый заголовок находится на новой строке и состоит из имени и значения, разделенными двоеточием.

Следом за заголовками идет как минимум одна пустая строка, выполняющая роль разделителя, а затем передаваемые данные, которые называются «телом сообщения». В отличие от стартовой строки и заголовков тело сообщения является необязательным.

Заголовков в запросе может быть много, но для примера добавим только Host , в котором указывается IP-адрес сервера или доменное имя сайта. Для получения контента главной страницы сайта example.com нужно отправить HTTP сообщение, состоящее всего из двух строк.

GET / HTTP/1.1 Host: example.com 

HTTP-ответ

На предыдущий запрос получаем ответ в виде следующего HTTP-сообщения:

HTTP/1.1 200 OK Age: 449392 Cache-Control: max-age=604800 Content-Type: text/html; charset=UTF-8 Date: Tue, 12 May 2020 09:14:13 GMT Etag: "3147526947+ident" Expires: Tue, 19 May 2020 09:14:13 GMT Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT Server: ECS (nyb/1D10) Vary: Accept-Encoding X-Cache: HIT Content-Length: 1256          

Example Domain

This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.

More information.

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

В данном случае тело сообщения представляет собой HTML-код главной страницы сайта example.com, с помощью которого происходит отображение этой странице в браузере. Также подтверждает, что возвращается контент в виде HTML-кода специальный заголовок Content-Type , а длину возвращаемого контента содержит Content-Length . Подробнее о заголовках для описания контента.

Content-Type: text/html; charset=UTF-8 Content-Length: 1256 

Чем отличается HTTP от HTTPS?

HTTPS (HyperText Transfer Protocol Secure) — это тот же самый HTTP, но он добавляет шифрование передаваемых данных, используя криптографические протоколы, такие как SSL или TLS. На сервере размещается специальный сертификат и приватный ключ, с помощью которых происходит проверка подлинности, шифрование и расшифрование данных.

Если объяснить своими словами и не вдаваться в технические подробности создания «секретов сессий» при «рукопожатиях» клиента и сервера, то передача данных по HTTPS происходит следующим образом: при посещении веб-сайта браузер делает запрос к серверу для получения информации об сертификате; получив копию SSL-сертификата со специальным ключом шифрования, проверяет подлинность сертификата. Если проверка проходит успешно, то используя полученный ключ, шифрует и отправляет данные на сервер, где они расшифровываются. Ключ действителен только для текущей сессии и уничтожается после ее завершения.

HTTP передает данные в «сыром» виде никак их не шифруя, поэтому перехватив их, злоумышленник может завладеть конфиденциальными данными, а если они будут зашифрованы, то даже, перехватив данные, ни имея ключа, их будет практически невозможно расшифровать. HTTP по умолчанию использует 80 TCP-порт, а HTTPS использует 443.

Похожие записи

Источник

Difference between HTML and HTTP

Many folks get confused between these two terms which are associated with the Web. Are they really same? First thing first. HTML is a Language while HTTP is a Protocol. Doesn’t make much sense. it’s okay! We’ll discuss it in more detail.

HTML (Hypertext Markup Language) is a language for marking the normal text so that it gets converted into hypertext. Again, not so clear. Basically, HTML tags (e.g. “”, “” etc.) are used to tag or mark normal text so that it becomes hypertext and several hypertext pages can be interlinked with each other resulting in the Web. Please note that the HTML tags are used to help render web pages as well in the Browser. On the contrary, HTTP (Hypertext Transfer Protocol) is a protocol for transferring the hypertext pages from Web Server to Web Browser. For exchanging web pages between Server and Browser, an HTTP session is setup using protocol methods (e.g. GET, POST etc.). This would be explained in another post.

To understand this difference between HTML and HTTP, we can think of an analogy. Think of HTML as C language and HTTP as FTP. Now one can write C programs in C language and then one can transfer these C programs from Server to Clients using FTP (i.e. File transfer protocol). Same way, web pages (which are mostly HTML pages) are written in HTML and these web pages are exchanged between Server and Clients using HTTP. Since HTML is a language and HTTP is a protocol, they are two different things though related. In fact, it’s possible to exchange HTML web pages without HTTP (e.g. using FTP to transfer HTML pages). Even, it’s possible to transfer non HTML pages using HTTP (e.g. using HTTP to transfer XML pages). More details on XML in some other post. We hope that the above clarifies the difference between HTML and HTTP.

Источник

HTML и HTTP. Эти два популярные на сегодняшний день слова

http

Эта статья адресована для всех тех, кто хочет освежить в своей памяти или узнать, что означают эти два очень популярные на сегодняшний день в Интернете слова — HTML и HTTP. По возможности все написано максимально понятным языком. Также совсем чуть-чуть поговорим о связи между HTML и Мультимедиа.

Для начала HTTP и HTML — это разные вещи и желательно их не путать.

Что такое HTTP?

HTTP – это протокол по которому вы получаете web страницы с Интернета. На сегодняшний день этот протокол используется повсеместно. Например, когда вы хотите зайти на какой-то web-сайт, вы набираете в своем Интернет браузере адрес страницы. Также перед адресом вы можете указать протокол, по которому будет передана web-страница, например, http://. Это как раз и есть тот самый HTTP протокол. Также бывает https://, что означает безопасное соединение. Т.е. вся информация будет передаваться в зашифрованном виде. ОК, теперь разберем, что означает слово протокол. Предлагаю простой вариант определения, постарался убрать все лишнее.

Протокол передачи данных – набор соглашений и правил, обеспечивающий передачу информации между программным обеспечением и разнесённой в пространстве аппаратурой. Протоколов существует огромное множество. Например, электронную почту вы получаете по протоколу SMTP, когда используете почтовый клиент (Outlook, The Bat и др.).

Теперь, что такое HTML?

HTML – это язык разметки, с помощью которого создается большинство веб-страниц в Интернете. Язык HTML обрабатывается вашим браузером и отображается в виде web-страницы, т.е. в удобном для восприятия формате.

Давайте создадим что-нибудь простенькое с использованием языка HTML.

  1. Сначала создадим файл, например hello.html . Расширение html, как раз означает, что данный файл будет содержать язык разметки HTML.
  2. Поместим в этот файл следующие строчки языка HTML:





Привет! 🙂

Теперь я помещаю этот файл на свой web-сервер. Web-сервер – это программа, установленная на сервере, которая обрабатывает ваши запросы и выдает запрашиваемые web-страницы и не только.

Далее вы можете запросить эту HTML страничку, в вашем браузере, по адресу http://itmultimedia.ru/hello.html . Вы должны увидеть сообщение – “Привет! :)”. Получается, вы получили HTML страницу по протоколу HTTP.

HTML и Мультимедиа.

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

Также на сегодняшний день, сайты и блоги вы можете создавать без каких либо знаний о HTML разметке и др. Так как, существуют специальные Интернет сервисы, на которых вы можете быстро создать свои страницы с использованием дружественного и понятного взаимодействия с Интернет сервисом (например в социальной сети vkontakte или facebook). Но в любом случае, понимание того, что означает HTML и HTTP всегда может вам пригодиться. Если у вас появилось желание создать свою простенькую страницу на HTML, в Интернете вы сможете найти огромное количество информации об этом.

Приглашаю всех подписаться на новости моей публичной страницы ВКонтакте, ее адрес http://vk.com/itmultimedia . Буду рад видеть Вас в своих подписчиках!

Всего хорошего!

Источник

Оцените статью