Тестирование безопасности - основы протокола 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