SobesLab

Junior

  1. Структура HTTP-запроса и ответа Junior

    HTTP-запрос состоит из метода, URL, версии протокола, заголовков и тела, а ответ включает версию, статус-код, статус-фразу, заголовки и тело. Это ключевые элементы для передачи данных в веб-приложениях, позволяющие клиенту взаимодействовать с сервером и получать необходимые ресурсы.

    Посмотреть ответ полностью
  2. HTTP: постоянные соединения (Keep-Alive) Junior

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

    Посмотреть ответ полностью
  3. HTTP vs HTTPS Junior

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

    Посмотреть ответ полностью
  4. 304 Not Modified: когда используется Junior

    304 Not Modified — это статус-код в HTTP, который указывает, что запрашиваемый ресурс не изменился с момента последнего запроса, позволяя клиенту использовать кэшированную версию, что оптимизирует загрузку и экономит пропускную способность.

    Посмотреть ответ полностью
  5. Куки и SameSite Junior

    Куки — это небольшие данные, которые хранятся в браузере для улучшения взаимодействия с веб-приложением, а атрибут SameSite повышает безопасность, управляя отправкой куков при межсайтовых запросах и защищая от CSRF-атак.

    Посмотреть ответ полностью
  6. Сессионные vs постоянные куки Junior

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

    Посмотреть ответ полностью
  7. Флаги куки: Secure и HttpOnly Junior

    Флаги куки Secure и HttpOnly обеспечивают безопасность веб-приложений, защищая куки от передачи по незащищённым соединениям и доступа через JavaScript соответственно, что снижает риски атак и утечек данных.

    Посмотреть ответ полностью
  8. CSRF: атака и защита Junior

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

    Посмотреть ответ полностью
  9. CORS: когда и зачем Junior

    CORS (Cross-Origin Resource Sharing) — это механизм, который позволяет ограниченному доступу к ресурсам на одном домене из другого домена, используя специальные HTTP-заголовки для управления доступом и обеспечивая безопасность веб-приложений.

    Посмотреть ответ полностью
  10. Идемпотентность методов Junior

    Идемпотентность методов означает, что повторное выполнение одного и того же запроса не изменяет состояние системы, что важно для избежания нежелательных эффектов в распределенных системах; примеры идемпотентных методов включают GET, PUT и DELETE, в то время как POST является неидемпотентным.

    Посмотреть ответ полностью
  11. Webhook: что это Junior

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

    Посмотреть ответ полностью
  12. Rate limiting: зачем нужен Junior

    Ограничение частоты запросов — это механизм, который контролирует количество запросов к серверу за определённый период, обеспечивая защиту от DDoS-атак, снижение нагрузки на сервер и улучшение пользовательского опыта.

    Посмотреть ответ полностью

Middle

  1. HTTP/1.1 vs HTTP/2 vs HTTP/3 Middle

    HTTP — протокол передачи данных в интернете, с версиями HTTP/1.1, HTTP/2 и HTTP/3. HTTP/1.1 текстовый и однопоточный, что приводит к задержкам, тогда как HTTP/2 использует бинарный формат и мультиплексирование для повышения скорости. HTTP/3, основанный на QUIC, обеспечивает быструю установку соединений и шифрование по умолчанию, что улучшает производительность и безопасность.

    Посмотреть ответ полностью
  2. HTTP/1.0 vs HTTP/1.1: улучшения Middle

    HTTP/1.1 улучшает производительность по сравнению с HTTP/1.0 за счет поддержки постоянных соединений, кэширования, сжатия данных и передачи данных по частям, что снижает задержки и нагрузку на сервер, а также позволяет использовать один IP-адрес для нескольких доменов.

    Посмотреть ответ полностью
  3. HTTP/2: ключевые особенности Middle

    HTTP/2 улучшает производительность веб-приложений благодаря мультиплексированию, сжатию заголовков, приоритизации потоков и поддержке серверного пуша, обеспечивая более эффективную загрузку ресурсов и повышая безопасность соединений.

    Посмотреть ответ полностью
  4. HTTP/3: ключевые особенности Middle

    HTTP/3 — это новая версия протокола передачи данных, основанная на QUIC, использующая UDP для снижения задержек и улучшения производительности, обеспечивая мультиплексирование и шифрование по умолчанию, что делает её более подходящей для мобильных устройств и сетей с низким качеством связи.

    Посмотреть ответ полностью
  5. TLS: базовые понятия Middle

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

    Посмотреть ответ полностью
  6. TLS-рукопожатие: этапы Middle

    TLS-рукопожатие — это процесс, обеспечивающий установление защищённого соединения между клиентом и сервером, включающий в себя обмен сообщениями для аутентификации и генерации ключей для шифрования данных.

    Посмотреть ответ полностью
  7. Цепочка доверия сертификатов Middle

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

    Посмотреть ответ полностью
  8. HSTS: Strict Transport Security Middle

    HSTS (HTTP Strict Transport Security) — это механизм, который заставляет браузеры использовать только защищённое соединение HTTPS, предотвращая атаки типа "человек посередине". Он повышает безопасность и конфиденциальность данных, сохраняя информацию о необходимости защищённого соединения на заданный срок.

    Посмотреть ответ полностью
  9. Кеширование: Cache-Control/ETag Middle

    Кеширование в веб-приложениях, включая заголовки Cache-Control и ETag, позволяет уменьшить задержки и нагрузку на сервер, управляя временем жизни кеша и определяя, изменился ли контент. Cache-Control задает правила кеширования, а ETag служит уникальным идентификатором версии ресурса для оптимизации запросов.

    Посмотреть ответ полностью
  10. Cache-Control: public, private, no-cache, no-store Middle

    Cache-Control — это HTTP-заголовок, который управляет кэшированием ресурсов, определяя, как долго и где они могут храниться. Директивы public и private определяют доступность кэширования, no-cache требует проверки на сервере перед использованием, а no-store полностью запрещает кэширование, что важно для конфиденциальной информации.

    Посмотреть ответ полностью
  11. ETag vs Last-Modified Middle

    ETag и Last-Modified — это механизмы для управления кэшированием ресурсов: Last-Modified указывает время последнего изменения, а ETag — уникальный идентификатор версии содержимого. ETag обеспечивает более точную проверку изменений, что делает его предпочтительным для динамически изменяемых ресурсов, тогда как Last-Modified проще реализовать для статических. Выбор между ними зависит от характера...

    Посмотреть ответ полностью
  12. Range-запросы и 206 Partial Content Middle

    Range-запросы в HTTP позволяют клиенту запрашивать только часть ресурса, что экономит трафик и облегчает восстановление загрузок, а сервер отвечает кодом 206 Partial Content, подтверждая успешную обработку запроса.

    Посмотреть ответ полностью
  13. Домен и путь куки Middle

    Куки — это небольшие фрагменты данных, отправляемые веб-сервером в браузер, которые используются для аутентификации, отслеживания сессий и персонализации. Домен куки определяет, к каким доменам она будет доступна, а путь — к каким URL, что важно для безопасности и управления доступом.

    Посмотреть ответ полностью
  14. HTTP без состояния: как реализуются сессии Middle

    HTTP является безсостояния протоколом, и сессии реализуются с помощью таких методов, как куки, URL-параметры и хранение на стороне сервера, что позволяет сохранять состояние между запросами клиента и сервером для аутентификации и управления предпочтениями пользователей.

    Посмотреть ответ полностью
  15. Политика одного источника (Same-Origin Policy) Middle

    Политика одного источника — это механизм безопасности, который ограничивает взаимодействие между документами и скриптами с разных источников, предотвращая атаки, такие как XSS и CSRF; доступ к данным с другого источника блокируется, если протокол, домен или порт отличаются.

    Посмотреть ответ полностью
  16. CORS: простой запрос vs preflight Middle

    CORS — это механизм, обеспечивающий безопасность веб-приложений, позволяя контролировать доступ к ресурсам с других доменов. Простые запросы не требуют предварительной проверки и включают стандартные методы и заголовки, тогда как preflight-запросы необходимы для нестандартных методов или заголовков и проверяют разрешения на доступ перед основным запросом.

    Посмотреть ответ полностью
  17. CORS с учётными данными (Credentials) Middle

    CORS с учётными данными позволяет браузерам отправлять куки и заголовки авторизации при запросах к ресурсам с других доменов, при этом сервер должен настроить соответствующие заголовки, такие как Access-Control-Allow-Credentials и указать конкретный домен в Access-Control-Allow-Origin.

    Посмотреть ответ полностью
  18. REST vs RPC vs GraphQL Middle

    REST, RPC и GraphQL — это три подхода к созданию API, каждый из которых имеет свои особенности: REST организует данные как ресурсы с использованием стандартных HTTP-методов, RPC позволяет вызывать удаленные функции как локальные, а GraphQL дает возможность запрашивать только нужные данные через гибкие запросы. Выбор подхода зависит от требований проекта и особенностей его реализации.

    Посмотреть ответ полностью
  19. REST: основные принципы Middle

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

    Посмотреть ответ полностью
  20. Дизайн RESTful URL Middle

    RESTful URL проектируются для интуитивного представления ресурсов, используя существительные и иерархическую структуру; важно применять множественное число, уникальные идентификаторы и соответствующие HTTP методы для операций CRUD, что делает API более понятным и удобным в использовании.

    Посмотреть ответ полностью
  21. SOAP vs REST Middle

    SOAP — это протокол для обмена сообщениями с высокой безопасностью и строгими стандартами, в то время как REST — это архитектурный стиль, использующий стандартные методы HTTP и более гибкие форматы данных, как JSON, что делает его проще и быстрее для интеграции в веб-приложения.

    Посмотреть ответ полностью
  22. RPC-стиль API Middle

    RPC-стиль API позволяет вызывать удалённые процедуры на сервере, как если бы они выполнялись локально, акцентируя внимание на действиях, а не ресурсах. Он обеспечивает простоту использования и эффективность, но может быть сложным в масштабировании и отладке. Примеры включают gRPC и JSON-RPC, которые используют различные протоколы и форматы сообщений.

    Посмотреть ответ полностью
  23. GraphQL: основное Middle

    GraphQL — это язык запросов для API, позволяющий клиентам запрашивать только необходимые данные, избегая избыточности и улучшая производительность. Он предлагает гибкие запросы, мутации для изменения данных, подписки для обновлений в реальном времени и строгую типизацию, что упрощает взаимодействие между клиентом и сервером.

    Посмотреть ответ полностью
  24. GraphQL vs REST: плюсы и минусы Middle

    GraphQL и REST — это два подхода к построению API: REST основан на использовании стандартных HTTP методов и уникальных URI, что обеспечивает простоту, но может приводить к избыточности данных, в то время как GraphQL позволяет клиентам запрашивать только необходимые данные через единую конечную точку, что обеспечивает гибкость, но может быть сложнее в освоении и требует внимания к...

    Посмотреть ответ полностью
  25. Версионирование API Middle

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

    Посмотреть ответ полностью
  26. Документирование API (OpenAPI/Swagger) Middle

    Документирование API с помощью OpenAPI и Swagger обеспечивает ясность взаимодействий между системами, позволяя разработчикам и пользователям эффективно использовать API через четкие спецификации, описывающие эндпоинты, параметры и ответы.

    Посмотреть ответ полностью
  27. Методы аутентификации API Middle

    Аутентификация API — это проверка подлинности пользователей или систем для доступа к API, с распространенными методами, такими как базовая аутентификация, аутентификация на основе токенов, OAuth 2.0 и API-ключи, каждый из которых имеет свои плюсы и минусы в безопасности и удобстве использования.

    Посмотреть ответ полностью
  28. JWT: JSON Web Token Middle

    JWT (JSON Web Token) — это стандарт для безопасной передачи информации между сторонами в виде компактного JSON-объекта, используемый для аутентификации и авторизации, состоящий из заголовка, полезной нагрузки и подписи, что позволяет избежать хранения сессий на сервере и обеспечивает целостность данных.

    Посмотреть ответ полностью
  29. Безопасные vs идемпотентные методы Middle

    Безопасные методы HTTP, такие как GET, не изменяют состояние ресурсов на сервере и могут быть кешированы, в то время как идемпотентные методы, например PUT и DELETE, позволяют многократное выполнение одного и того же запроса с неизменным результатом, что важно для обработки ошибок и надежности.

    Посмотреть ответ полностью
  30. Пагинация: limit/offset vs cursor Middle

    Пагинация позволяет разбивать большие объёмы данных на более мелкие части для удобства отображения. Методы limit/offset просты в реализации, но менее эффективны при больших данных, тогда как cursor обеспечивает лучшую производительность и надёжность, особенно при частых изменениях данных, но сложнее в реализации. Выбор метода зависит от объёма данных и частоты изменений.

    Посмотреть ответ полностью
  31. Безопасность вебхуков Middle

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

    Посмотреть ответ полностью
  32. HTTP 429 Too Many Requests Middle

    HTTP 429 Too Many Requests указывает на то, что клиент превысил лимит запросов за определённый период, что защищает сервер от перегрузки и атак. Сервер может предоставить заголовок Retry-After, который сообщает, когда можно повторить запросы, а для предотвращения этой ошибки рекомендуется использовать экспоненциальную задержку и кэширование данных.

    Посмотреть ответ полностью
  33. CDN: сеть доставки контента Middle

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

    Посмотреть ответ полностью
  34. API Gateway: зачем нужен Middle

    API Gateway — это компонент архитектуры микросервисов, который централизует доступ к API, осуществляет маршрутизацию запросов, агрегирует ответы, обеспечивает безопасность и мониторинг, а также улучшает производительность через кэширование.

    Посмотреть ответ полностью
  35. HTTP 100 Continue: для чего Middle

    HTTP 100 Continue — это промежуточный статус ответа, который сообщает клиенту, что сервер готов принять данные, позволяя избежать ненужной передачи больших объемов информации и оптимизируя сетевой трафик.

    Посмотреть ответ полностью
  36. 204 No Content: когда использовать Middle

    Код состояния HTTP 204 No Content подтверждает успешное выполнение запроса, когда сервер не возвращает контент, что полезно при обновлении или удалении ресурсов и помогает оптимизировать трафик.

    Посмотреть ответ полностью
  37. 201 Created: ответ при создании Middle

    Статус 201 Created в HTTP указывает на успешное создание нового ресурса на сервере, при этом возвращается URI созданного ресурса в заголовке Location.

    Посмотреть ответ полностью
  38. Cookies vs Local Storage Middle

    Cookies и Local Storage — это механизмы для хранения данных на стороне клиента: куки имеют ограниченный объём (до 4KB), срок действия и автоматически отправляются на сервер, тогда как Local Storage позволяет хранить до 5-10MB без автоматической отправки, что делает его более подходящим для долговременных данных.

    Посмотреть ответ полностью

Senior

  1. Конвейерная обработка vs мультиплексирование Senior

    Конвейерная обработка позволяет отправлять несколько HTTP-запросов последовательно, сокращая время ожидания, но может вызвать сложности с порядком ответов, в то время как мультиплексирование дает возможность обрабатывать запросы и ответы параллельно по одному соединению, что повышает эффективность, но требует более сложной реализации и может иметь проблемы с совместимостью.

    Посмотреть ответ полностью
  2. HTTP/2 Server Push: что это Senior

    HTTP/2 Server Push позволяет серверу отправлять ресурсы клиенту до их запроса, что ускоряет загрузку страниц и снижает количество запросов. Эта функция особенно полезна на медленных соединениях, но требует тщательного анализа для оптимального использования и предотвращения избыточной загрузки.

    Посмотреть ответ полностью
  3. Perfect Forward Secrecy (PFS) Senior

    Perfect Forward Secrecy (PFS) обеспечивает защиту сессионных ключей, гарантируя, что даже при компрометации долгосрочных ключей злоумышленник не сможет расшифровать ранее зашифрованные данные, благодаря использованию временных ключей для каждой сессии.

    Посмотреть ответ полностью
  4. Mutual TLS (mTLS) Senior

    Mutual TLS (mTLS) — это расширение протокола TLS, обеспечивающее взаимную аутентификацию между клиентом и сервером, где обе стороны должны предоставить действующие сертификаты для установления защищенного соединения. Это значительно повышает уровень безопасности, особенно в приложениях с высокими требованиями к защите данных, таких как банковские и микросервисы.

    Посмотреть ответ полностью
  5. ETag: weak vs strong Senior

    ETag – это механизм в HTTP для управления версиями ресурсов и кэшированием, который бывает сильным (для точного сравнения версий) и слабым (для логически эквивалентных изменений). Сильные ETag обеспечивают точность, в то время как слабые ETag предлагают гибкость, позволяя клиентам использовать кэшированные данные при несущественных изменениях.

    Посмотреть ответ полностью
  6. Куки первого и третьего лица Senior

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

    Посмотреть ответ полностью
  7. CORS: заголовки ответа Senior

    CORS — это механизм, который регулирует доступ к ресурсам с других доменов, обеспечивая безопасность веб-приложений через специальные заголовки ответа, такие как Access-Control-Allow-Origin и Access-Control-Allow-Methods, которые определяют разрешенные источники и методы запросов.

    Посмотреть ответ полностью
  8. JSONP: что и зачем Senior

    JSONP (JSON with Padding) — это метод, позволяющий получать данные с других доменов, используя тэг <script> вместо AJAX-запросов, что обходит ограничения CORS. Он прост в реализации и не требует настройки сервера, но имеет риски безопасности и поддерживает только GET-запросы, поэтому рекомендуется использовать его с осторожностью и по возможности переходить на более безопасные альтернативы,...

    Посмотреть ответ полностью
  9. gRPC: обзор Senior

    gRPC — это фреймворк для удаленных вызовов процедур, разработанный Google, который использует HTTP/2 и Protocol Buffers для создания высокопроизводительных распределенных систем с поддержкой различных языков программирования и несколькими типами взаимодействий.

    Посмотреть ответ полностью
  10. HATEOAS и REST Senior

    HATEOAS — это принцип REST, который позволяет клиентам динамически обнаруживать доступные действия и ресурсы через гипермедиа, что делает API более гибким и самодокументируемым, но может усложнять его реализацию и кэширование.

    Посмотреть ответ полностью
  11. Webhooks: надёжная доставка Senior

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

    Посмотреть ответ полностью
  12. Token Bucket и другие алгоритмы лимитирования Senior

    Алгоритм Token Bucket используется для лимитирования сетевого трафика, позволяя гибко управлять количеством запросов на основе токенов, которые добавляются в ведро с фиксированной скоростью. Он позволяет кратковременно превышать лимиты, в отличие от других методов, таких как Leaky Bucket и Fixed Window, и требует тщательной настройки параметров для эффективного использования.

    Посмотреть ответ полностью
  13. Backpressure: контроль нагрузки Senior

    Контроль нагрузки, или backpressure, — это механизм, позволяющий регулировать скорость передачи данных от источника к потребителям, предотвращая перегрузку системы и обеспечивая её стабильную работу, особенно в контексте HTTP.

    Посмотреть ответ полностью
  14. Rate limiting и backpressure Senior

    Rate limiting — это метод контроля количества запросов от клиента за определённый период для предотвращения перегрузки сервера, а backpressure — это механизм управления скоростью поступления данных в систему, позволяющий избегать её перегрузки, особенно в асинхронных системах.

    Посмотреть ответ полностью
  15. Прокси: прямой vs обратный Senior

    Прямой прокси служит посредником между клиентом и интернетом, обеспечивая анонимность и кэширование, в то время как обратный прокси принимает запросы от клиентов и распределяет их между внутренними серверами, улучшая безопасность и производительность.

    Посмотреть ответ полностью
  16. Trace/Correlation ID Senior

    Trace ID или Correlation ID — это уникальный идентификатор, присваиваемый каждому запросу в распределенных системах, который позволяет отслеживать его путь, упрощает логирование и помогает в отладке, связывая разные компоненты системы и обеспечивая доступ к единой информации о запросе.

    Посмотреть ответ полностью
  17. HTTP TRACE метод Senior

    HTTP TRACE — это метод, используемый для диагностики и отладки, позволяющий клиенту увидеть, как сервер обрабатывает его запрос, включая изменения от прокси-серверов. Однако из-за возможных уязвимостей, таких как Cross Site Tracing, многие серверы отключают его для повышения безопасности.

    Посмотреть ответ полностью
  18. 405 Method Not Allowed vs 501 Not Implemented Senior

    405 Method Not Allowed указывает, что метод HTTP поддерживается, но не разрешен для данного ресурса, в то время как 501 Not Implemented сообщает, что сервер не поддерживает запрашиваемый метод вообще.

    Посмотреть ответ полностью
  19. HTTP Upgrade: Switching Protocols Senior

    HTTP Upgrade позволяет клиенту и серверу переключаться на другой протокол, используя одно и то же TCP-соединение, что особенно полезно для реализации WebSocket и HTTP/2. Клиент инициирует переключение через заголовок Upgrade, и сервер подтверждает это статусом 101 Switching Protocols, если поддерживает запрашиваемый протокол.

    Посмотреть ответ полностью
  20. Можно ли у GET быть тело запроса Senior

    Метод GET предназначен для извлечения информации и не рекомендуется использовать с телом запроса, так как это может привести к непредсказуемому поведению и проблемам с кэшированием; лучше передавать параметры через URL или использовать методы, такие как POST, для передачи данных.

    Посмотреть ответ полностью

Рекомендуемые категории