2016-03-12 3 views
0

Каждый браузер по умолчанию определяет «собственный», если не отправлен заголовками собственного Content-Type. Например, Firefox возвращает text/html; charset=utf-8.Заголовки, типы содержимого по умолчанию для браузеров, CLI, приложения

Если я проверяю Firefox на пустой странице и перезагружаю некоторый файл PHP, он вернет text/html; charset=utf-8 тип содержимого.

Это определяется из Firefox? Или сервер APACHE?

Я смущаюсь с DEFAULT `Content-Type 'или где я могу найти списки всех заголовков содержимого по умолчанию, если они не определены клиентом или не отправляют HTTP-заголовок Content-Type.

Например, в каком приложении используется запрос заголовка с RFC 822, например text/plain; charset=us-ascii.


  1. Что я могу сделать, это сначала получить доступные заголовки (например: text/plain;text/html) из браузеров, а затем установить в Content-Type для text/plain, если существует.

  2. Если не отправлены заголовки, я хочу знать, какой тип содержимого должен быть по умолчанию browser/cli. Возможны ли все списки по умолчанию для Content-Type для всех пользовательских агентов?


Реальный вопрос: Как получить Content-Type по умолчанию из браузера с помощью PHP, но не получает NULL. В браузере, если вы refresh, вы увидите заголовок Content-Type, но на PHP вы не получите.

+0

Это очень трудно понять ваш вопрос. Я прочитал это 10 раз и сдался: «Каждый браузер определил« собственный »по умолчанию, если не отправлен заголовками собственного Content-Type.' – Axalix

+0

Открыть firefox. Перейдите в 'about: config' и найдите' network.http.accept.default'. Вы можете увидеть заголовок HTTP-заголовка по умолчанию. Мне нужны списки других браузеров. Если вы попытаетесь получить 'Content-Type' с помощью' $ _SERVER', вы получите значение firefox default http 'network.http.accept.default'. Если вы установите использование заголовка, он изменится. Я хочу получить от $ _SERVER, но это невозможно. –

+0

По умолчанию PHP HTTP_CONTENT_TYPE имеет значение NULL. Если вы установите по отправленному заголовку, он изменится и вернет значение. Но я хочу знать ПЕРЕД и по ситуации, когда NULL. –

ответ

0

Мое решение таким образом:

  1. Проверьте HTTP_ACCEPT существует из браузера, если он существует, например:

    text/html 
    

    Изготавливают вернуться Content-Type: text/html

    Если не существует проверка

    */* 
    

    Сделать возвращает Content-Type:

    text/plain; us-ascii 
    

    Это по RFC 822: http://mattryall.net/blog/2008/03/default-content-type

    Тогда, если не определено, то используйте text/plain.

  2. Если не существует HTTP_ACCEPT, чем использование RFC 822 декларации как:

    text/plain; us-ascii 
    

    Это принимает для CLI и должен быть ASCII определяется RFC 822.

  3. Позднее браузер, такой как SAFARI проверяет расширение в URL, такие как .htm то должен быть text/html другим способом возвращает text/plain. По умолчанию новый браузер - text/html.

  4. Firefox 2 возвращает application/*, если не определен, поэтому в некоторой ситуации вы можете проверить с помощью USER_AGENT, а затем установить по умолчанию декларацию. Это старый браузер, и вам следует избегать этого.

  5. Я написал этот скрипт и отлично работает. Заголовка должна быть отправлена, если она была вызвана сценарием, и если она игла.

Если у вас есть предложения или если я ошибаюсь, пожалуйста, исправьте меня.