[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-osnovy-html-dlya-chego-nuzhen-teg-form-i-kakie-u-nego-osnovnye-atributy":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":19,"progress":20,"seo":21},1251,"dlya-chego-nuzhen-teg-form-i-kakie-u-nego-osnovnye-atributy",39,"osnovy-html","Основы HTML","📄","Для чего нужен тег form и какие у него основные атрибуты","Тег `\u003Cform>` — это контейнер для элементов ввода данных, который создаёт HTML-форму для отправки данных на сервер по протоколу HTTP. Форма — основной механизм взаимодействия пользователя с бэкендом.\n\n### Основные атрибуты\n\n| Атрибут | Назначение | Значение по умолчанию |\n|---------|-----------|----------------------|\n| `action` | URL-адрес обработчика формы | Текущий URL |\n| `method` | HTTP-метод отправки | `GET` |\n| `enctype` | Тип кодирования данных | `application\u002Fx-www-form-urlencoded` |\n| `novalidate` | Отключение HTML5-валидации | — |\n| `target` | Куда загружать результат | `_self` |\n| `autocomplete` | Автозаполнение полей | `on` |\n\n### Типы кодирования (enctype)\n\n| Значение | Когда использовать |\n|----------|-------------------|\n| `application\u002Fx-www-form-urlencoded` | Обычные формы (пары ключ=значение) |\n| `multipart\u002Fform-data` | Загрузка файлов |\n| `text\u002Fplain` | Редко, без кодирования |\n\n### Примеры\n\nПростая форма:\n```html\n\u003Cform action=\"\u002Fapi\u002Fusers\" method=\"POST\">\n    \u003Clabel for=\"username\">Имя:\u003C\u002Flabel>\n    \u003Cinput type=\"text\" id=\"username\" name=\"username\" required>\n\n    \u003Clabel for=\"email\">Email:\u003C\u002Flabel>\n    \u003Cinput type=\"email\" id=\"email\" name=\"email\" required>\n\n    \u003Cbutton type=\"submit\">Отправить\u003C\u002Fbutton>\n\u003C\u002Fform>\n```\n\nФорма с загрузкой файла:\n```html\n\u003Cform action=\"\u002Fapi\u002Fupload\" method=\"POST\" enctype=\"multipart\u002Fform-data\">\n    \u003Cinput type=\"file\" name=\"document\" accept=\".pdf,.doc,.docx\">\n    \u003Cbutton type=\"submit\">Загрузить\u003C\u002Fbutton>\n\u003C\u002Fform>\n```\n\n### Как данные попадают на сервер\n\nПри отправке формы с `enctype=\"application\u002Fx-www-form-urlencoded\"` тело HTTP-запроса выглядит так:\n\n```\nusername=ivan&email=ivan%40example.com\n```\n\nВ Spring MVC эти данные автоматически маппятся на параметры контроллера:\n\n```java\n@PostMapping(\"\u002Fapi\u002Fusers\")\npublic String createUser(@RequestParam String username,\n                         @RequestParam String email) {\n    \u002F\u002F обработка данных формы\n}\n```\n\n### Частые ошибки\n\n- Забывают `enctype=\"multipart\u002Fform-data\"` при загрузке файлов — сервер получает только имя файла\n- Используют `GET` для отправки паролей — данные попадают в URL, историю браузера и логи\n- Не указывают `name` у полей ввода — данные не отправляются на сервер\n- Не добавляют CSRF-токен — Spring Security блокирует POST-запросы без него\n\n### Как используется в 2026\n\nКлассические HTML-формы остаются основой серверного рендеринга (Thymeleaf, JSP). Spring Security автоматически добавляет скрытое поле `_csrf` в каждую Thymeleaf-форму. Фреймворки htmx и Hotwire используют стандартные HTML-формы для создания динамических интерфейсов без написания JavaScript.\n\n> **На собеседовании:** `\u003Cform>` отправляет данные на сервер. Ключевые атрибуты: `action` (куда), `method` (GET\u002FPOST), `enctype` (тип кодирования). Обязательно упомяните, что для загрузки файлов нужен `multipart\u002Fform-data`, а поля без `name` не отправляются. Бонус — упомянуть CSRF-защиту в Spring Security.","","middle",[15,16,17,18],"http","spring-boot","html","frontend",[],null,{"title":22,"description":23,"ogTitle":24,"ogDescription":25,"keywords":26,"schemaAnswer":36,"featuredSnippetReady":37},"Для чего нужен тег form и какие у него основные атрибуты — Gymterview","Тег form в HTML: атрибуты action, method, enctype. Типы кодирования данных, загрузка файлов, CSRF-защита в Spring. Частые ошибки при работе с формами.","Тег form: атрибуты action, method, enctype — Gymterview","form отправляет данные на сервер. Ключевые атрибуты: action (куда), method (GET\u002FPOST), enctype. CSRF-защита в Spring Security.",[27,28,29,30,31,32,33,34,35],"form","HTML форма","action","method","enctype","multipart\u002Fform-data","CSRF","Spring MVC","собеседование","Тег \u003Cform> создаёт HTML-форму для отправки данных на сервер по HTTP. Основные атрибуты: action (URL обработчика), method (GET\u002FPOST), enctype (тип кодирования: application\u002Fx-www-form-urlencoded по умолчанию, multipart\u002Fform-data для файлов), novalidate, target, autocomplete. Поля без name не отправляются. Spring Security добавляет CSRF-токен автоматически.",true]