Можно ли посылать данные одновременно методом GET и POST

Можно ли посылать данные одновременно методом GET и POST

  • Да

    Голосов: 37 69,8%
  • Нет

    Голосов: 16 30,2%

  • Всего проголосовало
    53

Фанат

oncle terrible
Команда форума
В любом случае, поведение отдельной библиотеки никак на сам принцип не влияет.
я тоже напишу либу на пхп, которая кладет на гет, если запрос пришел постом.

CGI.pm, кстати, в этом случае отступает от стандарта.
URI должен однозначно идентифицировать документ. А сги.пм этому мешает. Нехорошо.
Впрочем, квери стринг из окружения ведь все равно есть?
 

Breeze

goshogun
Команда форума
Партнер клуба
в общем и целом не влияет, согласен, но для наглядности очень хороша. И квери стринг есть, что позволяет "однозначно идентифицировать документ"..
Увы, стандарта не знаю, может быть даже очень зря..

опять же броузеры шлют только одну заполненную форму. не думаю, что при возможности отправлять оба запроса одновременно разработчики этого бы не реализовали.

опять же, если допустить возможность одновременной передачи ГЕТ и ПОСТ -- что делать при наличии одинаковых имен в запросах? нелогично.. Очень примечателен $_REQUEST -- он хранит переменные POST если сделать "гет"+"пост"
 

Фанат

oncle terrible
Команда форума
Breeze
реквест хранит не пост, а то, что стоит последним в variables_order

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

Breeze

goshogun
Команда форума
Партнер клуба

Фанат

oncle terrible
Команда форума
Самое смешное, что ни о какой передаче данных речь не идет!
Request URI служит (с точки зрения протокола) только для идентификации ресурса, который мы запрашиваем!
POST:
The POST method is used to request that the origin server accept the entity enclosed in the request as a new subordinate of the resource identified by the Request-URI

Перевод Алексея Симонова:
Метод POST используется для запроса, при котором адресуемый сервер принимает объект, включенный в запрос, как новое подчинение ресурса, идентифицированного запрашиваемым URI
GET:
The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI

Перевод Алексея Симонова:
Метод GET позволяет получать любую информацию (в форме объекта), идентифицированную запрашиваемым URI
То есть, строго говоря, гетом мы данные вообще никогда не передаем :)
мы только запрашиваем ресурс с определенным адресом.
Ято, в общем-то, справидливо.
 

_RVK_

Новичок
Фанат
Я отвтеил ДА. Хотя я сразу догадался в чем хитрость вопроса.
Почему я так ответил? Да потому что вопрос из разряда таких вот:
1. Земля это шар?
2. Лед холодный?
3. Вакуум это материя?
4. Мы видим с закрытыми глазами?
5. Что весит меньше, киллограмм пуха, или килограм свинца?
6. Если вселенная бесконечна, то куда она расширяется.
7. Ноль существует?

Можно продолжить, но люди давно ответили на эти вопросы, формально неправильно, для того что бы облегчить себе общение и сберечь нервы.

То что формально ответ на твой вопрос "нет", это ничего не меняет. По крайней мере в ПХП.
 

Фанат

oncle terrible
Команда форума
Меняет.
Это вполне себе конкретная проблема.
1. Есть некоторое количество веб-девелоперов (явно больше 50%), которое просто не понимает, что такое протокол НТТР.
2. Понимающее меньшинство все равно не задумывается над смыслом произносимых слов.
А задумываться надо.

Собственно, вопрос поднят потому, что существует глобальная непонятка с протоколом НТТР.
И из неё вытекает два следствия:
1. многие большие умы задаются вопросом; "а правильно ли посылать форму одновременно методами гет и пост? Все ли браузеры поймут такую противоречащую стандартам запись?"
2. Забавный логический парадокс. Если ГЕТ - это когда данные передаются, то без данных - это уже и не ГЕТ?
А никто над этим не задумывается.

именно поэтому вопрос и поднят.
потому, что большинство просто не очень понимает истинную суть вещей, а те, кто теоретически понять может - не задумываются.
Ведь вопрос сформулирован предельно четко. Но правильно ответили единицы.
Это же как с кавычками.
На вопрос "Надо ли слешить данные, пришедшие от юзера, перед положением в базу", большинство ответит, что надо.
Меньшинство - что сначала надо проверить, не прослешил ли пых уже.
Но это не беда.
Беда в том, что будут те, кто сделает вывод, что не пришедшие от юзера данные слешить не надо. И те, кто предложит стрипать слеши перед доставанием. Их будет меньше, но они есть. Потому, что человек не понимает, ПОЧЕМУ надо слешить, азнает, что надо слешить.
Нет понимания, есть шаблон.

я очень надеюсь, что мысль моя будет понята, хотя не коряво изложить ее у меня не получается.
проблема в стереотипах. В шаблонах, которые мешают адекватному восприятию действительности.
Так и здесь.
Я выше уже написал, что проблема-то, на самом деле, не маленькая.
Есть большинство, которое искренне считает, что посылает запрос двумя методами одновременно, а отличительным признаком гет запроса является знак вопроса.
И есть меньшинство, которое, в прниципе, понимает технологию, но продолжает говорить "как привычнее", и не задумывается.

Таких же вещей дофига.
Например, сказа про то, что XSLT позволяет отделить данные от их представления.
А понимание облегчает понимание.
 

ys

отодвинутый новичок
скорее вопрос похоже на такой вопрос:
"чего больше влезет в пол литровую кружку, пол литра пива или пол литра водки?"

Ответ очевиден, но последствия разные. :)
 

_RVK_

Новичок
Фанат
Да, согласен с тобой в том что поднятая тобой проблема заставит задуматся многих над смыслом того что они говорят. Но предупреждаю, если я когда нибудь скажу, "передавай id гетом", чур меня не пинать :), хотя буду стараться все же говорить "передавай данные в URL"
 

SelenIT

IT-лунатик :)
Фанат, похоже, что из топика вытекает еще одно неявное следствие - необходимость в отдельном разделе faq, посвященном азам HTTP ;)
 

_RVK_

Новичок
ys
Неужели ты ответил на вопрос 5 "одинаково" :) Это один из самых прочных стереотипов! Напоминаю что вес измеряется не а килограмах а в Ньютонах. Только чур не спорить здесь! Это флейма на 10 страниц.

-~{}~ 02.11.04 18:25:

необходимость в новом разделе faq, посвященном азам HTTP
Странно что такого раздела еще нет.
 

AnToXa

prodigy-одаренный ребенок
Автор оригинала: Diesel
ys
Неужели ты ответил на вопрос 5 "одинаково" :) Это один из самых прочных стереотипов! Напоминаю что вес измеряется не а килограмах а в Ньютонах. Только чур не спорить здесь! Это флейма на 10 страниц.
аха :) не флеймить.
вообще для ответа на пятый вопрос недостаточно данных, ибо нет информации о силетя жести вообще :)
 

Кром

Новичок
1. многие большие умы задаются вопросом; "а правильно ли посылать форму одновременно методами гет и пост? Все ли браузеры поймут такую противоречащую стандартам запись?"

На этот вопрос надо отвечать по факту. Если те броузеры, которые используются на данный момент такую запись понимают, значит как таковой проблемы нет.

2. Забавный логический парадокс. Если ГЕТ - это когда данные передаются, то без данных - это уже и не ГЕТ?
А никто над этим не задумывается.

Если этот парадоскс строится на этом утверждении:
POST /talk/showthread.php?s=&postid=399387 - это гет и пост одновременно, а POST /talk/showthread.php - это чисто ПОСТ?
Вычитая из первого утверждения второе, получаем, что
GET /talk/showthread.php - это обращение без метода вовсе? :)
То это не парадокс, а софистика, построенное на ложном утверждении.
 

SelenIT

IT-лунатик :)
Кстати, даже в самоучителе fixxxerа русским по белому стоит примечание (правда, мелким шрифтом):
При использовании POST-формы, в ее атрибуте action можно указать после знака вопроса и параметры GET-формы. Таким образом, метод POST включает в себя и метод GET.
 

_RVK_

Новичок
AnToXa
На самаом деле дело не в силе тяжести, а в силе архимеда, которая действует на тела, даже в воздухе. А как известно сила архимеда зависит от плотности тела. Естетсвенно, на свинец сила архимеда будет действовать меньшая. Следовательно, вес килограмма свинца будет больше чем пуха.
А равенство, это, всего лишь, частный случай для тел, на которые не действуют другие силы, что в принципе невозможно.

Все, сори за флейм, кто хочет поспорить все в приват!

-~{}~ 02.11.04 18:52:

SelenIT
Таким образом, метод POST включает в себя и метод GET
Да, по сути POST это расширенный GET.
 

AnToXa

prodigy-одаренный ребенок
Автор оригинала: Diesel
AnToXa
На самаом деле дело не в силе тяжести, а в силе архимеда, которая действует на тела, даже в воздухе. А как известно сила архимеда зависит от плотности тела. Естетсвенно, на свинец сила архимеда будет действовать меньшая. Следовательно, вес килограмма свинца будет больше чем пуха.
А равенство, это, всего лишь, частный случай для тел, на которые не действуют другие силы, что в принципе невозможно.
я говорил, что недостаточно данных, все дело может происходить в вакууме например, про силу тяжести я чуть загнал, она одинаковая один фик.

в килограммах измеряется масса, которая не есть вес.

аха, закрыли флейм :)
 

SelenIT

IT-лунатик :)
В общем, насколько лично я понял:
1) Отдельного метода передачи данных на сервер GET не существует.
2) Есть одноименный HTTP-запрос, позволяющий обратиться к уникальному адресу.
3) Есть стандартный серверный механизм (в различных реализациях), позволяющий интерпретировать адреса определенного вида по определенным правилам (?param1=val1&param2=val2...). А также множество нестандартных механизмов для того же самого - напр., все ЧПУ :)
4) Существующие стандарты не запрещают использовать этот механизм для разбора адресов, используемых в POST-запросе.
5) Данные, полученные стандартным способом из п.3, по устоявшейся традиции принято называть GET-параметрами, несмотря на п.1.

Как-то примерно так?
 

_RVK_

Новичок
интересно запрос:
PHP:
POST /myscript.php?var=val HTTP/1.1
Host: http://myhost.ru
...
Content-Length:0
это тоже POST? Тогда чем он отличается от GET? Только лексемой "POST"?
 

Фанат

oncle terrible
Команда форума
SelenIT
я примерно такие же выводы сделал.
Diesel
нет, это метод POTS
 
Сверху