PDA

Просмотр полной версии : что лучше POS или GET


akimov_aleks
16.06.2010, 23:57
Изучаю потихоньку и возник вопрос
что лучше делать
проктический людой POS запрос можно переделать в GET запрос. у кого какие мнения что жу лучше POS или GET

POS_troi
17.06.2010, 00:02
Смотря для каких целей.

Если хочеш знать все что происходит то GET лучше - он логируется.

И вообще разделом ошибся

wildshaman
17.06.2010, 00:02
Не практически любой.
Если у тебя в скрипте явно прописано $_POST['lalalal'] то постом ты данные эти не передашь, если у тебя register_global не включено.
Если свой двиг\скрипт, то лучше делай post - так юзеры меньше буду лазить где е надо. Хотя если скрипт явно не безопасен - делай гет, ибо все щапросы будут логироваться - или пост, но с mod_rewrite
Выбирай сам)

Gar|k
17.06.2010, 00:22
поправочка wildshaman
Если у тебя в скрипте явно прописано $_POST['lalalal'] то гетом ты данные эти не передашь...

register_global вырубили в стандарте еще чутьли не с 4 версии...
странная логика если скрипт не безопасен делать GET o_O

POST запрос хорош тем что данные не видны обывателю, плох тем что при прямых переходах на страницу его нужно отправлять заново. При обновлении страницы с отправленным запросом данные отправляются снова - головная боль веб кодеров повторение данных уже принятых ) обычно делают редирект )

насколько я помню в apache можно настроить логирование и POST запросов целиком

минусы GET запроса это
1 некрасивый адрес - это очень не нравиться поисковикам
2 все переменные передаваемые скрипту как на ладони (mod_rewrite рулит хотя сейчас чаще встречается связка mod_rewrite и собственного парсера ЧПУ типа index.php?rew=/abakadabra/)

в общем видимых плюсов GET я не вижу ЧПУ рулит )

akimov_aleks
17.06.2010, 07:35
так так ребята раздео о delphi
какие поисковики.
разберае IdHTTP.Pos или IdHTTP.Get

tracy
17.06.2010, 07:51
так так ребята раздео о delphi
какие поисковики.
разберае IdHTTP.Pos или IdHTTP.Get
ТС, напиши по Русски
А вообще так Get легче , но Post чаще используют для авторизаций )

M_script_
17.06.2010, 07:54
так так ребята раздео о delphi
какие поисковики.
разберае IdHTTP.Pos или IdHTTP.Get

Как на сайте сделано, так и в программе делай.

Vlad&slav
17.06.2010, 09:23
POST конечно, больше можно передать

RedFern.89
17.06.2010, 09:52
как это понять, что лучше? о_О это 2 разных по сути метода.

Во-первых не POS а POST

разъясняю:

GET - Используется для запроса содержимого указанного ресурса. С помощью метода GET можно также начать какой-либо процесс. В этом случае в тело ответного сообщения следует включить информацию о ходе выполнения процесса.

POST - Применяется для передачи пользовательских данных заданному ресурсу. Например, в блогах посетители обычно могут вводить свои комментарии к записям в HTML-форму, после чего они передаются серверу методом POST и он помещает их на страницу. При этом передаваемые данные (в примере с блогами — текст комментария) включаются в тело запроса. Аналогично с помощью метода POST обычно загружаются файлы на сервер.

информация была взята из статьи на википедии. Прежде чем задавать такие вопросы, советую почитать эту статью (http://ru.wikipedia.org/wiki/HTTP)

Dr1ver
17.06.2010, 10:05
У пост лимит передаваемых данных больше и не отображается в адресной строке, вот и вся разница, пост запрос может содержать не только переменные , но и другие данные, например файл.

RedFern.89
17.06.2010, 10:14
Dr1ver, думаешь научил чему-то? оО про multipart/form-data я знаю уже давно. Всеравно это 2 РАЗНЫХ метода!

heretic1990
17.06.2010, 10:42
трудно спорить какой из методов лучше, каждый хорош в своём роде.

wildshaman
17.06.2010, 11:41
У пост лимит передаваемых данных больше и не отображается в адресной строке, вот и вся разница, пост запрос может содержать не только переменные , но и другие данные, например файл.
А файлы какбы ты постом и не передашь.
Зато пост не логируется без mod_security :)

2рукуешс1990: да, согласен, в зависимости от задчи надо юзать или пост, или гет. Ясно, что названия категорий на сайте, к примеру, ты не будешь передавать постом

M_script_
17.06.2010, 13:07
А файлы какбы ты постом и не передашь.
это опечатка или ты серьезно так считаешь? :confused:

RedFern.89
17.06.2010, 13:54
А файлы какбы ты постом и не передашь.


товарищъъъъъ!!! вы с луны упали совсем?! о________О а multipart/form-data начто реализован в методе POST?? после такого заявление, вас остается направить на чтение статей об HTTP!

1n0y
17.06.2010, 14:06
писал тут вчера программку. было влом делать через пост, решил тупо гет'нуть урл с подставленными данными. всё бы хорошо, но сервер не принимал этот запрос и перекидывал на совершенно левую страницу, хотя запросы были идентичными.
поэтому да, как сделано на сайте, так делайте в проге :)

slesh
17.06.2010, 14:06
очередной тупой спор, вы бы еще начали бы спорить по поводу того что лучше рот или жопа. С одной стороны и то и другое можно использовать одинаково, но вот срать ртом както не удобно былобы, Да и жевать жопой тоже. По идее всё зависит от ситуации и конкретного сервака и его скриптов.

Но для понимания смысла GET и POST достаточно просто задуматься над их переводом.
GET - получить
POST - отправить
Именно по этой концепции GET должен использоваться для получения каких либо страниц (с передачей информации о какой либо странице через параметры). т.е. в параметрах GET должны быть номера страницы, её идентификатор, различные флаги по формированию страницы (сортировка, критерии выбора итд итп)
А вот POST - посылка данных пользователем. И в его параметра указываются непосредственно данные форм, которые заполняет юзверь (текстовые поля, радиобатоны, чекбоксы, файлы, списки итд итп).
К томуже при мультипарт запросах ооочень не рационально передавать много служебных данных (для этого юзается параметры вызова скрипта(как в GET запросе))
Да и POST запрос весомее GET запроса, потому что передаются служебные заголовке о типе, кодировке и размере данных.

Исключение могут быть только следующие ситуации:
Через GET можно посылать:
- если требуется наглядность или логирование сервером
- если требуется удобство быстрого редактирования параметрах(допустим изменение размеров изображения, очень удобно через GET потому что правится быстро)
- поисковые запросы.
Через POST можно посылать если:
- необходимо скрыть от пользователя какието служебные данные, допустим коды от капчи
- необходимо скрыть от серверного логирования запросы.

M_script_
17.06.2010, 14:07
multipart/form-data начто реализован в методе POST??
Спалю мега-приват - файлы и без multipart/form-data можно передавать :)

slesh
17.06.2010, 14:12
2 M_script_ можно но не нужно. Потому что в мультипарт файл передается без изменений, а если ты его просто постом отправишь, то браузеру придется предварительно конвертнуть спец символы. а сервак наоборот должен будет провернуть это в обратную, что считается очень не рациональным в плане производительности.

wildshaman
17.06.2010, 14:50
Да, опечатка, я имел в виду гет))

RedFern.89
17.06.2010, 18:17
wildshaman, ни кто и не подумал, что get'ом можно файлы передавать )) get'ом их можно качать)) как условно, так и частично =))

akimov_aleks
17.06.2010, 18:45
ребята нас снова не туда понесло.
Интересует вопрос что лучше работает.
вот допустим в контакте можно приглосить человека с помощью POST запроса..
код несколько строчек
но можно и приглосить человека и с помощью GET запроса
код в две строчки
если расматривать что мы пишим программу для спама то что лучше сделать POST или GET чтоб увеличить скорость оброботки.

wildshaman
17.06.2010, 18:51
скорость не зависит от того, гетом ты пошлешь данные или постом.

RedFern.89
17.06.2010, 18:56
akimov_aleks, не извращайся. Инвайт вконтакте реализован POST'ом, значит лучше так и делать. Иначе будет по-глючному.

RedFern.89
17.06.2010, 18:59
темболее тут надо думать логично: если ты хочешь отправить какую-либо форму (например отправка сообщения, инвайт в группу/встречу и т.д.) - делай POST, если ты просто хочешь получить страницу/файл/прочие данные - делай GET. остальное все - глючной изварат.

Sams
17.06.2010, 19:06
Вообще, почитав любую книгу по PHP\HTML, там можно четко для себя подчеркнуть, что GET запрос предназначен для передачи небольшого количества данных с недлинными значениями, а POST - для большой пачки данных, с любыми значениями, хоть целыми текстами.

Если тебе допустим надо передать 4 и больше параметра со значениями допустим в 100 символов каждый, то конечно используй POST. А если один-два параметра, допустим с числовым значением, то для таких целей предназначен GET.

RedFern.89
17.06.2010, 19:10
Sams, GET предназначен для получения данных, а не для передачи! просто в URL'е ты указываешь параметры (ghb необходимости), что бы сервер понял о чем идет речь и т.д.

Chrome~
17.06.2010, 19:43
И конечно же, если на каком то сайте можно выполнить одно и тоже действие и с помощью GET запроса, и с помощью POST запроса, то лучшим для тебя будет тот, при котором ты меньше всего отправляешь или получаешь данных.

RedFern.89
17.06.2010, 20:14
если честно за idHTTP1.Pos уже хочеться по е**лу дать... вот такими хекерами и кишит весь античат...обидно..