Приветствую Вас Гость
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

  • Главная страница
  • Форум (Новoe на форуме)
  • Быстрый старт
  • Блог
  • Видео уроки
  • Каталог файлов
  • Статьи и уроки
  • Юзербары
  • FAQ
  • Обратная связь
  • Виды связи [3]
    Интересные вещи [2]

    Онлайн всего: 0
    Гостей: 0
    Пользователей: 0

    [ Кто нас сегодня посетил ]
    Главная » Статьи » Литература для онлайн программиста » Виды связи

    GET и POST: что лучше?
    Протокол HTTP, известный каждому благодаря интернету, имеет два самых часто используемых вида запросов GET и POST.

    Для начала, вспомним как работает HTTP протокол. Допустим, вы хотите посетить какой-то сайт.
    1. Ваш браузер делает запрос к серверу, на котором находится интересуемый сайт.
    2. Сервер анализирует запрос, что-то делает, и отправляет ответ.

    Да, это сверхупрощенная схема, но по сути именно так все и работает.

    Именно в первом шаге ваш браузер решает, какой вид запроса использоть, GET или POST.

    Так в чем же разница?

    GET имеет формат вида:
    GET http://www.site.com/index.html HTTP/1.1
    Данная комманда говорит серверу "Дай мне файл index.html, который находится в директории (на сайте) http://www.site.com/".

    Все, что вы вводите в адресной строке браузера "переводится" в GET запросы.

    В GET запросе также можно указывать параметры, которые нужно передать файлу. Именно здесь и выходит на сцену POST.

    В GET строка запроса выглядит так:
    ?param=value&boom=345&check=1

    То есть, мы можем не только запрашивать какие-то конкретные статические файлы, но и передавать динамическим файлам какие-то значения, именно через строку запроса:
    GET http://www.site.com/index.php?param=value&boom=345&check=1 HTTP/1.1

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

    Теперь немного о POST.
    Запросы в формате POST имеею ту же функциональнасть что и GET, но есть разница в формате.

    GET отправляет всю информацию в заголовке запроса, длинна которого ограничена. Если вам нужно отправить какое-то слово на сервер - не проблема, оно будет всего несколько букв. Но что делать, если нужно отправить объемный тескт с 2000-3000 символов? Будут проблемы.

    POST отправляет информацию в теле запроса, который не имеет максимального размера. Вы можете отправлять огромные тексты, файлы, и все будет нормально. Именно поэтому этот метод ипользуется при загрузке изображений.

    POST может "симулировать" GET запрос, можно указывать параметры как и в заголовке запроса, так и в теле. Вот пример POST:

    В HTML формах выможете указать как отправлять информацию на сервер при помощи аттрибута method:
    <form method="get">
    или
    <form method="post">

    По умолчанию всегда используется GET, и не только в формах.

    Так что же лучше? Что выбрать?
    Однозначного ответа нет, все зависит от ситуации и желаемого результата.

    Плюсы GET
    1. Страницу всегда можно сохранить в закладках (СЕО-дружелюбен).
    2. Он быстрее POST, так как вся информация находится в заголовках.
    3. Информация, посылаемая на сервер, всегда видима (в адресной строке).

    Минусы GET
    1. Иноформация, посылаемая на сервер, всегда видима (в адресной строке).
    2. Объем информации, которую можно отправить, ограничен.

    Плюсы POST
    1. Можно отправить много информации на сервер, объем неограничен.
    2. Отправляемая информация не показывается в адресной строке. Удобно, если нужны красивые URL.
    Но ее все равно можно легко увидеть. Не используйте POST как способ защиты сайта!

    Минусы POST
    1. Медленнее, чем GET, так как анализируются заголовки и тело запроса.
    2. Страницы, сгенерированные как результат запроса POST, нельзя добавить в закладки (СЕО-недружелюбен).

    Ипользуйте POST, когда на сервер нужно отправить что-то для сохранения. Например, данные нового зарегистрированного пользователе, или какой-то файл.

    Используйте GET, если вам нужно что-то от сервера, но сервер ничего не будет сохранять, или объем отправляемов вами информации легко помещается адресной строке. Например, страница поиска на вашем сайте будет более удобное, если использовать GET, так как на сервер отправляется всего лишь какая-то фраза или слово, и сервер просто отправляет кучу информации в ответ. К тому же, страницу результатов можно будет добавить в закладки.



    Источник: http://webpeppers.ru/46.html
    Категория: Виды связи | Добавил: zxc76 (14.06.2011)
    Просмотров: 1823 | Теги: php, http, post, Get | Рейтинг: 5.0/1
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    -->


    Логин:
    Пароль:

    Хостинг от uCoz