лимит загрузки получения заголовков в php - PullRequest
1 голос
/ 30 октября 2010

Собственная функция php get_headers () загружает весь контент или останавливает загрузку после получения заголовка?

Ответы [ 2 ]

1 голос
/ 30 октября 2010

Я не могу проверить это прямо сейчас, но согласно этому комментарию в руководстве :

Если кому-то любопытно, как мне, эта функция не отправляет глагол HEAD. Вместо этого он отправляет GET. Что в моем случае не идеально, потому что мне нужен быстрый способ получить статус HTTP (200, 404 и т. Д.). Проблема с GET заключается в том, что для таких случаев, как мой, я не хочу, чтобы все издержки с данными, которые возвращается.

действительно, полное тело ответа передается каждый раз.

Примите это с крошкой соли, но, учитывая, что в руководстве не упоминается метод HEAD, я думаю, что это правильно.

0 голосов
/ 31 октября 2010

get_headers захватывает только часть заголовка ответа и сбрасывает соединение.

Я вхожу в интерактивный режим, используя php -a, выдав команду:

php > print_r( get_headers('http://ftp.linux.org.tr/ubuntu-releases//maverick/ubuntu-10.10-desktop-i386.iso'));
Array
(
[0] => HTTP/1.1 200 OK
[1] => Date: Sat, 30 Oct 2010 23:33:12 GMT
[2] => Server: Apache/2.2.13 (FreeBSD)
[3] => Last-Modified: Thu, 07 Oct 2010 16:25:11 GMT
[4] => ETag: "c7e78fe-2b528000-492095688a7c0"
[5] => Accept-Ranges: bytes
[6] => Content-Length: 726827008
[7] => Connection: close
[8] => Content-Type: application/octet-stream
)

Это заняло менее 1 секунды.,Поскольку chrome сообщает, что загрузка ubuntu заняла 1 день, по сравнению с ответом get_headers в течение 1 секунды, сборка должна включать только заголовки.

...