Заголовки HTTP являются неотъемлемой частью функционирования сети. Они содержат информацию о запросе (например, пользовательский агент, используемый для выполнения запроса, контент, который будет принят запрашивающей стороной, и язык). Они содержат информацию об ответе (например, тип контента, устанавливаемые файлы cookie и информацию о кэшировании). Они также могут предоставлять общие заголовки, которые охватывают такие вещи, как IP-адрес сервера и метод REST.
Чтобы увидеть эти заголовки, перейдите в инструменты разработчика Chrome ›› сеть ›› перезагрузка ›› щелкните файл ›› просмотрите раздел «Заголовки». Это должно выглядеть примерно так.
В следующем примере кода мы поговорим о заголовках запроса x-auth-token и user-agent и заголовке ответа set-cookie.
const express = require('express') const app = express() const port = 3000 app.get("/authRoute", (req, res) => { //KEEP TRACK OF ACCESSES console.log(req.header("user-agent")); const token = req.header("x-auth-token"); if (token == null) { return res.status(400).send("No Auth Token Provided"); } else if (token !== "password") { return res.status(401).send("Incorrect Token Provided") } else { res.setHeader("set-cookie", "username=bob, Max-Age=160000") res.setHeader("custom-header", "hello world!") res.send("Welcome!"); } }); app.listen(port, () => { console.log(`Example app listening on port ${port}`) })
Представьте, что у нас есть базовый сервер узлов express.js. У нас есть один маршрут, который позволяет вам войти, только если вы предоставите «пароль» x-auth-token в заголовках вашего запроса. Мы также регистрируем пользовательский агент, чтобы отслеживать, как осуществляется доступ к нашему серверу. Я буду использовать Postman для проверки всех трех случаев.
Нет токена аутентификации
В нашем первом запросе мы не предоставляем x-auth-token и получаем ошибку 400, означающую, что мы не предоставили аутентификацию.
Неправильный токен аутентификации
Далее мы предоставим заголовок x-auth-token, но у нас будет неправильное значение, поэтому мы получим 401, так как мы не авторизованы для доступа к странице с текущим токеном аутентификации.
Правильный токен аутентификации
Наконец, мы предоставляем правильный токен аутентификации, наш сервер приветствует нас кодом 200 и сообщением «Добро пожаловать!» он также отправляет обратно файл cookie, используя заголовок ответа set-cookie, и мы также предоставляем собственный настраиваемый заголовок.
Итак, у нас есть это, теперь мы можем использовать заголовки для файлов cookie, метрик и маршрутизации. Это ссылка на некоторые обычно используемые заголовки, но в целом заголовки могут быть такими, о которых договорятся сервер и клиент, поэтому, если вы владеете логикой клиента и сервера, вы можете сделать заголовки какими хотите.
Некоторые другие интересные вещи, которые вы могли бы попытаться выполнить с помощью заголовков HTTP: проверка пользовательского агента, чтобы увидеть, поступает ли запрос с мобильного или настольного устройства, и направить его в нужное представление html, проверка Content-Length ответа и предварительно выделяйте память для хранения всего этого вместо того, чтобы читать контент по частям через поток и любые другие классные приложения, которые вы можете придумать, и если у вас есть какие-либо идеи, не стесняйтесь комментировать их ниже!