Форум для программистов - задавайте интересные вопросы - получайте квалифицированные ответы
Delphi "Общие принципы авторизации на удаленных сайтах".
  • MerryChapMerryChap June 2011
    Этой темой я открою цикл ответов и объяснений самых распространенных проблем, с которыми сталкиваются программисты Delphi при написании программ, которые должны взаимодействовать с удаленными WEB сайтами.
    Итак, у нас стоит задача при работе своей программы авторизоваться на неком удаленном сайте. Для простейшего примера я взял портал mail.ru
    Зарегистрировал там пользователя programmers с паролем 1234
    Итак, сначала немного теории: Авторизация на любом сайте происходит путем заполнения формы и отправки её данных некому удаленному крипту методом POST. На самом деле после того как вы заполнили формы и нажали на кнопку, данные отправятся в виде простой строки, содержащей все параметры и их значения разделенные разделителем.
    Все формы на страницах описываются тегом имеющим достаточное кол-во параметров, приведу самые нужные для нас:
    Параметр method
    Значение параметра method не зависит от регистра. Различают два метода — GET и POST. Существуют и другие методы, но они пока мало используются.
    GET
    Этот метод является одним из самых распространенных и предназначен для получения требуемой информации и передачи данных в адресной строке. Пары «имя=значение» присоединяются в этом случае к адресу после вопросительного знака и разделяются между собой амперсандом (символ &). Удобство использования метода GET заключается в том, что адрес со всеми параметрами можно использовать неоднократно, сохранив его, например, в «Избранное» браузера, а также менять значения параметров прямо в адресной строке.
    POST
    Метод POST посылает на сервер данные в запросе браузера. Это позволяет отправлять большее количество данных, чем доступно методу GET, поскольку у него установлено ограничение в 4 Кб. Большие объемы данных используются в форумах, почтовых службах, заполнении базы данных и т.д.

    Параметр Action
    Указывает обработчик, к которому обращаются данные формы при их отправке на сервер. В качестве обработчика может выступать CGI-программа или HTML-документ, который включает в себя серверные сценарии (например, Parser). После выполнения обработчиком действий по работе с данными формы он возвращает новый HTML-документ.

    Если параметр action отсутствует, текущая страница перезагружается, возвращая все элементы формы к их значениям по умолчанию.
    Итак, заходим на сайт Mail.ru и смотрим исходный код страницы.
    Ищем тег "


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




    areahref="http://agent.mail.ru" alt="Агент">Регистрация в почтеhref="http://r.mail.ru/cln2840/www.mail.ru/pages/help/index.html">width="14" height="14" alt="" class="right" />Имя selected="selected">@mail.ru>@inbox.ru>@bk.ru>@list.ru 



    Пароль
    value="" />Забыли?




    Чужой компьютер





  • MerryChapMerryChap June 2011
    Если параметр action отсутствует, текущая страница перезагружается, возвращая все элементы формы к их значениям по умолчанию.
    Итак, заходим на сайт Mail.ru и смотрим исходный код страницы.
    Ищем тег "


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




    areahref="http://agent.mail.ru" alt="Агент">Регистрация в почтеhref="http://r.mail.ru/cln2840/www.mail.ru/pages/help/index.html">width="14" height="14" alt="" class="right" />Имя selected="selected">@mail.ru>@inbox.ru>@bk.ru>@list.ru 



    Пароль
    value="" />Забыли?




    Чужой компьютер





    не вместилось в темку)
  • MerryChapMerryChap June 2011
    Странно почему то код который отправляю куда то пропадает...
Webparadox - разработка мобильных приложений под iOS и Android.