Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Get и Post запросы
Форумы портала PHP.SU » » Вопросы новичков » Get и Post запросы

Страниц (1): [1]
 

1. Mefistofel - 28 Апреля, 2012 - 18:40:06 - перейти к сообщению
Господа, новый вопрос, точнее просьба доступно объяснить разницу или же просто описать, что именно я понял неправильно.

Что представляет из себя GET запрос? (сам задал - сам отвечаю)
Это запрос пользователя о получении каких-либо данных на сервере посредством CGI программы (например, сайт какой-либо фирмы, которая реально вяжет и продает веники Закатив глазки http://www[dot]sonar54[dot]ru/sauna_cata[dot][dot][dot]p?SECTION_ID=725 ) Слева есть форма, в которой нужно ввести цену от и до. Если я ввожу определенный диапазон, то я таким образом отправляю на сервер запрос о предоставлении мне веников от 10 рублей до 1000. Когда я нажимаю Enter - я отправляю этот самый запрос. Адресная строка меняет свой вид на новый, добавленный моим запросом, с тегами, но отфильтрованными в спецсимволы. Сервер получает мои пожелания увидеть веники в моем ценовом диапазоне, а вместе с тем получает и данные обо мне - территориальное расположение, ip-адрес, время и прочее... то-есть я выполнил GET запрос (или не я, а сайт, то есть программа). Верно ли это мое понимание?
2. OrmaJever - 28 Апреля, 2012 - 18:44:51 - перейти к сообщению
Разница в том что GET запрос передаётся через сылку и имеет ограничение на длину, а POST передаётся через формы и ограничение там гораздо больше, GET тоже можно передавать через форму установив method=get, но это редкие случаи, в основном GET передается через сылку.
Учитывая что современые браузеры любят сохранять историю сылок, то передавать важные даные (логины, пароли, возможно почту) через GET не советуется, для этого почти всегда используют POST.
3. Mefistofel - 28 Апреля, 2012 - 18:52:36 - перейти к сообщению
OrmaJever пишет:
Разница в том что GET запрос передаётся через сылку и имеет ограничение на длину, а POST передаётся через формы и ограничение там гораздо больше, GET тоже можно передавать через форму установив method=get, но это редкие случаи, в основном GET передается через сылку.
Учитывая что современые браузеры любят сохранять историю сылок, то передавать важные даные (логины, пароли, возможно почту) через GET не советуется, для этого почти всегда используют POST.


А на примере открытого окошка в браузере - можно? Если я ввожу запрос в строке поиска на сайте - я делаю GET запрос, который отображается в адресной строке и выполняется. Далее я получаю ответ (например, выводится блок сайта по моему запросу).

А POST запрос - ввод логина и пароля при регистрации, например... Если аккаунт уже существует - обрабатывается запрос, сервер видит ранее созданный аккаунт - появляется страница профиля или что-то подобное. Так?
Если эти примеры применимы - тогда я не понимаю, какие ограничения есть у GET запроса? Они же намного длиннее, чем к примеру логины и пароли...
И как мне заранее понять, какой запрос я делаю - GET или POST...
4. OrmaJever - 28 Апреля, 2012 - 19:03:34 - перейти к сообщению
Mefistofel пишет:
Если эти примеры применимы - тогда я не понимаю, какие ограничения есть у GET запроса? Они же намного длиннее, чем к примеру логины и пароли...

Да эти примеры применимы. Я же сказал что логины и пароли нельзя передавать через GET потому что это попадёт в историю браузера и при самом запросе в сылке их будет видно. Вам приятно будет если к вас придут друзья и из истории узнают ваши пароли от почты, социальных сетей и т.д?
Mefistofel пишет:
И как мне заранее понять, какой запрос я делаю - GET или POST...

POST передаётся только через форму с атрибутом method=post, а GET либо пишется напрямую в сылку либо так же через форму с атрибутом method=get
5. Mefistofel - 28 Апреля, 2012 - 19:13:37 - перейти к сообщению
Благодарю. Мне почтииииииииии все ясно. Но все же. Если как пользователь вбиваю в поис на сайте запрос, то как я могу опрделить, какой метод запроса для формы "поиск" выставил на сервере админ - POST или GET? Объясню, зачем мне это. Часто на информационных сайтах можно встретить фразу "через форму такую-то отправляем GET запрос на сервер" Откуда я знаю, что это GET? Я не в курсе настроек... Может создатели статей предполагают просто, что для данной формы часто применяют именно такой метод... Каша в голове...
6. avtor.fox - 29 Апреля, 2012 - 12:04:41 - перейти к сообщению
Выбрасывайте всё из головы. Забили её ненужной информации. Главное запомнить что пост запросы никак не отображаются в адресной строке и применимы в основном для передачи "конфиденциальной" информации. Гет запросы служат в основном для динамики отображения контента. Самый простой пример -

<a href='news.php?id=312'>Просмотр новости</a>

В данной ссылке news.php является обработчиком гет параметра id. То бишь если изменить на news.php?id=112, то обработчик покажет Вам новость с этим идентификатором (если она существует в базе/файлах или где-либо ещё Улыбка )
7. DelphinPRO - 29 Апреля, 2012 - 19:06:06 - перейти к сообщению
еще одно мнемоническое правило:
GET - получить
POST - отправить
т.е. Когда вы запрашиваете какую-либо страницу с сервера, то используйте запрос GET
когда вы отправляете какие-либо данные на сервер - используйте запрос POST
8. Mefistofel - 29 Апреля, 2012 - 20:08:01 - перейти к сообщению
Спасибо, ребята! Ум стал ясным, теперь все ясно!)
9. BULLS - 13 Июня, 2012 - 00:39:53 - перейти к сообщению
Всем привет.
Помогите разобраться с post и get запросами с использованием Indy Clients (IdHTTP(IdHTTP)) в Borland Delphi 7. Напишите пожалуйста программу или что-то на подобии, на свое усмотрение (что-нибудь по проще, ибо я вот тока недавно начал знакомиться с программой). Заранее благодарен.

 

Powered by ExBB FM 1.0 RC1