Параметр “q” в HTTP заголовку “Accept”

1. Клієнти API підтримують кілька форматів

REST API може повертати представлення ресурсу в багатьох форматах – точніше, MIME-типи . Клієнтська програма або браузер може запитувати будь-який підтримуваний тип MIME у заголовку HTTP Accept .

Технічно Accept Header може мати кілька значень у формі значень, розділених комами.

Наприклад, Accept Header із запитом text/html або application/xml формати можна встановити як:

Accept : text/html,application/xml

2. Параметр “q”.

Іноді клієнти можуть захотіти встановити свої параметри, коли запитують кілька MIME типів. Для встановлення цього параметра використовується параметр q (відносний коефіцієнт якості).

Значення параметра q може бути від 0 до 1. 0 є найнижчим значенням (тобто найменш бажаним), а 1 є найвищим (тобто найбільш бажаним).

Зразок використання може бути:

Accept : text/html, application/xml;q=0.9, */*;q=0.8

У наведеному вище прикладі клієнт вказує серверу, що він віддасть перевагу спочатку отримати відповідь у форматі text/html.

Якщо сервер не підтримує формат text/html для запитуваного ресурсу, він повинен надіслати формат application/xml. Якщо жоден із обох форматів недоступний, надішліть відповідь у будь-якому форматі, який він підтримує (*/*).

  • Однією з переваг параметра «q» є мінімізація взаємодії клієнт-сервер, яка могла статися через невдалі переговори щодо вмісту.
  • Це також дозволяє клієнтам отримувати типи вмісту, про які вони можуть не знати, зірочка «*» може використовуватися замість другої половини значення типу MIME або обох половин.

3. Відповідно до специфікацій HTTP

Ось як це визначає специфікація HTTP:

За кожним медіа-діапазоном МОЖЕ йти один або більше параметрів accept-params, починаючи з параметра «q» для вказівки відносного фактора якості. Перший параметр «q» (якщо є) відокремлює параметр(и) медіа-діапазону від параметрів accept-params.

Фактори якості дозволяють користувачеві або агенту користувача вказати відносний ступінь переваги цього медіа-діапазону, використовуючи шкалу значень «q» від 0 до 1.

Значення за замовчуванням — 1 .

Якщо існує два типи MIME для одного q значення, то виграє більш конкретний тип між обома.

Наприклад, якщо обидва параметри application/xml і */* мають значення 0,9 application/xml, сервер обслуговуватиме їх.

Якщо Accept поле заголовка відсутнє, припускається, що клієнт приймає всі типи носіїв.

Якщо Accept поле заголовка присутнє, і якщо сервер не може надіслати відповідь, яка є прийнятною відповідно до об’єднаного Accept значення поля, тоді сервер повинен надіслати статус 406 (not acceptable) відповідь.

      0 0 голосів
      Рейтинг статті
      Підписатися
      Сповістити про

      Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.

      0 Коментарі
      Старіші
      Новіші Найпопулярніші
      Вбудовані Відгуки
      Переглянути всі коментарі