Предусмотрена не только выработка соответствующего запроса GET, но и выполнение в минимальном объеме интерпретации возвращенного заголовка HTTP до определения того, был ли запрос выполнен успешно. Таковым запросом может быть обращение к странице www.ls.ua , представляющей брендовую одежду. Типичный ответ выглядит примерно так:
НТТР/1.1 200 ОК Date: Wed, 01 Mar 2000 17:00:41 GMT Server: Apache/1.3.6 (UNIX) Last-Modified: Mon, 31 Jan 2000 04:28:15 GMT Connection: close Content-Type: text/html <html> <head><title>Prestо Home Pag</title></head> <body> <hl>Welcome to Presto</hl>
Наиболее важной частью этого ответа является самая верхняя строка, которая указывает код состояния, характеризующий успешное или неудачное выполнение запроса. Эта строка начинается с кода версии протокола (в данном случае НТТР/1.1 за которым следует код состояния и сообщение о состоянии.
Код состояния — это трехзначное целое число, указывающее результат запроса. Как описано ранее, есть большое число кодов состояния, но нас интересует код 200, который указывает, что запрос был выполнен успешно и что далее следует за ним затребованный документ. Если эта клиентская программа обнаруживает код состоянии 200, то она пропускает заголовок и копирует тело документа на диск. В ином случае она рассматривает ответ как сообщение об ошибке. В этом сценарии мы не пытаемся обрабатывать ответы с кодом перенаправления или использовать другие развитые средства протокола HTTP.
Этот сценарий, который получает имя, аналогичное имени своего предшественника, web_fetch.pl, который состоит из двух частей. Основной сценарий считывает URL из командной строки и выполняет цикл select(). Вспомогательный модуль http_fetch применяется для контроля за состоянием выборки каждого URL. Он создает исходящее соединение, читает и интерпретирует заголовок HTTP и копирует возвращенный документ на диск.