15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту

Delphi >>> Сетевое программирование

Программирование CGI в Delphi и Kylix

Автор: Paul TOTH
Перевод с французского: Valery Votintsev

Содержание:


Переадресация

Заголовок HTTP-ответа

Мы уже знаем, что CGI-программа отсылает серверу заголовок, не отображаемый браузером:
  WriteLn('Content-Type: text/html');
  WriteLn(''); 

Вид заголовка для переадресации

Следует отметить, что в заголовке может быть приведено множество других директив, в частности, CGI-программа может переадресовать запрос на другую страницу...
Для переадресации достаточно вывести заголовок в следующем виде:
  WriteLn('Location: redirection.htm');
  WriteLn(''); 
Кроме того, ваш сервер автоматически добавляет в этот заголовок еще и свои собственные сообщения.
Допустим, вы запрашиваете в браузере URL http://yahoo.com. В этом случае вы получите от сервера следующий ответ:
  HTTP/1.0 302 Found
  Location: http://www.yahoo.com
Получив такой заголовок, браузер перезапрашивает у сервера новый URL http://www.yahoo.com, и в ответ получает следующее:
  HTTP/1.0 200 OK
  Content-Length: 9332
  Expires: Wed, 18 Mar 1998 08:00:03 GMT      
  Content-Type: text/html
  
  <html><head><title>Yahoo!</title>
  <base href="http://www.yahoo.com/"></head>
  <body><center>
  <form action="http://search.yahoo.com/bin/search">
  <a href="/bin/top3">
  <img width=460 height=59 border=0 usemap="#top3" ismap
    src="http://us.yimg.com/i/main32.gif" alt="Yahoo!"></a>
  <br>
  <table cellpadding=3 cellspacing=0>
    <tr>
      <td align=center nowrap>
  ...
Таким образом происходит просто переадресация на другую страницу!

И последнее замечание: вам не нужно заботиться самим о выводе строк типа "HTTP/1.0...", и "Content-Length: ...", поскольку это делает автоматически сам сервер.