9.1 http

С http протоколом ты уже очень хорошо знаком. Но, скорее всего, ты не знаешь, что уже есть три версии таких протоколов. Как будущий Java-программист, ты должен хотя бы раз ознакомиться с этим делом.

Ниже я расскажу, какие виды протоколов бывают и в чем их особенности. А пока вот тебе картинка – изучай.

протоколы http

9.2 https

Начнем с первой модификации протокола http – протокола https. Это тот же http, но в него добавлено шифрование контента. Ведь Http-запросы и ответы — это обычные текстовые файлы. Ты бы, наверное, не хотел, чтобы все, что передает и получает твой браузер, ходило через интернет в открытом виде.

Для решения этой проблемы и был придуман протокол https (http+security). Когда ты пытаешься сделать запрос по https протоколу, то твой браузер сначала устанавливает соединение с требуемым сервером и запрашивает у него его SSL-сертификат.

Затем данный сертификат проверяется на подлинность: в нем содержится название домена и список публичных ключей тех, кто выдал серверу этот сертификат.

Если сертификат подлинный, тогда браузер устанавливает зашифрованное соединение с этим сервером. И уже внутри этого соединения передаются данные по протоколу http.

А так как информация о запрашиваемом ресурсе передается в самом протоколе, то при использовании https протокола, никто не может перехватить информацию о том, к каким именно ресурсам сервера браузер обращался.

Сегодня этот протокол стал стандартом de-facto и почти вытеснил старый добрый http.

Если кто-то попытается подменить сервер, к которому ты отправляешь https-запрос, то сертификат домена он подменить не сможет. Браузер поймет это дело, и вы увидите страницу типа такой:

9.3 http/2

Но в этом мире нет ничего, что нельзя было бы улучшить. После того, как компания Google выиграла войну браузеров, она решила подмять весь интернет под себя. И, конечно же, из-за благородной причины. Они решили улучшить протокол http.

Сказано – сделано. В новый стандарт передачи данных добавили:

  • Обязательное шифрование.
  • Сжатия данных в заголовках HTTP.
  • Сервер может высылать файлы еще до их запроса (push-технология).
  • Может быть несколько http-запросов через одно TCP-соединение.
  • Запросы обрабатываются как на конвейере (не нужно ждать ответа, чтобы послать новый запрос).
  • Протокол является бинарным (не нужно переводить непечатаемые символы в текст).

Большая часть этого скрыта от Java-программиста и поддерживается на уровне web-сервера и браузера.

9.4 http/3

Третья версия http протокола еще дорабатывается и самое большое ее нововведение – это отказ от TCP протокола. Данные будут идти сразу по UDP.

Вот так. Придумывали люди модель OSI, придумывали, а тут на тебе. Чего не сделаешь ради скорости. С другой стороны, может так и правильно. Сегодня в интернете передается очень много потокового видео, а там использовать UDP сам бог велел.

о с прелестями этого протокола уже ты будешь играться. Я свое уже отмучился :)

Более подробно про http/3 можно почитать

undefined
3
Опрос
null,  9 уровень,  8 лекция
недоступен
null
Протокол HTTP