💡Что такое HTTP и HTTPS? Чем они отличаются?



Продолжаем серию постов с разбором основных вопросов для Junior Java.



HTTP, HyperText Transfer Protocol (Протокол передачи гипертекста) — протокол прикладного уровня передачи данных.



Основой HTTP является технология «клиент-сервер»:

Потребители (клиенты), которые инициируют соединение и посылают запрос;

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



Для идентификации ресурсов HTTP использует глобальные URI.

HTTP не сохраняет своего состояния. Это означает отсутствие сохранения промежуточного состояния между парами «запрос-ответ».



Структура протокола:



Стартовая строка (starting line) — определяет тип сообщения;

Заголовки (headers) — характеризуют тело сообщения, параметры передачи и прочие сведения;



Тело сообщения (message body) — непосредственно данные сообщения. Обязательно должно отделяться от заголовков пустой строкой.

Заголовки и тело сообщения могут отсутствовать, но стартовая строка является обязательным элементом, так как указывает на тип запроса/ответа.



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



Различия HTTP и HTTPS:



HTTPS является расширением HTTP.

- HTTP использует не зашифрованное соединение. Соединение по HTTPS поддерживает шифрование.

- Работа по HTTP быстрей и менее ресурсоёмко, т.к. шифрование HTTPS требует дополнительных затрат.

- Порты по умолчанию: в случае HTTP это TCP-порт 80, для HTTPS - TCP-порт 443.



Jetbulb