Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Сеть > Удалить все header'ы из вывода


Автор: fridkaratel 20.1.2011, 21:21
Можно ли как-то поудалять все header'ы из вывода?

Зачем это надо?
Есть скрипт на сервере, который опрашивается AJAX'ом.
В кратце, если что-то на запрос вернулось, то TRUE.
Если же ничего не вернулось или вернулось не то, что надо, то FALSE.

Не нужны в header'е ни дата изменения, ни тип документа, ни кодировка.
Считаю, это сэкономит трафик, особенно,для мобильных устройств.

Автор: v1kee 21.1.2011, 23:55
Цитата(fridkaratel @  20.1.2011,  21:21 Найти цитируемый пост)
Можно ли как-то поудалять все header'ы из вывода?
Есть скрипт на сервере, который опрашивается AJAX'ом.

Ну если ты имеешь доступ к этому скрипту, то и регулируй весь вывод?
У меня примерно такой же скрипт опрашивается AJAX'ом, а скрипт в зависимости от результата выводит только несколько строк через echo
Ну а если ты передаешь какую то страницу то реж опять же все ненужное в ней перед отправкой и отправляй через echo

P.S. Может конечно не так понимаю вопрос.

Автор: fridkaratel 22.1.2011, 11:25
Вопрос не в этом состоял...

Я сервером возвращаю данные в JSON формате.
И скрипт их обрабатывает.

Но помимо этого сервер ещё возвращает и заголовки, например, Content-Type, Encoding, Last-Modified, Expires, Cache-Control и т.п.
Так вот можно это удалить из вывода?

В JS-скрипте явно прописано, что Content-Type - это JSON, Encoding - UTF8, Last-Modified - постоянно новое, Expires - через секунду, а Cache-Control - вообще не надо, т.к. данные всегда уникальны.
Поэтому и заголовки эти не имеют смысла.

ВотЬ... smile

Автор: skyboy 22.1.2011, 15:20
в РНР нет функции "unset_header".
если и делать это, то на уровне Apache, его конфига и директив http://httpd.apache.org/docs/2.0/mod/mod_headers.html.
если у тебя другой НТТР-сервер, то, соответственно, смотреть доки к твоему серверу.

Добавлено через 1 минуту и 49 секунд
точнее, функция-то есть(http://php.net/header_remove), но она убирает только те заголовки, которые были отправленны из скрипта явным образом при помощи вызова header()

Автор: fridkaratel 24.1.2011, 19:11
skyboy, спасибо ;)
Почитаю и попробую на уровне Apache...
Блин, я думал там попроще smile

Автор: ksnk 24.1.2011, 19:24
fridkaratel, неплохо бы еще понять, а стоит ли этот геморрой того, чтобы им заниматься? Неужели так много заголовков передается? 
Насколько удастся сократить передающийся объем и принесет ли это какую-нибудь пользу?.. Дело в том, что передача данных в tcp производится кадрами и затраты на обработку кадров не особенно сильно зависят от размера кадра. Обычный кадр - 1.5к максимум. Так что если бы даже удалось уменьшить передаваемый пакет в 2 раза с 1к до 500б, время на его передачу уменьшилось бы совсем даже не в 2 раза... Для больших объемов данных экономия на заголовках вообще не эффективна.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)