Что такое веб-сервер?
Когда приложению (клиенту) нужен определенный ресурс, оно может запросить этот ресурс через HTTP к серверу; сервером, предоставляющим ресурс, является веб-сервер.
1.1. Первый опыт работы с сервером
;1.2 Два способа создания сервера
1.3 Объект запроса
Объект запроса инкапсулирует всю информацию, передаваемую клиентом на наш сервер.
URL-адрес этого запроса, серверу необходимо выполнить различную обработку в зависимости от
метода запроса этого запроса, например, GET, входящий запрос POST; Параметры и методы обработки разные,
заголовки этого запроса также будут нести некоторую информацию, например информацию о клиенте, формате приема данных, поддерживаемых форматах кодирования и т.д.
Обычный запрос:
При отправке запроса клиент будет запрашивать разные данные, а затем будут переданы разные адреса запроса. Серверу необходимо давать разные ответы на основе разных адресов запроса.
Если адрес запроса пользователя также содержит некоторые дополнительные параметры, как нам их анализировать?
Мы можем использовать модуль URL.
Среди них модуль url предоставляет служебные инструменты для обработки и анализа URL-адресов.
Import url const url = require('url').
Предположим, что наши данные запроса:
Результат анализа консоли URL-адреса:
Среди них путь — это последний путь, который нам нужно получить. Наша цель — получить имя пользователя и пароль отдельно в запросе.
Модуль импорта строки запроса const qs = require('querystring');
const http = require("http")const url = require('url')const qs = require('querystring')// 1. Создайте сервер const server = http .createServer((req, res) => { // Используем встроенный модуль const{ pathname,query } = url.parse(req.url) if(pathname === '/login'){ console.log(запрос); console.log(qs.parse(запрос)); const {имя пользователя, пароль} = qs.parse(запрос) console.log(имя пользователя,пароль); res.end('Запрос завершен') }});// 2. Задаем номер порта и запускаем сервер server.listen(8888,'0.0.0.0',()=>{ console.log("Сервер успешно запущен~");})
В спецификации Restful (стиль дизайна) мы должны использовать различные методы запроса для добавления, удаления, изменения и проверки данных:
Мы можем выполнять различную обработку, оценивая разные методы запроса.
Предположим, что ниже приведены данные нашего запроса JSON в теле -> Как заставить наш сервер получить имя пользователя и пароль?
тип контента — это тип данных, передаваемых в этом запросе:
application/json означает тип json; text/plainозначает
-length: **Размер и длина файла
keep-alive:
**accept-encoding: **; сообщить серверу, клиенту Формат сжатия файлов, поддерживаемый клиентом, например, файлы js могут использовать кодировку gzip, что соответствует файлам .gz.
**accept:** Сообщите серверу, что клиент может принять тип формата файла
*
;*user-agent:** Информация, связанная с клиентом ;
1.4 объект ответа
Если мы хотим ответить клиенту данными результата, мы можем сделать это двумя способами:
Примечание: если мы не вызовем end и close, клиент будет ждать результата;
Код состояния Http (код состояния Http) — это числовой код, используемый для представления состояния ответа Http:
Категория | Причина Фраза | |
---|---|---|
1xx | Информационный | Принятый запрос обрабатывается |
2xx | Успех | Запрос был обработан нормально |
3xx | Перенаправление | Требуется дополнительное действие для завершения запроса |
4xx | Ошибка клиента | Ошибка клиента Ошибка запроса, сервер не может обработать запрос |
5xx | Ошибка сервера (ошибка сервера) | Сервер ошибка при обработке запроса |
Общие коды ответа:
Описание | кода состояния | Описание | состояния
---|---|---|
200 | OK | Запрос успешен. Обычно используется для запросов GET и POST. |
400 | Неверный запрос — это | синтаксическая ошибка в запросе клиента. |
401 | Несанкционированный | запрос требует аутентификации пользователя. |
403 | Сервер | понимает запрос клиента, но отказывается его выполнить. . |
404 | Не найден. | Сервер не может обработать запрос на основе запроса клиента. С помощью этого кода дизайнеры веб-сайтов могут настроить персонализированную страницу «Запрошенный вами ресурс не найден». |
500 | Внутренняя ошибка сервера. | Сервер не может выполнить запрос. |
503 | Служба недоступна | из-за перегрузки или технического обслуживания системы. , сервер временно не может обработать запрос клиента. Продолжительность задержки может быть включена в код состояния, установленный в заголовке Retry-After сервера |
:
возвращает информацию заголовка. Существует два основных способа: