Рубрики
Uncategorized

Моя умственная модель сервера

Что-то, с которым я боролся, когда я начал разработку веб-сайтов, и я вижу много новых Devs Borling с … Tagged с архитектурой, начинающими, WebDev, Devops.

Что-то, с которым я боролся, когда я начал разработку веб-сайтов, и я также вижу много новых DEV борьбы с борьбой: какой «сервер» на самом деле способен?

Я уже отдал его с прикрытием фото; Но почему бы не смотреть на него сверху вниз, а не слева направо 😅 (и я буду говорить о каждой части более подробно)

Сервер — это: программное обеспечение, которое начинается по запросу, работает с использованием информации в запросе и данных из более длительного хранения без дальнейшего ввода, завершение выполнения путем обновления сохраненных данных и возврата ответа.

Эта модель ейдирует три основных заблуждения:

  1. Нет обработки или исполнения после ответ
  2. Нет обработки или исполнения до запрос
  3. Нет прерывания или взаимодействия пользователя Во время процесс

Выше три вещи могут Только быть достигнутым с использованием аспекта «хранения» на диаграмме для координации что-то еще достичь этого. Чем лучше мы понимаем, что что-то еще это полностью отдельный процесс , тем лучше подготовлено, чтобы справиться с опасностями в этих моделях. Только Способ сделать любой из вышеперечисленных трех вещей с «хранением».

Что такое «хранение»?

Я использую это как подстановку для любого ненулительного хранилища данных.

Чаще всего реляционная база данных. Но это также может быть база данных документов, магазин Key-value, даже в магазине в памяти, как Redis * или просто файлы на локальном жестком диске. В больших или нуждающихся приложениях более одного можно использовать, но мы можем психически смешивать их все вместе в «хранилище».

Это текущее состояние становится в верхней части, и обновления выходят на другую сторону (если что-то нужно обновить).

* Магазины памяти обычно считаются «волатильными» по сравнению с жесткими дисками, но до длины среднего запроса-ответа, магазин, похожий на Redis, сравнительно сохраняет данные для EONS.

Запрос

Первая большая половина «LifeCycle запроса-ответного отклика». Ничего, я повторяю Ничего , происходит по адресу http без запроса, чтобы начать его.

Запрос может иметь все виды информации, но основные моменты:

  1. Глагол — ака Получить , Пост , Поставить , Патч , Удалить , так далее. каждый имеет значение; Пожалуйста, используйте их соответствующим образом
  2. Хозяин — как www.buymeacoffee.com.
  3. Путь — сларистые биты, как /Kallmanation ; Но также содержит необработанные параметры запроса, такие как ? Via = Kallmanation
  4. Различные заголовки — всевозможные метаданные о запросе, в основном выглядят по мере необходимости; Но стоит упомянуть здесь:
  5. Печенье — то, что мы всегда должны «принимать»; Просто куча маленьких кусочков текста Запросница отслеживает для сервера
  6. Тело — не по всем запросам; Обычно JSON, но может быть любой текст для сервера для использования

Без данных в хранилище или где-то в этом запросе (в основном в cookie) сервер не может знать об этом и по его мнению, что информация не существует и никогда не существовал.

Ответ

Конец «LifeCycle запроса-ответного отклика». Действительно, Конец , Финито. Ничего не происходит по адресу HTTP после того, как ответ был возвращен.

Как запросы, ответы имеют все виды информации, но большие части:

  1. Статус — 200 Для ОК 401 Для несанкционированного, 418 Я чайник и т. Д.; Пожалуйста, используйте соответствующий статус
  2. Заголовки — снова все виды метаданных, посмотрим по мере необходимости
  3. Cookie — специфический заголовок может сообщить запросу отправить данное cookie с любыми будущими запросами (они также могут быть установлены JavaScript)
  4. Тело — HTML/CSS/JS/JSON/XML/и т. Д./etc. все, что мы хотим отправить обратно

Чтобы быть немного более педантичным и техническим: сервер приложений не совсем имеет всю базу данных, заполненную в нем по каждому запросу. Вместо этого некоторая предварительная обработка должна использовать информацию о запросе для сформулировании запроса к хранению, чтобы загрузить только необходимые данные.

Этот «запрос» может быть обычным старым запросом SQL. Но это может быть просто найти правильный файл на диске по имени и пути. Или это может быть запрос на отдельный веб-сервис управления хранением (например, в базе данных AS-A-A-Service). После того, как данные будут выявлены, остальная часть сервера продолжается, так как она сделала в более простой умственной модели.

Получить еще более техническую; Я никогда не видел серверное приложение, написанное в таких различных шагах извлечения всех данных, данные процесса, обновлять данные, возвратный ответ. Получение, обработка и обновление обычно затаивается все вместе (иногда справедливо, частей неправильно). Но, по-прежнему, с внешней точки зрения, запросчик не мог воспринимать реальную разницу между этой технической техникой и более контролируемой умственной моделью, построенной выше. Поэтому я считаю, что это очень полезная модель сервера приложений.

Оригинал: «https://dev.to/kallmanation/my-mental-model-of-a-server-4cop»