Учебники

Тестирование безопасности — основы протокола HTTP

Понимание протокола очень важно, чтобы получить хорошее представление о тестировании безопасности. Вы сможете оценить важность протокола, когда мы перехватываем пакетные данные между веб-сервером и клиентом.

Протокол HTTP

Протокол передачи гипертекста (HTTP) — это протокол прикладного уровня для распределенных, совместных, гипермедиа информационных систем. Это основа для передачи данных для Всемирной паутины с 1990 года. HTTP — это общий протокол без протокола состояния, который можно использовать для других целей, а также с использованием расширения его методов запроса, кодов ошибок и заголовков.

По сути, HTTP — это протокол связи на основе TCP / IP, который используется для доставки таких данных, как файлы HTML, файлы изображений, результаты запросов и т. Д. Через Интернет. Он обеспечивает стандартизированный способ связи компьютеров друг с другом. Спецификация HTTP определяет, как запрашиваемые данные клиентов отправляются на сервер, и как серверы отвечают на эти запросы.

Основные характеристики

Существует три основных функции, которые делают HTTP простым, но мощным протоколом.

  • HTTP без установления соединения — HTTP-клиент, т. Е. Браузер инициирует HTTP-запрос. После выполнения запроса клиент отключается от сервера и ожидает ответа. Сервер обрабатывает запрос и повторно устанавливает соединение с клиентом для отправки ответа обратно.

  • HTTP не зависит от носителя — данные любого типа могут отправляться по протоколу HTTP, если и клиент, и сервер знают, как обрабатывать содержимое данных. Это необходимо как для клиента, так и для сервера, чтобы указать тип контента, используя соответствующий MIME-тип.

  • HTTP — без сохранения состояния — HTTP без установления соединения, и это является прямым результатом того, что HTTP является протоколом без сохранения состояния. Сервер и клиент знают друг друга только во время текущего запроса. После этого они оба забывают друг о друге. Из-за этой природы протокола ни клиент, ни браузер не могут сохранять информацию между различными запросами на веб-страницах.

HTTP без установления соединения — HTTP-клиент, т. Е. Браузер инициирует HTTP-запрос. После выполнения запроса клиент отключается от сервера и ожидает ответа. Сервер обрабатывает запрос и повторно устанавливает соединение с клиентом для отправки ответа обратно.

HTTP не зависит от носителя — данные любого типа могут отправляться по протоколу HTTP, если и клиент, и сервер знают, как обрабатывать содержимое данных. Это необходимо как для клиента, так и для сервера, чтобы указать тип контента, используя соответствующий MIME-тип.

HTTP — без сохранения состояния — HTTP без установления соединения, и это является прямым результатом того, что HTTP является протоколом без сохранения состояния. Сервер и клиент знают друг друга только во время текущего запроса. После этого они оба забывают друг о друге. Из-за этой природы протокола ни клиент, ни браузер не могут сохранять информацию между различными запросами на веб-страницах.

HTTP / 1.0 использует новое соединение для каждого обмена запросами / ответами, тогда как соединение HTTP / 1.1 может использоваться для одного или нескольких обменов запросами / ответами.

Архитектура

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

Архитектура HTTP

Протокол HTTP — это протокол запроса / ответа, основанный на архитектуре клиент / сервер, где веб-браузер, роботы, поисковые системы и т. Д. Действуют как клиенты HTTP, а веб-сервер выступает в качестве сервера.

  • Клиент — клиент HTTP отправляет запрос на сервер в форме метода запроса, URI и версии протокола, после чего следует сообщение, подобное MIME, содержащее модификаторы запроса, информацию о клиенте и возможный контент тела через соединение TCP / IP.

  • Сервер — HTTP-сервер отвечает строкой состояния, включая версию протокола сообщения и код успеха или ошибки, за которым следует MIME-подобное сообщение, содержащее информацию о сервере, метаинформацию объекта и возможное содержимое тела объекта.

Клиент — клиент HTTP отправляет запрос на сервер в форме метода запроса, URI и версии протокола, после чего следует сообщение, подобное MIME, содержащее модификаторы запроса, информацию о клиенте и возможный контент тела через соединение TCP / IP.

Сервер — HTTP-сервер отвечает строкой состояния, включая версию протокола сообщения и код успеха или ошибки, за которым следует MIME-подобное сообщение, содержащее информацию о сервере, метаинформацию объекта и возможное содержимое тела объекта.

HTTP — недостатки

  • HTTP не является полностью защищенным протоколом.

  • HTTP использует порт 80 в качестве порта по умолчанию для связи.

  • HTTP работает на уровне приложения. Для передачи данных необходимо создать несколько соединений, что увеличивает накладные расходы на администрирование.

  • Для использования HTTP не требуется шифрование / цифровые сертификаты.

HTTP не является полностью защищенным протоколом.

HTTP использует порт 80 в качестве порта по умолчанию для связи.

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

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

Протокол Http Подробности

Чтобы понять HTTP-протокол, нажмите на каждую из приведенных ниже ссылок.

Параметры HTTP

HTTP сообщения

HTTP-запросы

HTTP-ответы

Методы HTTP

Коды состояния HTTP

Поля заголовка HTTP

HTTP Security