Обновить
16K+
5

Пользователь

14
Рейтинг
18
Подписчики
Отправить сообщение

Разбираем net/http на практике. Часть 2.3: Динамические маршруты, cookie-аутентификация и управление доступом

Уровень сложностиСредний
Время на прочтение25 мин
Охват и читатели7.5K

В этой статье цикла мы решим главную проблему сервиса DeadDrop: пользователь создаёт секрет, но не может его забрать.

Здесь мы:

1) Научим net/http понимать динамические маршруты без фреймворков
2) Научимся подписывать куки через HMAC и узнаем, как оно работает изнутри
3) Настроим безопасное скачивание файлов

Никаких готовых решений - лишь стандартная библиотека, которая никуда не пропадёт и не развалится за месяц!

Сегодня сервис DeadDrop станет полноценным веб-приложением - покрываем все функции, заявленные в первой статье

Читать далее

Разбираем net/http на практике. Часть 2.2: Архитектура и безопасность. Внедряем Clean Architecture, хэшируем пароли

Время на прочтение20 мин
Охват и читатели5.9K

Продолжаем писать сервис DeadDrop: сегодня идём от монолита к чистой архитектуре

В предыдущей части мы реализовали готовый прототип, но его код был спорным: от смешанной логики до хранения секретов пользователей в открытом виде - пора вносить правки!

Сегодня мы:

1) Превращаем "толстый" хэндлер в хорошее архитектурное решение с разделением слоёв

2) Хэшируем с bcrypt

3) Внедряем зависимости (DI) через интерфейсы

4) Готовим код к дальнейшему масштабированию

Рефакторинг, который не ломает проект, а делает его удобным для дальнейшей разработки!

Читать далее

Разбираем net/http на практике. Часть 2.1: POST, файлы и in-memory хранилище

Уровень сложностиСредний
Время на прочтение32 мин
Охват и читатели10K

Предыдущая статья

Продолжаем создавать сервис анонимных «мертвых ящиков» DeadDrop на чистом Go.

Во второй части (первый подвыпуск) закладываем фундамент: учимся принимать POST-запросы, загружать файлы с проверкой MIME-типа и размера, создаём in-memory хранилище с потокобезопасным доступом через RWMutex. Пишем утилиты для генерации криптостойких ID и паролей. Разбираемся с интерфейсами и готовим архитектуру к дальнейшему развитию.

Без фреймворков, только net/http и стандартная библиотека.

Читать далее

Разбираем net/http на практике: пишем веб-сервис DeadDrop для безопасного обмена сообщениями

Уровень сложностиСредний
Время на прочтение27 мин
Охват и читатели12K

Первая часть цикла «Разбираем net/http на практике»: создаём с нуля сервис DeadDrop — аналог Privnote для безопасной передачи самоуничтожающихся сообщений и файлов.

На чистой стандартной библиотеке net/http разбираем основы:

запуск HTTP-сервера

маршрутизация в ServeMux

написание middleware (логирование и recovery от panic)

работа с HTML-шаблонами и layout’ами

подключение статики через http.FileServer и embed.FS

В итоге получаем работающий сервер с красивой главной страницей, формой создания «ячейки» и базовой архитектурой проекта — всё без внешних зависимостей.

Идеально для начинающих и тех, кто хочет глубоко понять внутренности популярных фреймворков вроде Gin и Echo. Пишем код вместе!

Читать далее

Информация

В рейтинге
619-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность