Pull to refresh

Как изучить http протокол

Reading time2 min
Views6.6K
Сегодня хочу рассказать о том, как я начинал изучать основы HTTP протокола, прибегая к мануалам только в крайних случаях. Точно уже и не помню с какой целью мне понадобилось узнать как же все работает на самом деле, то ли я хотел заспамить какой-то провинившийся форум, то ли у меня были более благородные цели (хотя что может быть благороднее чем заспамить неугодный форум?). Так или иначе, в моей голове созрела мысль: нужно узнать, как работает HTTP протокол.

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

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

Допустим мне нужно узнать, какой POST запрос формирует браузер при отсылке заполненной веб-формы. Тогда, чтобы узнать всю интересующую меня информацию нужно сделать так:

1. Создаеть небольшой скрипт на PHP, который будет запускаться на локальной машине для прослушки 80-го порта. Особенность скрипта в том, что он вываливает все полученные данные на экран, ничего не утаивая от моего пытливого взора;
2. В браузере открыть страницу с интересующей нас веб-формой ( это должно быть что-то на подобии www.some-url.com/webform.html);
3. Заполнить все поля формы;
4. Открыть файл hosts (в ОС Linux данный файл находится по адресу /ets/hosts, а в Windows ищите сами, бог знает куда ушлые ребята из Мелкософта могли его засунуть. Кто найдет, может отписаться в комментарии! :-))) ). В конец файла нужно дописать: 127.0.0.1 www.some-url.com
5. Вернуться в браузер и нажать кнопку “Отправить” (или какая там кнопка предусмотрена для отправки формы)

Собственно это все! В результате, наивный браузер отправит форму не на www.some-url.com, а нашему скрипту, который, в свою очередь, все отобразит на экране. Нам останется только проанализировать полученные данные (тут уж без мануала не обойтись, но, согласитесь, гораздо проще посмотреть пару тройку параметров, чем шерстить несколько десятков страниц).

Вероятно вы зададите вопрос, есть ли другие способы получить заголовки? Конечно есть, например, можно использовать снифер, или, скажем, специальные плагины для любимого барузера. Но мой метод тоже очень хорош, и вот почему:
1. Он простой! Даже первоклассник без труда сможет проделать все описываемые процедуры;
2. Он независим от браузера, в конечном итоге не браузерами одними жив HTTP протокол, есть еще RSS-ридеры и другие подобные программы;
3. Он кросплатформенный, безусловный плюс!
4. Он позволяет получить заголовки “как есть” и перенести в свою программу простым копи-пастом;
5. Он открывает обширные возможности для анализа и экспериментирования.

Собственно, это все.

— Оригинал HTTP протокол — это просто
Tags:
Hubs:
-10
Comments32

Articles

Change theme settings