Статьи

PHP и HTTP заводят друзей

Если вы ищете 15- минутную переадресацию, стоит использовать pecl_http , в частности файл tutorial.txt

В основном дает PHP серьезную поддержку HTTP. Некоторые конкретные вещи это делает;

  • Для исходящих ответов добавляет набор функций, которые уменьшают усилия, которые вы обычно выполняете с заголовком, например, http_date () для создания дат RFC 822/1123 из метки времени Unix.
  • Для входящих запросов добавляются другие функции, облегчающие работу, которую вы обычно выполняете с помощью get_headers (), например http_negotiate_charset () (которая может оказаться полезной, как только мы нажмем на PHP6 [PDF]).
  • Предоставляет оболочку с круглым скручиванием, которая имеет дружественный API (например, регистрирует классы, такие как HTTPRequest и HTTPMessage — API, подобно Perl LWP ).
  • Используя класс HttpRequestPool, поддерживает запросы parellel и даже имеет механизм, который позволит вашему коду делать что-то, ожидая завершения запросов. Подумайте, асинхронный XMLHttpRequests в Javascript;) Есть хороший пример создания агрегатора RSS, который будет еще одним решением недавней проблемы Кристиана.
  • Пожалуй, самый крутой из всех, предоставляет класс HTTPResponse, который, кажется, тесно интегрирован с PHP и, помимо прочего, требует обработки для вас кеширования HTTP (условные GET, ETAG и т. Д.).

Этот последний момент особенно интригует — похоже, вам просто нужно активировать класс HTTPResponse, затем он автоматически проверяет ваш контент и выясняет, что изменилось. pecl_http описывает это как;

Одной из основных ключевых особенностей HttpResponse является HTTP-кэширование. HttpResponse рассчитает ETag на основе настройки INI http.etag_mode, а также определит время последнего изменения отправленного объекта. Он использует эти два индикатора, чтобы решить, является ли запись кэша на стороне клиента все еще действительной, и при необходимости выдаст ответ «304 Не изменен».

Мне еще предстоит проверить это из первых рук (класс HTTPResponse требует PHP 5.1.x, который у меня сейчас недоступен), но пример учебника выглядит так;

 
<?php
HttpResponse::setCacheControl('public');
HttpResponse::setCache(true);
HttpResponse::capture();

print "This will be cached until content changes!n";
print "Note that this approach will only save the clients download time.n";
?>

Хотя это не спасет ваш сервер от работы по генерации контента, это поможет сэкономить пропускную способность.

Обратите внимание, что сейчас pecl_http недоступен через http://pecl4win.php.net, насколько я вижу, поэтому, если вы не знаете, что делаете, вы не сможете установить его под Windows (примечание: нужно чтобы увидеть, работает ли что-то подобное для PHP).

15 минут истекло. Если вы ищете дальнейшее использование, попробуйте HTTP Caching & Cache-Busting для Content Publishers