Что такое сервер в компьютерных сетях?

«Что такое сервер в компьютерных сетях?» — вопрос из категории Архитектура, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Ключевые характеристики:

  • Слушает запросы на определенных портах.
  • Обрабатывает запросы и формирует ответы.
  • Предназначен для постоянной работы (24/7) с высокой доступностью и отказоустойчивостью.

Типы серверов (по назначению):

  • Веб-сервер (Nginx, Apache): обслуживает HTTP-запросы, отдает веб-страницы и статические файлы.
  • Сервер приложений (Gunicorn, Tomcat): выполняет бизнес-логику приложения.
  • Сервер баз данных (PostgreSQL, MySQL): хранит, управляет и предоставляет доступ к структурированным данным.
  • Файловый сервер: обеспечивает централизованный доступ к файлам.

Пример HTTP-запроса к веб-серверу на Python:

import requests
# Клиент отправляет GET-запрос к серверу
response = requests.get('https://api.example.com/users/1')
# Сервер отвечает данными, клиент их обрабатывает
if response.status_code == 200:
    user_data = response.json()
    print(user_data)