powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / вопрос от начинающего
10 сообщений из 10, страница 1 из 1
вопрос от начинающего
    #32519724
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, объясните плиз находчиво, чем отличаются метод POST от GET?
И какой подход сейчас наиболее распространен?
...
Рейтинг: 0 / 0
вопрос от начинающего
    #32519872
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще эти два метода практически ничем не отличаюся. Если очень интересно, то почитайте подробную документацию по HTTP-протоколам.

Единственное насколько я знаю, что с помощью метода GET можно передать до 600 байт (то ли Кбайт, я точно не помню), а с помощью метода POSt до 8 Mb.

C помощью метода ПОСТ передаются данные (например из форм) скрытыми от юзеров, а метод ГЕТ передаст (это слово, а не ругательство) данные в строке браузера (т.е. они видны для пользователей).

Например, для ГЕТа

Код: plaintext
1.
?id= 1 &name=Scott
Тогда в PHP (Перле тоже) будут созданы переменные:
$id, $name
...
Рейтинг: 0 / 0
вопрос от начинающего
    #32520432
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> с помощью метода POSt до 8 Mb.
нет, размер POST запроса неограничен.
Но программные средства (ПХП в частности да и PERL насколько я помню) позволяют ограничивать допустимый размер POST-запроса

С точки зрения теории GET от POST отличается только одним :
В get-запросе данные передаются в URL - и ты можешь сделать ссылку на скрипт, обрабатывающий GET-запрос и например сохранить ее в избранном.
Например : http://www.example.com/script.php?action=show_page - это пример ссылки на скрипт, обрабатывающей GET-запрос.
GET-запросы могут кешировать прокси и броузерами. GET-запросы часто сохраняются в логах. Например если ты сделаешь авторизацию через GET-метод , логин и пароль будут посланы на сервер примерно в таком виде:
http://www.example.com/auth.php?login=your_login&password=your_password и строка будет сохранена в логе веб-сервера (Apache). Если злоумышленник сможет получить лог, он узнает пароли доступа.

POST-запрос из броузера можно сформировать только с помощью формы:
<form method="POST" ...>
данные передаются в теле HTTP-запроса.
POST-запросы не кешируются ни броузером ни прокси. На него нельзя сделать URL.
...
Рейтинг: 0 / 0
вопрос от начинающего
    #32520635
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Макснет, размер POST запроса неограничен.
А сколько же по вашему можно пересылать с помощью POST?
(Я конечно не утверждаю что до 8 Мб, но что-то около того, насколько помнится)
...
Рейтинг: 0 / 0
вопрос от начинающего
    #32520724
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RFC по HTTP не накладывает никаких ограничений на размер POST-запроса.
Все ограничения делаются программно : настройки в ПХП, настройки сервера, настройки прокси и т.д.

ЗЫ
насколько мне известно, некоторые и по 700Мб через POST пускают
...
Рейтинг: 0 / 0
вопрос от начинающего
    #32520729
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то о чем ты пишешь - это настройка ПХП, ограничени размера POST-запроса.
Делается в php.ini :
Код: plaintext
1.
; Maximum size of POST data that PHP will accept.
post_max_size = 8M
...
Рейтинг: 0 / 0
вопрос от начинающего
    #32521276
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quote]POST-запросы не кешируются ни броузером[/quote]Отчасти несовсем верно - возмьём простейший скрипт
Код: plaintext
1.
2.
3.
4.
5.
<pre>
<? print_r($_POST) ?>
<form method=POST>
<input type=submit name=submit value=value>
</form>
</pre>
После нажатия кнопки обновление странички, как это ни странно, будет происходить с учётом посланного POST-запроса - конечно в закладках это не сохранишь, но что-то браузер всё же кэширует ;)
...
Рейтинг: 0 / 0
вопрос от начинающего
    #32522832
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest
я имел ввиду не это кеширование.
Ты прав, если нажать Refresh после POST-запроса броузер автоматически пошлет на сервер те же данные что ты ввел в форме ранее (то есть броузер где-то у себя временно сохраняет эти данные). Кстати MSIE перед отправкой данных еще переспросит : "Данная страница устарела. Хотите ли вы повторить отправку данных ?" (примерно так).

Под кешированием я имел ввиду сохранение страницы в кеше броузера или прокси-сервера, чтобы в дальнейшем можно было взять страницу из этого кеша. Вот такого кеширования при POST-запросе нет.
...
Рейтинг: 0 / 0
вопрос от начинающего
    #32523052
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Метод GET передаёт в виде URL, а ПОСТ в виде переменной окружения. На самом деле URL тоже переменная окружения. При обработке скриптом отличается метод "вытаскивания" данных.
На перле это выглядет так:
при ПОСТе - sysread(STDIN,$query,$ENV{'CONTENT_LENGTH'});
а при ГЕТе - $query=$ENV{'QUERY_STRING'};
...
Рейтинг: 0 / 0
вопрос от начинающего
    #32523170
roman2311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, будь внимателен с обработкой полученных переменных.
Твой скрипт можно будет взломать, если в отправить переменную другим способом.
Короче говоря, если ты хочешь получить переменную при помощи POST, то в начале скрипта напиши $a=$_POST["a"] а уже потом начинай обрабатывать полученные данные.

Можно конечно везде в программе писать $_POST["a"] , но известно, что обращение к именнованым массивом происходит в несколько раз дольше, чем к переменным.

Кстати, может кто помнит пример, как можно подставить переменные окружения, чтобы произвести некоторый "взлом", я не могу ни одного примера вспомнить.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / вопрос от начинающего
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]