![]() |
Чем отличается метод POST от GET?
|
Данные метода GET передаются скрипту в строке броузера в виде
scriptname?parameter1=value1&parameter2=value2&...&... Метод POST же передает данные скрипту иначе - через стандартный поток ввода-вывода не загаживая строку адреса. Ку? |
Prisoner
а если у меня есть фотма в которой стоит POST могу я просто заменить на GET? |
почему нет? Только если скажем скрипт PHP-шный и обращается к переменным как $POST["some_parameter"], то замена в форме метода даст облом - переменные будут не означены... ну то есть надо учесть языковые нюансы в реализации скриптика, а так - меняй на здоровье :)
Да... така кака гет передает все через строку адреса, которая имеет ограничение по длине (пост не имеет), то нать сделать выводы ;) |
Prisoner
а если скрипт на перле? |
А вот тут зубастенький звеняй, не шарю я в перле :idontnow:
|
Vlad Drakula
Если скрипт на Perl, можно использовать GET - тогда надо использовать переменную окружения. Запрос (query) находится в $ENV{'QUERY_STRING'} в виде script?name1=value1&name2=value2 *и т.д. |
Sean Ingumsky
а если скрипт я не могу править. То есть, у меня есть форма там написано POST я хочу просто заменить на GET, так пройдет? |
Vlad Drakula
Если скрипт пользует модуль CGI, то можно. Если делает всё ручками, то требуются незначительные изменения. |
Приём данных в скрипте при двух методах абсолютно разный!
Если ты не можешь править скрипт, то заменить метод можно только в том случае, если в самом скрипте реализована проверка того, какой метод используется. Иначе нельзя. При использовании метода GET скрипт берёт все данные , переданные от клиента из переменной окружения QUERY_STRING. При использовании метода POST - нужно узнать сколько передано данных из переменной окружения CONTENT_LENGHT? а потом прочитать их из стандартного ввода. Очень сильно упростит задачу модуль для Perla CGI.pm, который идёт в поставке с Perl. |
ребята, зачем так сложно берем и просто заменяем в методе и все прекрано работает, без каких либо вмешательств в серверную часть.
Добавлено: ребята, зачем так сложно берем и просто заменяем в методе и все прекрано работает, без каких либо вмешательств в серверную часть. |
Ну раз работает, то значит софт на серваке, который обрабатывает запрос поддерживает оба метода... :)
|
Vlad Drakula
Угу, именно как изволил молвить Dragon7, но смею отметить, что не всегда все так кул :). Стоит всеже иметь ввиду заморочки языков на которых писаны скрипты... а вдруг... |
Язык на котором реализован скрипт большого значения не имеет. Скрипт на любом языкем может проверять наличие одного метода или обоих сразу. В том то и смысл CGI, что проги писать можно на чём угодно от шелла и до Lispa лиш бы твоя ось и апач всё правильно понимал. :)
|
Оговорочка - GET не переваривает поля типа file (и вообще формы в multipart/form-data).
CGI.pm не рекомендую - громоздок. Лучше cgi-lib.pl. Правда, куки не парсит, но в остальном - хорошая вещь, причём маленькая и быстая. И всё что надо умеет, включая получение файлов во временный дир. |
Под любой язык на котором можно написать CGI-прогу и под сами же серваки существуют просто куча библиотек и модулей по работе с данными форм и вообще удовлетворяющие все требования для написания CGI-скриптов.
Своих лучше не придумывать, может быть много дырок. Лучше не изобретать колесо, а взять чужую прогу и проверив её в работе юзать в своём случае. |
Аминь :)
|
All
что-то почитал и смешно немного стало как Vlad Drakula это всё пытался выяснить такими обходными фразами Цитата:
вот почитайте - может зацените фишку... : http://www.forum.oszone.net/topic.cg...&topic=169 |
ну зачем же так в лоб, люди ту думают о высоком, а ты так всех опустил...
Добавлено: ну зачем же так в лоб, люди ту думают о высоком, а ты так всех опустил... |
Dragon7
Ну для GET и POST если без мультипарта, ничего особо не накосячишь... С мультипартом сложнее... А вообще написанный для себя алгоритм всегда эффективнее ориентированного на массовый случай... ;) Цитата:
Хотя свои средства лучше писать с оглядкой на лучшие образцы чуществующих, особенно если не уверен в своих силах, факт. |
Как по мне такой подход как раз характерен для хорошо разбирающихся в теме людей. Только далёкий человек станет писать новый софт с ошибками, если есть отлаженый готовый. Естественно, что всё должно быть сделано под себя, но это не означает, что нужно абсолютно всё под себя писать, почему бы тогда и ось свою не написать. :)
И тему я знаю далеко не понаслышке, я 3 года админил 2 сервака с финансовыми биллинговыми системами, и многое написал для них я сам, но именно потому не было проблем все эти 3 года, потому что велась правильная политика по поводу софта и библиотек на хосте. Не та область просто, что бы делать ошибки. :) |
Вот еще один вопрос (как мне кажется, в тему)
Как можно отличить, каким именно образом был передан параметр в скрипт, POST или GET? Речь идет о Perl+CGI.pm. Да, можно вызвать request_method(), что бы определить, как именно был вызван скрипт, но когда имеет место быть так называемый "MIXING POST AND URL PARAMETERS", то некоторые параметры могли быть переданы в POST, а некоторые в URL. На PHP, насколько я помню, это делалось легко, там есть четкое разделение переменных, переданных в GET и в POST. Есть ли такое на Перле? |
Время: 11:32. |
Время: 11:32.
© OSzone.net 2001-