Означает ли это «Любой MIME-тип»?

#angularjs #http

#angularjs #http

Вопрос:

В документе AngularJS вы можете увидеть следующий заголовок по умолчанию, добавляемый к каждому запросу:

 Accept: application/json, text/plain, * / * 
  

Я не смог найти, что означает * / *, но я полагаю, что это означает ЛЮБОЙ MIME-ТИП.
Я прав? Извините за глупый вопрос, но я нигде не смог найти его объяснения…

Большое спасибо.

Ответ №1:

Да. Из спецификации HTTP:

«Символ звездочки * используется для группировки типов носителей в диапазоны, при этом «* / *» указывает на все типы носителей»

Вы можете прочитать всю спецификацию в RFC 7231.

Комментарии:

1. Вы ссылаетесь на устаревшую спецификацию.

2. Да, но http / 2 не включает в себя никакого обсуждения этого и в соответствии со спецификацией http / 2: «Существующая семантика HTTP остается неизменной».

3. Я не имел в виду HTTP / 2.

4. Хорошо, но даже в этом случае информация о типе mime, о которой спрашивал OP, не обсуждается в RFC 7230, но находится в спецификации, которую я процитировал. Дополнительно: «Интерпретация поля заголовка не меняется между второстепенными версиями одной и той же основной версии HTTP, хотя поведение получателя по умолчанию в отсутствие такого поля может измениться. Если не указано иное, поля заголовка, определенные в HTTP / 1.1, определены для всех версий HTTP / 1.x «.

5. Это обсуждается в RFC 7231 (как указано в моем ответе).

Ответ №2:

Да, это означает все типы mime. Как вы можете видеть в стандартах HTTP 1.1.

Символ звездочки «*» используется для группировки типов носителей в диапазоны, где «* / *» указывает на все типы носителей, а «тип / *» указывает на все подтипы этого типа. Диапазон носителей МОЖЕТ включать параметры типа носителя, которые применимы к этому диапазону.

Комментарии:

1. Вы ссылаетесь на устаревшую спецификацию.

2. Устарел? Откуда вы это взяли? HTTP 1.1 — это фактическая спецификация для определений полей заголовка, даже если есть новая спецификация, это не означает, что старая устаревшая, это расширение 1.1. Оно не менялось до сих пор.

3. RFC 2616 устарел в RFC 7230 и сопутствующих спецификациях в июне 2014 года — см. rfc-editor.org/info/rfc2616 .

4. просто для уточнения; основная проблема здесь заключается не в цитировании RFC 2616, а в том, что * / * это допустимо (а это не так)

5. Ну, все это обсуждение бессмысленно. Цитата является частью спецификации, которая устарела из-за другой спецификации, которая напрямую наследуется от старой спецификации, которую я привел в своем ответе. Я также понял, что забыл использовать scape * . Кроме того, первоначальный вопрос был о Accept: */* том, что означает, что запрос принимает все типы mime в качестве ответа. Кроме того, правильный ответ уже дан и принят. В любом случае, спасибо за ваш вклад, обеспечивающий качество ответов stackoverflow.

Ответ №3:

* / * на самом деле недопустимо; пробелы здесь недопустимы (и на самом деле это была ошибка в документации angular)

*/* однако на самом деле означает «любой», см. RFC 7231, раздел 5.3.2 (https://greenbytes.de/tech/webdav/rfc7231.html#rfc.section.5.3.2.p.2 )