AJAX против CURL
Мне нужно знать разницу между CURL (в PHP) и AJAX (в Javascript), когда дело доходит до источника запроса.
обновление: Что я хочу знать, если я генерирую запросы с помощью AJAX, какой IP-адрес отправителя будет получен на стороне сервера с пакетом в качестве источника? То же самое с CURL, и для всех пользователей будет отправлен один ip-адрес. Но это тот же случай с JS? JS выполняется на стороне клиента, поэтому это будет IP-адрес клиента адрес?
3 ответов
cURL-это серверный процесс. Это означает, что он будет вызван до отображения страницы и не имеет ничего общего с возможностями клиента.
Аякс, это клиентский звонок. это означает, что он не будет выполнен до клиент загружает страницу (или, по крайней мере, этот фрагмент кода виден и выполняется, но это обычно в документе.готовый.)Если вы хотите получить информацию и немедленно сбросить ее пользователю тогда cURL - ваш лучший выбор. Если вы хотите выполнить прогрессивную загрузку (сбросить страницу, а затем получить содержимое для "бесшовной" загрузки пользователю), то AJAX-лучший вариант. Все это время имейте в виду, хотя в сегодняшнем дне и возрасте это полутривиально, AJAX не всегда может поддерживаться (или отключаться в случаях плагина NoScript FireFox).
при этом источник выполнения cURL будет находиться на сервере. Источник запроса AJAX будет на основе каждого клиента. Ни которые обеспечивают безопасное средство обнаружения (на стороне сервера), чтобы знать, кто отправил что (как заголовки могут быть изменены).
Если вы пытаетесь определить, какой метод использовался в качестве источника запроса, нет никакого способа узнать наверняка. Большинство браузеров используют HTTP-заголовок X-Requested-With при отправке запроса через AJAX. Библиотека cURL отправляет агент пользователя по умолчанию, но это, очевидно, может быть изменено библиотекой. Оба метода могут быть легко подделаны и не должны использоваться для строгой проверки.
Edit:
запрос AJAX поступит от клиента, который сделал запрос AJAX. Этот запрос cURL будет поступать оттуда, где использовалась библиотека. (например, если вы используете PHP, он будет поступать с сервера PHP. Если вы используете его через CLI, то он придет с сервера, с которого вы выполнили команду)
очевидно, что запросы могут быть за прокси и т. д.
IP-адрес, который запросил файл javascript с сервера, будет таким же, как IP-адрес, который запустил запрос ajax обратно на сервер из этого файла. Вижу та же политика происхождения.