Joomla портал
seo seo Subscribe
0
seo

В противном случае результат

обещает быть непредсказуемым — один из атрибутов (какой именно —

браузер рассудит по своему собственному разумению) будет попросту

проигнорирован.

Если же данные веб-формы отправляются при помощи метода POST, атрибут

enctype вполне может принимать и отличные от принятого по умолчанию

значения.

Так, например, если веб-форма применяется для отправки обработчику

содержимого какого бы то ни было локального файла (о том, как реализуется

284 Часть II. Применение веб-технологий стороны клиента для создания сайтов

такая возможность, поговорим чуть позже), значением атрибута enctype

должен быть тип multipart /form-data, иначе скрипт получит отнюдь не содер-

жимое файла, а лишь только имя последнего.

Если же предполагается использовать веб-форму в качестве средства для

отправки почтовых сообщений (когда значением атрибута action является

адрес e-mail), атрибут enctype тега

должен принимать значение

text/plain. Следует, однако, заметить, что пользоваться этим приемом нужно

с большой осторожностью — к сожалению, возможны проблемы с отправкой

русскоязычных сообщений в корректной кодировке.

Наши методы

Начинающему веб-разработчику, вероятно, на первых порах будет вполне

достаточно тех сведений о протоколе HTTP, что были изложены в главе 1 —

особенно в том случае, если заниматься проектированием серверных

приложений пока не планируется.

Тем не менее, считаю целесообразным поведать о некоторых особенностях

методов GET и POST более подробно, ибо даже опытные разработчики

зачастую упускают в своей повседневной практике самые что ни на есть

ключевые концепции, не уделив им должного внимания в начале пути…

Итак, мы выяснили, что оба метода могут использоваться для передачи

пользовательских данных от клиента серверу. А не задумывались ли вы над тем,

почему тогда у этих самых методов прямо противоположные названия? Ведь

post в буквальном переводе с английского — «отправлять, посылать по

почте», a get — напротив, «брать, получать».

Порой даже тот, кто в деталях представляет себе, как происходит

взаимодействие клиента и сервера в случае передачи пользовательских параметров

различными способами, обычно оказывается не в состоянии объяснить смысл

этой терминологической головоломки. Между тем, именно знание

буквальных переводов английских слов post и get способно дать новичку

возможность никогда не путать соответствующие методы и четко понимать их

сущность.

Название метода GET подразумевает, что пользователь хочет «взять»,

«получить» ресурс, обладающий определенным URL. Например, таким:

http://www.somewebsite.ru/script.рпр?параметр_1=значение_1&параметр_2=

значение_2&…&параметр_М=значение_М

С формальной точки зрения совсем не важно, что после вопросительного

знака следуют какие-то специфичные данные — это просто составная часть

адреса запрашиваемого ресурса.

Глава 6. Формы в HTML

285

Метод POST же отличается тем, что заданные пользователем значения

параметров именно «отправляются», «отсылаются» серверу в теле HTTP-

сообщения запроса как некий «полезный груз»; URL запрашиваемого ресурса

при этом не подвергается никаким модификациям.

Как видите, противоречий в терминологии нет, названия методов говорят

сами за себя.

Пользовательские параметры, переданные при помощи метода POST, по

умолчанию представляются точно таким же образом, как и при

использовании метода GET:

параметр_1=значение_1&параметр_2=значение_2&. . . &параметр_Ы=значение_Ы

Но благодаря применению атрибута enctype здесь уже возможны и другие

варианты, поскольку отправка пользовательских данных в теле HTTP-запроса

не сопряжена с драконовскими ограничениями, определяемыми допустимым

форматом URL.

Но зачем нам два метода, неужели не хватает одного? Дело в том, что нет в

мире совершенства, идеального и универсального средства, с успехом

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

особенности характера, приемлемые в одних ситуациях и нежелательные —

в других. «Темные стороны души» метода POST компенсируются

достоинствами метода GET, и наоборот.

seo
5th Фев 2011
Теги:
seo

Написать ответ

seo
 
seo
Все права защищены © 2023 Joomla портал
 
 
seo