9.1 http
С http протоколом ты уже очень хорошо знаком. Но, скорее всего, ты не знаешь, что уже есть три версии таких протоколов. Как будущий Java-программист, ты должен хотя бы раз ознакомиться с этим делом.
Ниже я расскажу, какие виды протоколов бывают и в чем их особенности. А пока вот тебе картинка – изучай.
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 можно почитать
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ