HTTP-заголовки — это пары ключ-значение, передаваемые вместе с запросом или ответом: они несут метаданные о типе контента, токенах аутентификации и кастомной информации.
В `fetch` заголовки запроса устанавливаются в объекте options:
```javascript
const response = await fetch(url, {
headers: {
'Authorization': 'Token abc123',
'X-Custom-Header': 'my-value',
},
});
```
Можно также использовать класс `Headers` для более структурированного подхода:
```javascript
const headers = new Headers();
headers.set('Authorization', 'Token abc123');
headers.set('X-Request-ID', '42');
const response = await fetch(url, { headers });
```
Эндпоинт `/api/echo/` отражает обратно именно то, что вы отправили — он полезен для проверки того, что заголовки приходят так, как ожидается:
```javascript
const response = await fetch('https://apilearn.tukas.dev/api/echo/', {
headers: { 'X-Custom-Header': 'hello' },
});
const data = await response.json();
// data.headers содержит заголовки, полученные сервером
console.log(data.headers['X-Custom-Header']); // "hello"
```
Эхо-эндпоинт возвращает:
```javascript
{
method: "GET",
headers: { /* все заголовки запроса */ },
body: null,
query_params: {}
}
```
Отправьте GET `/api/echo/?color=blue&size=large`. Выведите метод и объект `query_params` из ответа.
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
// GET /api/echo/ с двумя параметрами запроса
// вывести method и query_params
}
main();
Отправьте POST к `/api/echo/` с JSON-телом `{name: "test"}` и заголовком `Content-Type: application/json`. Выведите отражённый заголовок `Content-Type` и поле `body`.
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
// POST /api/echo/ с JSON-телом и заголовком Content-Type
// вывести content-type заголовок и body из ответа
}
main();
Создайте объект `Headers` с помощью `.set()`, добавьте минимум два кастомных заголовка, затем передайте его в GET-запрос к `/api/echo/`. Выведите отражённые заголовки.
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
const headers = new Headers();
// добавить заголовки через .set()
// fetch и вывести отражённые заголовки
}
main();
Мы используем необходимые cookies для работы сайта. С вашего разрешения мы также можем сохранять настройки сайта и использовать аналитические и рекламные cookies, чтобы понимать использование сайта и поддерживать развитие проекта.
* Вы всегда можете изменить свой выбор в настройках сайта.
Выберите категории cookies
Настройки аналитики
Можно отключить аналитику использования платформы. Также можно отправить в Google Analytics запрос на удаление данных об использовании этого сайта, связанных с этим браузером.
Учебный workspace
Учитесь, читая, запуская код и решая задачи.
Практикуйте программирование с пояснениями тем, упражнениями, инструментами browser IDE, проверкой regex и тренировкой печати кода в одном workspace.
Открывайте инструменты во вкладках.Упражнения, IDE-инструменты и тренажеры остаются доступными как вкладки сайта.
Переключайтесь без потери контекста.Переходите между пояснениями, кодом и утилитами, сохраняя свое место.
Используйте sidebar как карту.Левые панели содержат навигацию, настройки, файлы, libraries и управление инструментами.
PythonJavaScriptSQLite
Одна IDE, три практичных режима
Python в браузере.Запускайте небольшие скрипты, пробуйте библиотеки и тренируйте API-запросы без установки.
JavaScript для быстрых экспериментов.Проверяйте код для браузера и сравнивайте идеи рядом с учебными материалами.
SQLite для практики с данными.Открывайте обозреватель базы данных, изучайте таблицы, пишите запросы и учитесь SQL локально.
ТемаIDE
Работайте рядом в split tabs
Держите инструкции перед глазами.Откройте упражнение или справочную страницу рядом с IDE, вместо постоянных переключений.
Сравнивайте инструменты во время обучения.Размещайте проверки regex, пояснения и эксперименты с кодом рядом, когда это нужно для задачи.
Закройте split, когда закончите.Workspace вернётся к одной сфокусированной вкладке, а открытые вкладки сайта останутся доступны.
Тренажер слепой печати кода
Или просто текста
Тренажер рассчитан на физическую клавиатуру.Откройте этот раздел на ноутбуке или компьютере с широким экраном. На телефоне тренировка слепой печати не будет корректной.
Скорость: 0 зн/мин
0 слов/мин
Лучшая скорость (60с): 0 зн/мин
0 слов/мин
Ошибки: 0
Общее время: 0.0 с
Для активации режима слепого набора не подсматривайте на физическую клавиатуру.