Понимание протокола HTTP (часть 3)

Опубликовано: 25 Марта, 2023

HTTP протокол

Что ж, в ходе последних двух статей по HTTP, которые я написал, становится ясно, что в протоколе HTTP есть изрядное количество. Это, безусловно, то, что я бы назвал «плотным» протоколом, просто потому, что в нем много всего. Так же, как DNS, является плотным протоколом из-за множества записей ресурсов и функций, которые они выполняют. Вы можете подумать, что «святая корова!» есть ли еще что-то в HTTP!?. Действительно есть, был бы ответ, и это довольно аккуратно, если вы спросите меня. Наличие таких протоколов, как HTTP, выполняющих так много различных задач с помощью встроенных показателей, таких как те, которые мы уже рассмотрели, — это немалый подвиг. Поэтому я снимаю шляпу перед разработчиками протокола HTTP во всех его версиях. Они, без сомнения, настоящие таланты.

С учетом сказанного, что еще можно покрыть. Мы подойдем к некоторым оставшимся частям протокола HTTP по частям. Также, как и было обещано во второй части, я быстро расскажу об использовании прокси-сервера HTTP, такого как прокси-сервер Spike. Этот превосходный инструмент был написан Дэйвом Айтелом, который сегодня также является одним из ведущих талантов в мире сетевой безопасности.

Что такое коды состояния?

Как и многие протоколы, HTTP работает по модели клиент/сервер. Логично, что при использовании этой модели возникла бы необходимость передавать состояния ошибок по мере их возникновения во время сеанса между веб-клиентом и веб-сервером. Имеет смысл, не так ли? Потому что, если бы у вас не было таких кодов состояния, все могло бы быстро стать очень грязным. Коды состояния, используемые многими протоколами прикладного уровня, разбиты на пять широких категорий, а именно:

Серия кодов состояния 1xx
Серия кодов состояния 2xx
Серия кодов состояния 3xx
Серия кодов состояния 4xx
Серия кодов состояния 5xx



Каждый протокол прикладного уровня обычно имеет определенные состояния ошибок, относящиеся к категориям, указанным выше. В нашем случае они следующие;

1xx серия

Код 100 Продолжить
Код 101 Переключение протоколов

2xx серии

Код 200 ОК
Код 201 Создано
Код 202 принят
Код 203 Неавторизованный


Есть еще несколько, начиная с серии 500. Все они доступны по этой ссылке. Надеюсь, вы не съежитесь, когда увидите, что это настоящий RFC для HTTP. Окончательным источником для любого протокола всегда является RFC. Найдены там будут все мельчайшие подробности, которые я люблю читать.

Клиентские запросы и команды

Теперь мы рассмотрели запрос GET, как мы видели в пакете, содержащем запрос веб-клиентов к веб-серверу, есть много других типов, которые мы можем увидеть в проблеме веб-клиента. Давайте покроем их! Ниже приведен список потенциальных запросов или действий веб-клиента к веб-серверу.

ПОЛУЧИТЬ
Веб-клиент запрашивает ресурс, который находится на веб-сервере

ПОЧТА
Это показывает, что веб-клиент отправляет информацию на веб-сервер и довольно часто используется, например, для заполнения онлайн-формы.

ПОМЕЩАТЬ
Это происходит, когда веб-клиент отправляет замещающий документ на веб-сервер.

ГЛАВА
Вы увидите это, когда веб-клиент запрашивает некоторую информацию о ресурсе на сервере и не запрашивает сам ресурс.

УДАЛИТЬ
Что ж, это довольно просто и используется для удаления документа с веб-сервера.

СЛЕД
Этого вы обычно не увидите, но оно используется, когда веб-клиент хочет, чтобы прокси заявляли о себе. Он часто используется для целей отладки.

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

СОЕДИНЯТЬ
Завершает различные клиентские методы подключение. Это используется, когда веб-клиент хочет подключиться к серверу HTTPS через прокси.

Как мы видим, существует довольно много методов, которые веб-клиент может использовать для общения с веб-сервером. При этом вы обычно будете видеть только запрос GET, а иногда и HEAD, если все, что вы делаете, это обычный просмотр. Все это полезно, если вы, возможно, пытаетесь отладить веб-приложение.

Кто-то украл мое печенье!

Вероятно, это был и не печенье-монстр. Существует довольно много неправильных представлений о файлах cookie, как я упоминал ранее в этой серии статей о HTTP. Один из самых больших, который я нахожу, это просто, что они собой представляют и что они делают? Всегда полезно быть как можно более образованным, и, используя это как способ перехода, давайте обсудим файлы cookie!

Что такое cookie? Проще говоря, это обычный текстовый файл, который хранится на клиентском компьютере веб-сервером. Этот файл cookie используется для хранения переменных сеанса, таких как ваше имя пользователя, пароль и прочую информацию. Сами файлы cookie не являются частью самого протокола HTTP, но в настоящее время считаются его синонимом. Некоторые веб-сайты заставляют вас принимать файлы cookie для правильной работы веб-сайта. Поэтому в некоторых случаях нецелесообразно полностью запрещать использование файлов cookie в настройках безопасности.

Существует два типа файлов cookie; сеансовый файл cookie, который действителен только на время подключения браузера к веб-сайту, и постоянный файл cookie, который сохраняется после завершения сеанса. Важно понимать, как я упоминал ранее, что файл cookie не является исполняемым файлом. При этом сами куки-файлы в идеале должны быть зашифрованы, чтобы предотвратить их случайное вскрытие.

Использование прокси-сервера Spike

Ранее я упоминал, что один из способов расширить ваши знания об HTTP — это использовать такой инструмент, как прокси-сервер Spike. Этот инструмент позволит вам перехватывать запросы веб-клиента и изменять их. Вы не хотите делать это против реального веб-сервера, иначе владельцы могут рассердиться на вас! Я предлагаю вам просто загрузить версию Apache и установить ее на домашний компьютер. Однако имейте в виду, что для использования Spike Proxy вам понадобится JRE на вашем компьютере. Как только это будет сделано, вы можете теперь вызвать Spike Proxy и начать изменять свои HTTP-запросы, чтобы увидеть, как ваш веб-сервер Apache будет реагировать на это.

Последние мысли

Участие в индустрии компьютерных сетей, в какой бы форме это ни принимало, означает, что вы должны постоянно совершенствовать свои навыки. Означает ли это изучение нового веб-сервера Windows или дальнейшее развитие ваших знаний о конкретном протоколе. Основная идея заключается в том, что вы должны выделить некоторое время, чтобы постоянно искать новую информацию для изучения. Оставаться на месте в этой отрасли не сулит ничего хорошего для долголетия в ней. Я искренне надеюсь, что этот цикл статей был вам интересен. Как всегда жду ваших отзывов, как хороших, так и плохих. До следующего раза!