HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>В этом уроке разберем удаление сущности. Оно устроено проще вывода, но включает в себя много нюансов:</p>
1 <p>В этом уроке разберем удаление сущности. Оно устроено проще вывода, но включает в себя много нюансов:</p>
2 <h2>Удаление сущности</h2>
2 <h2>Удаление сущности</h2>
3 <p>Удаление выглядит следующим образом:</p>
3 <p>Удаление выглядит следующим образом:</p>
4 <p>В процессе удаления есть и чисто интерфейсный момент, который начинающие разработчики упускают из виду. Кнопка удаления не должна сразу удалять. Человеку свойственно ошибаться, а еще он любопытен. Поэтому вероятность, что он нажмет на кнопку по ошибке, крайне высока. Необходимо сначала спросить у пользователя, уверен ли он в том, что хочет удалить. Если да, то только в этом случае удалять.</p>
4 <p>В процессе удаления есть и чисто интерфейсный момент, который начинающие разработчики упускают из виду. Кнопка удаления не должна сразу удалять. Человеку свойственно ошибаться, а еще он любопытен. Поэтому вероятность, что он нажмет на кнопку по ошибке, крайне высока. Необходимо сначала спросить у пользователя, уверен ли он в том, что хочет удалить. Если да, то только в этом случае удалять.</p>
5 <p>Удаление пользователя - опасная операция, которую нельзя выполнять всем подряд. Даже те, кто могут это делать, должны проходить через процедуру подтверждения, чтобы случайно не удалить пользователя. Имеет ли пользователь доступ к конкретным действиям - определяется авторизацией.</p>
5 <p>Удаление пользователя - опасная операция, которую нельзя выполнять всем подряд. Даже те, кто могут это делать, должны проходить через процедуру подтверждения, чтобы случайно не удалить пользователя. Имеет ли пользователь доступ к конкретным действиям - определяется авторизацией.</p>
6 <h2>Авторизация</h2>
6 <h2>Авторизация</h2>
7 <p><strong>Авторизация</strong>- это предоставление лицу или группе лиц прав на выполнение определенных действий. Еще это процесс проверки данных прав при попытке выполнения этих действий.</p>
7 <p><strong>Авторизация</strong>- это предоставление лицу или группе лиц прав на выполнение определенных действий. Еще это процесс проверки данных прав при попытке выполнения этих действий.</p>
8 <p>Авторизацию не следует путать с<strong>аутентификацией</strong>- процедурой проверки легальности пользователя или данных. Например, проверки соответствия введенного пользователем пароля к учетной записи паролю Wiki. То есть перед выполнением действия необходимо проверить, авторизован ли пользователь на выполнение данного действия или нет.</p>
8 <p>Авторизацию не следует путать с<strong>аутентификацией</strong>- процедурой проверки легальности пользователя или данных. Например, проверки соответствия введенного пользователем пароля к учетной записи паролю Wiki. То есть перед выполнением действия необходимо проверить, авторизован ли пользователь на выполнение данного действия или нет.</p>
9 <p>Авторизация - отдельная большая тема со своей теоретической базой. Как правило, вопрос авторизации решается в каждом конкретном фреймворке самостоятельно, хотя на GitHub можно найти обобщенные библиотеки.</p>
9 <p>Авторизация - отдельная большая тема со своей теоретической базой. Как правило, вопрос авторизации решается в каждом конкретном фреймворке самостоятельно, хотя на GitHub можно найти обобщенные библиотеки.</p>
10 <h2>Запрос DELETE</h2>
10 <h2>Запрос DELETE</h2>
11 <p>Удаляется сущность запросом<em>DELETE</em>. По спецификации HTTP этот глагол идемпотентный - поведение, в случае наличия или отсутствия сущности, должно быть одинаковое. То есть HTTP-ответ этого обработчика не зависит от того, удалена уже сущность или еще нет.</p>
11 <p>Удаляется сущность запросом<em>DELETE</em>. По спецификации HTTP этот глагол идемпотентный - поведение, в случае наличия или отсутствия сущности, должно быть одинаковое. То есть HTTP-ответ этого обработчика не зависит от того, удалена уже сущность или еще нет.</p>
12 <p>Но как мы помним, HTML-формы не поддерживают отправку методами, отличными от<em>GET</em>и<em>POST</em>. Фреймворки выкручиваются из этой ситуации следующим образом. Форма отправляется<em>POST</em>-запросом на маршрут, который связан с обработчиком для удаления объекта:</p>
12 <p>Но как мы помним, HTML-формы не поддерживают отправку методами, отличными от<em>GET</em>и<em>POST</em>. Фреймворки выкручиваются из этой ситуации следующим образом. Форма отправляется<em>POST</em>-запросом на маршрут, который связан с обработчиком для удаления объекта:</p>
13 <p>Важно соблюдать семантику HTTP. Нельзя создавать HTML, в котором удаление происходит GET-запросом, например, по ссылке. Браузеры, их плагины и поисковые системы действуют в соответствии с семантикой HTTP. Если они видят обычную ссылку, то подразумевается, что она не может выполнить деструктивных действий, значит, ее можно посетить. При этом мы можем работать в закрытой от поисковиков части сайта. В браузерах встроен механизм предзагрузки страниц: он вызовет все ссылки, до которых сможет дотянуться на открытой странице. А плагины могут делать вообще все что угодно.</p>
13 <p>Важно соблюдать семантику HTTP. Нельзя создавать HTML, в котором удаление происходит GET-запросом, например, по ссылке. Браузеры, их плагины и поисковые системы действуют в соответствии с семантикой HTTP. Если они видят обычную ссылку, то подразумевается, что она не может выполнить деструктивных действий, значит, ее можно посетить. При этом мы можем работать в закрытой от поисковиков части сайта. В браузерах встроен механизм предзагрузки страниц: он вызовет все ссылки, до которых сможет дотянуться на открытой странице. А плагины могут делать вообще все что угодно.</p>