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

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

Протокол HTTP

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

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

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

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

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

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

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

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

Архитектура

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

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

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

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

HTTP - Недостатки

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

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

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

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

Сведения о протоколе HTTP

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

  • HTTP Parameters

  • HTTP Messages

  • HTTP Requests

  • HTTP Responses

  • HTTP Methods

  • HTTP Status Codes

  • HTTP Header Fields

  • HTTP Security